155 pushl %ebp 289E5 movl %esp, %ebp 383EC10 subl $16, %esp 4C745FC00 movl $0, -4(%ebp) 58B55FC movl -4(%ebp), %edx 68B4508 movl 8(%ebp), %eax 701D0 addl %edx, %eax 80FB600 movzbl (%eax), %eax 98845FB movb %al, -5(%ebp) 108B55FC movl -4(%ebp), %edx 118B450C movl 12(%ebp), %eax 1201D0 addl %edx, %eax 130FB600 movzbl (%eax), %eax 148845FA movb %al, -6(%ebp) 158345FC01 addl $1, -4(%ebp) 16807DFB00 cmpb $0, -5(%ebp) 177508 jne L2 180FB645FA movzbl -6(%ebp), %eax 19F7D8 negl %eax 20EB15 jmp L3 210FB645FB movzbl -5(%ebp), %eax 223A45FA cmpb -6(%ebp), %al 2374C9 je L4 240FB655FB movzbl -5(%ebp), %edx 250FB645FA movzbl -6(%ebp), %eax 2629C2 subl %eax, %edx 2789D0 movl %edx, %eax 28C9 leave 29C3 ret 3055 pushl %ebp 3189E5 movl %esp, %ebp 3253 pushl %ebx 3383EC34 subl $52, %esp 3466C745F4 movw $0, -12(%ebp) 35C745EC01 movl $1, -20(%ebp) 36E9BE0000 jmp L6 37C745E801 movl $1, -24(%ebp) 3866837DF4 cmpw $0, -12(%ebp) 39780F js L7 408B55E8 movl -24(%ebp), %edx 410FBF45F4 movswl -12(%ebp), %eax 4289C1 movl %eax, %ecx 43D3E2 sall %cl, %edx 4489D0 movl %edx, %eax 45EB0F jmp L8 468B55E8 movl -24(%ebp), %edx 470FBF45F4 movswl -12(%ebp), %eax 48F7D8 negl %eax 4989C1 movl %eax, %ecx 50D3EA shrl %cl, %edx 5189D0 movl %edx, %eax 528945E8 movl %eax, -24(%ebp) 538B45E8 movl -24(%ebp), %eax 543B45EC cmpl -20(%ebp), %eax 55740C je L9 56C7042410 movl $16, (%esp) 57E8000000 call _Platform_AssertFail 58C745E801 movl $1, -24(%ebp) 5966837DF4 cmpw $0, -12(%ebp) 607827 js L10 618B55E8 movl -24(%ebp), %edx 620FBF45F4 movswl -12(%ebp), %eax 6389D3 movl %edx, %ebx 6489C1 movl %eax, %ecx 65D3E3 sall %cl, %ebx 668B55E8 movl -24(%ebp), %edx 670FBF45F4 movswl -12(%ebp), %eax 68B9200000 movl $32, %ecx 6929C1 subl %eax, %ecx 7089C8 movl %ecx, %eax 7189C1 movl %eax, %ecx 72D3EA shrl %cl, %edx 7389D0 movl %edx, %eax 7409D8 orl %ebx, %eax 75EB21 jmp L11 768B55E8 movl -24(%ebp), %edx 770FBF45F4 movswl -12(%ebp), %eax 78F7D8 negl %eax 7989D3 movl %edx, %ebx 8089C1 movl %eax, %ecx 81D3EB shrl %cl, %ebx 828B55E8 movl -24(%ebp), %edx 830FBF45F4 movswl -12(%ebp), %eax 8483C020 addl $32, %eax 8589C1 movl %eax, %ecx 86D3E2 sall %cl, %edx 8789D0 movl %edx, %eax 8809D8 orl %ebx, %eax 898945E8 movl %eax, -24(%ebp) 908B45E8 movl -24(%ebp), %eax 913B45EC cmpl -20(%ebp), %eax 92740C je L12 93C7042411 movl $17, (%esp) 94E8000000 call _Platform_AssertFail 95D165EC sall -20(%ebp) 960FB745F4 movzwl -12(%ebp), %eax 9783C001 addl $1, %eax 98668945F4 movw %ax, -12(%ebp) 9966837DF4 cmpw $31, -12(%ebp) 1000F8E37FF jle L13 10166C745F4 movw $0, -12(%ebp) 10266C745F2 movw $1, -14(%ebp) 103E9E50000 jmp L14 10466C745E6 movw $1, -26(%ebp) 10566837DF4 cmpw $0, -12(%ebp) 1067813 js L15 1070FB745E6 movzwl -26(%ebp), %eax 1080FB7D0 movzwl %ax, %edx 1090FBF45F4 movswl -12(%ebp), %eax 11089C1 movl %eax, %ecx 111D3E2 sall %cl, %edx 11289D0 movl %edx, %eax 113EB13 jmp L16 1140FB745E6 movzwl -26(%ebp), %eax 1150FB7D0 movzwl %ax, %edx 1160FBF45F4 movswl -12(%ebp), %eax 117F7D8 negl %eax 11889C1 movl %eax, %ecx 119D3FA sarl %cl, %edx 12089D0 movl %edx, %eax 121668945E6 movw %ax, -26(%ebp) 1220FB745E6 movzwl -26(%ebp), %eax 123663B45F2 cmpw -14(%ebp), %ax 124740C je L17 125C7042417 movl $23, (%esp) 126E8000000 call _Platform_AssertFail 12766C745E6 movw $1, -26(%ebp) 12866837DF4 cmpw $0, -12(%ebp) 1297831 js L18 1300FB745E6 movzwl -26(%ebp), %eax 1310FB7D0 movzwl %ax, %edx 1320FBF45F4 movswl -12(%ebp), %eax 13389C1 movl %eax, %ecx 134D3E2 sall %cl, %edx 13589D0 movl %edx, %eax 13689C3 movl %eax, %ebx 1370FB745E6 movzwl -26(%ebp), %eax 1380FB7D0 movzwl %ax, %edx 1390FBF45F4 movswl -12(%ebp), %eax 140B9100000 movl $16, %ecx 14129C1 subl %eax, %ecx 14289C8 movl %ecx, %eax 14389C1 movl %eax, %ecx 144D3FA sarl %cl, %edx 14589D0 movl %edx, %eax 14609D8 orl %ebx, %eax 147EB2B jmp L19 1480FB745E6 movzwl -26(%ebp), %eax 1490FB7D0 movzwl %ax, %edx 1500FBF45F4 movswl -12(%ebp), %eax 151F7D8 negl %eax 15289C1 movl %eax, %ecx 153D3FA sarl %cl, %edx 15489D0 movl %edx, %eax 15589C3 movl %eax, %ebx 1560FB745E6 movzwl -26(%ebp), %eax 1570FB7D0 movzwl %ax, %edx 1580FBF45F4 movswl -12(%ebp), %eax 15983C010 addl $16, %eax 16089C1 movl %eax, %ecx 161D3E2 sall %cl, %edx 16289D0 movl %edx, %eax 16309D8 orl %ebx, %eax 164668945E6 movw %ax, -26(%ebp) 1650FB745E6 movzwl -26(%ebp), %eax 166663B45F2 cmpw -14(%ebp), %ax 167740C je L20 168C7042418 movl $24, (%esp) 169E8000000 call _Platform_AssertFail 1700FBF45F2 movswl -14(%ebp), %eax 17101C0 addl %eax, %eax 172668945F2 movw %ax, -14(%ebp) 1730FB745F4 movzwl -12(%ebp), %eax 17483C001 addl $1, %eax 175668945F4 movw %ax, -12(%ebp) 17666837DF4 cmpw $15, -12(%ebp) 1770F8E10FF jle L21 17866C745F4 movw $0, -12(%ebp) 179C645F701 movb $1, -9(%ebp) 180E9DC0000 jmp L22 181C645E501 movb $1, -27(%ebp) 18266837DF4 cmpw $0, -12(%ebp) 1837813 js L23 1840FB645E5 movzbl -27(%ebp), %eax 1850FB6D0 movzbl %al, %edx 1860FBF45F4 movswl -12(%ebp), %eax 18789C1 movl %eax, %ecx 188D3E2 sall %cl, %edx 18989D0 movl %edx, %eax 190EB13 jmp L24 1910FB645E5 movzbl -27(%ebp), %eax 1920FB6D0 movzbl %al, %edx 1930FBF45F4 movswl -12(%ebp), %eax 194F7D8 negl %eax 19589C1 movl %eax, %ecx 196D3FA sarl %cl, %edx 19789D0 movl %edx, %eax 1988845E5 movb %al, -27(%ebp) 1990FB645E5 movzbl -27(%ebp), %eax 2003A45F7 cmpb -9(%ebp), %al 201740C je L25 202C704241E movl $30, (%esp) 203E8000000 call _Platform_AssertFail 204C645E501 movb $1, -27(%ebp) 20566837DF4 cmpw $0, -12(%ebp) 2067831 js L26 2070FB645E5 movzbl -27(%ebp), %eax 2080FB6D0 movzbl %al, %edx 2090FBF45F4 movswl -12(%ebp), %eax 21089C1 movl %eax, %ecx 211D3E2 sall %cl, %edx 21289D0 movl %edx, %eax 21389C3 movl %eax, %ebx 2140FB645E5 movzbl -27(%ebp), %eax 2150FB6D0 movzbl %al, %edx 2160FBF45F4 movswl -12(%ebp), %eax 217B9080000 movl $8, %ecx 21829C1 subl %eax, %ecx 21989C8 movl %ecx, %eax 22089C1 movl %eax, %ecx 221D3FA sarl %cl, %edx 22289D0 movl %edx, %eax 22309D8 orl %ebx, %eax 224EB2B jmp L27 2250FB645E5 movzbl -27(%ebp), %eax 2260FB6D0 movzbl %al, %edx 2270FBF45F4 movswl -12(%ebp), %eax 228F7D8 negl %eax 22989C1 movl %eax, %ecx 230D3FA sarl %cl, %edx 23189D0 movl %edx, %eax 23289C3 movl %eax, %ebx 2330FB645E5 movzbl -27(%ebp), %eax 2340FB6D0 movzbl %al, %edx 2350FBF45F4 movswl -12(%ebp), %eax 23683C008 addl $8, %eax 23789C1 movl %eax, %ecx 238D3E2 sall %cl, %edx 23989D0 movl %edx, %eax 24009D8 orl %ebx, %eax 2418845E5 movb %al, -27(%ebp) 2420FB645E5 movzbl -27(%ebp), %eax 2433A45F7 cmpb -9(%ebp), %al 244740C je L28 245C704241F movl $31, (%esp) 246E8000000 call _Platform_AssertFail 2470FBE45F7 movsbl -9(%ebp), %eax 24801C0 addl %eax, %eax 2498845F7 movb %al, -9(%ebp) 2500FB745F4 movzwl -12(%ebp), %eax 25183C001 addl $1, %eax 252668945F4 movw %ax, -12(%ebp) 25366837DF4 cmpw $7, -12(%ebp) 2540F8E19FF jle L29 25566C745F4 movw $-1, -12(%ebp) 256C745EC01 movl $1, -20(%ebp) 2578B45EC movl -20(%ebp), %eax 258C1E01E sall $30, %eax 2598945EC movl %eax, -20(%ebp) 2608B45EC movl -20(%ebp), %eax 26101C0 addl %eax, %eax 2628945E0 movl %eax, -32(%ebp) 263E9BC0000 jmp L30 2648B45E0 movl -32(%ebp), %eax 2658945E8 movl %eax, -24(%ebp) 26666837DF4 cmpw $0, -12(%ebp) 267780F js L31 2688B55E8 movl -24(%ebp), %edx 2690FBF45F4 movswl -12(%ebp), %eax 27089C1 movl %eax, %ecx 271D3E2 sall %cl, %edx 27289D0 movl %edx, %eax 273EB0F jmp L32 2748B55E8 movl -24(%ebp), %edx 2750FBF45F4 movswl -12(%ebp), %eax 276F7D8 negl %eax 27789C1 movl %eax, %ecx 278D3EA shrl %cl, %edx 27989D0 movl %edx, %eax 2808945E8 movl %eax, -24(%ebp) 2818B45E8 movl -24(%ebp), %eax 2823B45EC cmpl -20(%ebp), %eax 283740C je L33 284C7042427 movl $39, (%esp) 285E8000000 call _Platform_AssertFail 2868B45E0 movl -32(%ebp), %eax 2878945E8 movl %eax, -24(%ebp) 28866837DF4 cmpw $0, -12(%ebp) 2897827 js L34 2908B55E8 movl -24(%ebp), %edx 2910FBF45F4 movswl -12(%ebp), %eax 29289D3 movl %edx, %ebx 29389C1 movl %eax, %ecx 294D3E3 sall %cl, %ebx 2958B55E8 movl -24(%ebp), %edx 2960FBF45F4 movswl -12(%ebp), %eax 297B9200000 movl $32, %ecx 29829C1 subl %eax, %ecx 29989C8 movl %ecx, %eax 30089C1 movl %eax, %ecx 301D3EA shrl %cl, %edx 30289D0 movl %edx, %eax 30309D8 orl %ebx, %eax 304EB21 jmp L35 3058B55E8 movl -24(%ebp), %edx 3060FBF45F4 movswl -12(%ebp), %eax 307F7D8 negl %eax 30889D3 movl %edx, %ebx 30989C1 movl %eax, %ecx 310D3EB shrl %cl, %ebx 3118B55E8 movl -24(%ebp), %edx 3120FBF45F4 movswl -12(%ebp), %eax 31383C020 addl $32, %eax 31489C1 movl %eax, %ecx 315D3E2 sall %cl, %edx 31689D0 movl %edx, %eax 31709D8 orl %ebx, %eax 3188945E8 movl %eax, -24(%ebp) 3198B45E8 movl -24(%ebp), %eax 3203B45EC cmpl -20(%ebp), %eax 321740C je L36 322C7042428 movl $40, (%esp) 323E8000000 call _Platform_AssertFail 324D17DEC sarl -20(%ebp) 3250FB745F4 movzwl -12(%ebp), %eax 32683E801 subl $1, %eax 327668945F4 movw %ax, -12(%ebp) 32866837DF4 cmpw $-31, -12(%ebp) 3290F8D39FF jge L37 33066C745F4 movw $-1, -12(%ebp) 33166C745F2 movw $1, -14(%ebp) 3320FB745F2 movzwl -14(%ebp), %eax 3330FB7C0 movzwl %ax, %eax 334C1E00E sall $14, %eax 335668945F2 movw %ax, -14(%ebp) 3360FBF45F2 movswl -14(%ebp), %eax 33701C0 addl %eax, %eax 338668945DE movw %ax, -34(%ebp) 339E9E30000 jmp L38 3400FB745DE movzwl -34(%ebp), %eax 341668945E6 movw %ax, -26(%ebp) 34266837DF4 cmpw $0, -12(%ebp) 3437813 js L39 3440FB745E6 movzwl -26(%ebp), %eax 3450FB7D0 movzwl %ax, %edx 3460FBF45F4 movswl -12(%ebp), %eax 34789C1 movl %eax, %ecx 348D3E2 sall %cl, %edx 34989D0 movl %edx, %eax 350EB13 jmp L40 3510FB745E6 movzwl -26(%ebp), %eax 3520FB7D0 movzwl %ax, %edx 3530FBF45F4 movswl -12(%ebp), %eax 354F7D8 negl %eax 35589C1 movl %eax, %ecx 356D3FA sarl %cl, %edx 35789D0 movl %edx, %eax 358668945E6 movw %ax, -26(%ebp) 3590FB745E6 movzwl -26(%ebp), %eax 360663B45F2 cmpw -14(%ebp), %ax 361740C je L41 362C704242E movl $46, (%esp) 363E8000000 call _Platform_AssertFail 3640FB745DE movzwl -34(%ebp), %eax 365668945E6 movw %ax, -26(%ebp) 36666837DF4 cmpw $0, -12(%ebp) 3677831 js L42 3680FB745E6 movzwl -26(%ebp), %eax 3690FB7D0 movzwl %ax, %edx 3700FBF45F4 movswl -12(%ebp), %eax 37189C1 movl %eax, %ecx 372D3E2 sall %cl, %edx 37389D0 movl %edx, %eax 37489C3 movl %eax, %ebx 3750FB745E6 movzwl -26(%ebp), %eax 3760FB7D0 movzwl %ax, %edx 3770FBF45F4 movswl -12(%ebp), %eax 378B9100000 movl $16, %ecx 37929C1 subl %eax, %ecx 38089C8 movl %ecx, %eax 38189C1 movl %eax, %ecx 382D3FA sarl %cl, %edx 38389D0 movl %edx, %eax 38409D8 orl %ebx, %eax 385EB2B jmp L43 3860FB745E6 movzwl -26(%ebp), %eax 3870FB7D0 movzwl %ax, %edx 3880FBF45F4 movswl -12(%ebp), %eax 389F7D8 negl %eax 39089C1 movl %eax, %ecx 391D3FA sarl %cl, %edx 39289D0 movl %edx, %eax 39389C3 movl %eax, %ebx 3940FB745E6 movzwl -26(%ebp), %eax 3950FB7D0 movzwl %ax, %edx 3960FBF45F4 movswl -12(%ebp), %eax 39783C010 addl $16, %eax 39889C1 movl %eax, %ecx 399D3E2 sall %cl, %edx 40089D0 movl %edx, %eax 40109D8 orl %ebx, %eax 402668945E6 movw %ax, -26(%ebp) 4030FB745E6 movzwl -26(%ebp), %eax 404663B45F2 cmpw -14(%ebp), %ax 405740C je L44 406C704242F movl $47, (%esp) 407E8000000 call _Platform_AssertFail 40866D17DF2 sarw -14(%ebp) 4090FB745F4 movzwl -12(%ebp), %eax 41083E801 subl $1, %eax 411668945F4 movw %ax, -12(%ebp) 41266837DF4 cmpw $-15, -12(%ebp) 4130F8D12FF jge L45 41466C745F4 movw $-1, -12(%ebp) 415C645F701 movb $1, -9(%ebp) 4160FB645F7 movzbl -9(%ebp), %eax 4170FB6C0 movzbl %al, %eax 418C1E006 sall $6, %eax 4198845F7 movb %al, -9(%ebp) 4200FBE45F7 movsbl -9(%ebp), %eax 42101C0 addl %eax, %eax 4228845DD movb %al, -35(%ebp) 423E9DC0000 jmp L46 4240FB645DD movzbl -35(%ebp), %eax 4258845E5 movb %al, -27(%ebp) 42666837DF4 cmpw $0, -12(%ebp) 4277813 js L47 4280FB645E5 movzbl -27(%ebp), %eax 4290FB6D0 movzbl %al, %edx 4300FBF45F4 movswl -12(%ebp), %eax 43189C1 movl %eax, %ecx 432D3E2 sall %cl, %edx 43389D0 movl %edx, %eax 434EB13 jmp L48 4350FB645E5 movzbl -27(%ebp), %eax 4360FB6D0 movzbl %al, %edx 4370FBF45F4 movswl -12(%ebp), %eax 438F7D8 negl %eax 43989C1 movl %eax, %ecx 440D3FA sarl %cl, %edx 44189D0 movl %edx, %eax 4428845E5 movb %al, -27(%ebp) 4430FB645E5 movzbl -27(%ebp), %eax 4443A45F7 cmpb -9(%ebp), %al 445740C je L49 446C7042435 movl $53, (%esp) 447E8000000 call _Platform_AssertFail 4480FB645DD movzbl -35(%ebp), %eax 4498845E5 movb %al, -27(%ebp) 45066837DF4 cmpw $0, -12(%ebp) 4517831 js L50 4520FB645E5 movzbl -27(%ebp), %eax 4530FB6D0 movzbl %al, %edx 4540FBF45F4 movswl -12(%ebp), %eax 45589C1 movl %eax, %ecx 456D3E2 sall %cl, %edx 45789D0 movl %edx, %eax 45889C3 movl %eax, %ebx 4590FB645E5 movzbl -27(%ebp), %eax 4600FB6D0 movzbl %al, %edx 4610FBF45F4 movswl -12(%ebp), %eax 462B9080000 movl $8, %ecx 46329C1 subl %eax, %ecx 46489C8 movl %ecx, %eax 46589C1 movl %eax, %ecx 466D3FA sarl %cl, %edx 46789D0 movl %edx, %eax 46809D8 orl %ebx, %eax 469EB2B jmp L51 4700FB645E5 movzbl -27(%ebp), %eax 4710FB6D0 movzbl %al, %edx 4720FBF45F4 movswl -12(%ebp), %eax 473F7D8 negl %eax 47489C1 movl %eax, %ecx 475D3FA sarl %cl, %edx 47689D0 movl %edx, %eax 47789C3 movl %eax, %ebx 4780FB645E5 movzbl -27(%ebp), %eax 4790FB6D0 movzbl %al, %edx 4800FBF45F4 movswl -12(%ebp), %eax 48183C008 addl $8, %eax 48289C1 movl %eax, %ecx 483D3E2 sall %cl, %edx 48489D0 movl %edx, %eax 48509D8 orl %ebx, %eax 4868845E5 movb %al, -27(%ebp) 4870FB645E5 movzbl -27(%ebp), %eax 4883A45F7 cmpb -9(%ebp), %al 489740C je L52 490C7042436 movl $54, (%esp) 491E8000000 call _Platform_AssertFail 492D07DF7 sarb -9(%ebp) 4930FB745F4 movzwl -12(%ebp), %eax 49483E801 subl $1, %eax 495668945F4 movw %ax, -12(%ebp) 49666837DF4 cmpw $-7, -12(%ebp) 4970F8D19FF jge L53 49866C745F4 movw $0, -12(%ebp) 499C745EC01 movl $1, -20(%ebp) 5008B45EC movl -20(%ebp), %eax 501C1E01F sall $31, %eax 5028945EC movl %eax, -20(%ebp) 5038B45EC movl -20(%ebp), %eax 5048945E0 movl %eax, -32(%ebp) 505EB50 jmp L54 5068B45E0 movl -32(%ebp), %eax 5078945E8 movl %eax, -24(%ebp) 50866837DF4 cmpw $0, -12(%ebp) 509780F js L55 5100FBF45F4 movswl -12(%ebp), %eax 5118B55E8 movl -24(%ebp), %edx 51289C1 movl %eax, %ecx 513D3E2 sall %cl, %edx 51489D0 movl %edx, %eax 515EB0F jmp L56 5160FBF45F4 movswl -12(%ebp), %eax 517F7D8 negl %eax 5188B55E8 movl -24(%ebp), %edx 51989C1 movl %eax, %ecx 520D3FA sarl %cl, %edx 52189D0 movl %edx, %eax 5228945E8 movl %eax, -24(%ebp) 5238B45E8 movl -24(%ebp), %eax 5243B45EC cmpl -20(%ebp), %eax 525740C je L57 526C704243E movl $62, (%esp) 527E8000000 call _Platform_AssertFail 528D17DEC sarl -20(%ebp) 5290FB745F4 movzwl -12(%ebp), %eax 53083E801 subl $1, %eax 531668945F4 movw %ax, -12(%ebp) 53266837DF4 cmpw $-31, -12(%ebp) 5337DA9 jge L58 53466C745F4 movw $0, -12(%ebp) 53566C745E6 movw $1, -26(%ebp) 5360FB745E6 movzwl -26(%ebp), %eax 5370FB7C0 movzwl %ax, %eax 538C1E00F sall $15, %eax 539668945E6 movw %ax, -26(%ebp) 5400FB745E6 movzwl -26(%ebp), %eax 541668945F2 movw %ax, -14(%ebp) 542