Function at 0x100025e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x110
mov esi, dword [eax + 0xb4]
mov dword [esp + 0xdc], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x50], ecx
test esi, esi
je 0x1000261c
mov eax, dword [eax]
mov dword [esp], eax
call dword [edi + 4]
mov dword [edi + 0xb4], 0
mov edi, dword [esp + 0xdc]
mov eax, dword [edi + 0xd0]
mov esi, eax
or esi, dword [edi + 0xac]
jne 0x1000267c
mov ebx, dword [edi + 0x88]
mov eax, dword [edi + 0x134]
test ebx, ebx
je 0x10002688
mov dword [edi + 0xd0], 9
test eax, eax
je 0x100062de
mov eax, dword [esp + 0xdc]
mov dword [eax + 0xd0], 8
mov eax, 8
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0xac], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test eax, eax
jne 0x10002655
mov ebx, dword [edi + 0xb8]
mov eax, dword [edi + 8]
mov edx, dword [edi]
mov esi, ebx
or esi, dword [edi + 0xbc]
mov dword [esp + 0x6c], ebx
je 0x100029f0
mov dword [esp + 0xa0], ebx
mov dword [esp], edx
call eax
test eax, eax
je 0x10005c88
lea esi, [esi]
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
jne 0x10002d58
mov edi, eax
mov eax, dword [eax + 0x18]
cmp dword [edi + 0x1c], eax
je 0x10003670
mov edx, eax
add eax, 1
shl edx, 5
add edx, edi
mov esi, dword [edx + 0xbaa8]
mov dword [esp + 0xd0], esi
mov esi, dword [edx + 0xbaac]
mov dword [edi + 0x18], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xa0]
and eax, dword [edi + 0x4c]
mov dword [edi + 0x90], esi
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc0]
mov ebx, dword [edi + 0x58]
shl eax, 4
lea eax, [ecx + eax + 0xe48]
movzx edi, word [edi + eax*2 + 8]
mov dword [esp + 0xb8], eax
mov eax, ebx
shr eax, 0xb
imul eax, edi
cmp dword [esp + 0xc8], 0xffffffff
mov ecx, edi
mov edx, eax
je 0x10002bb0
mov esi, dword [esp + 0xdc]
sub ebx, eax
xor edx, edx
add dword [esi + 0x60], eax
mov eax, edi
adc dword [esi + 0x64], edx
shr eax, 5
sub ecx, eax
mov eax, dword [esp + 0xb8]
mov word [esi + eax*2 + 8], cx
cmp ebx, 0xffffff
jbe 0x10003158
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
add eax, 0xe18
movzx esi, word [edi + eax*2 + 8]
mov dword [esp + 0xb8], eax
mov eax, ebx
shr eax, 0xb
mov edx, eax
mov ecx, esi
imul edx, esi
cmp dword [esp + 0xc8], 3
ja 0x10003178
mov eax, edx
sub ebx, edx
xor edx, edx
add dword [edi + 0x60], eax
mov eax, dword [esp + 0xb8]
adc dword [edi + 0x64], edx
shr esi, 5
sub ecx, esi
mov word [edi + eax*2 + 8], cx
cmp ebx, 0xffffff
jbe 0x10003650
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
lea ecx, [eax + 0xe28]
mov eax, ebx
mov dword [esp + 0xb8], ecx
movzx ecx, word [edi + ecx*2]
shr eax, 0xb
imul eax, ecx
mov esi, ecx
mov edx, eax
mov eax, dword [esp + 0xc8]
test eax, eax
jne 0x10002fe0
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov ecx, dword [esp + 0xb8]
mov word [edi + ecx*2], ax
cmp edx, 0xffffff
jbe 0x10003d60
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0xc0]
shl eax, 4
lea esi, [ebx + eax + 0xf08]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xc8], esi
movzx ecx, word [ebx + esi*2 + 8]
mov esi, edx
shr esi, 0xb
imul esi, ecx
cmp dword [esp + 0xd0], 1
mov eax, ecx
je 0x10003cc8
sub edx, esi
xor edi, edi
add dword [ebx + 0x60], esi
mov esi, dword [esp + 0xc8]
adc dword [ebx + 0x64], edi
shr ecx, 5
sub eax, ecx
mov word [ebx + esi*2 + 8], ax
cmp edx, 0xffffff
jbe 0x10003ee0
mov eax, ebx
mov dword [ebx + 0x58], edx
add eax, 0x58
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xdc]
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xb0]
mov dword [esp], ebx
lea ecx, [eax - 2]
lea eax, [edi + 0x2698]
call fcn.10010330
mov eax, dword [edi + 0x2c]
sub dword [edi + 0xc4], 1
movzx eax, byte [eax + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov dword [edi + 0x2c], eax
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd0]
add dword [esp + 0xa0], ebx
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0xa4]
mov dword [esp + 0xd0], eax
sub eax, ebx
mov dword [edi + 0x34], eax
jne 0x100026c0
test edx, edx
jne 0x1000296b
cmp dword [edi + 0xc0], 0x3f
ja 0x10003c58
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xc4]
test ecx, ecx
jle 0x10003dc0
mov edi, dword [esp + 0xdc]
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 8]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x6c]
sub edx, ebx
test eax, eax
je 0x100029c3
mov ebx, dword [esp + 0x78]
test ebx, ebx
je 0x10002f58
mov ecx, dword [esp + 0x50]
lea eax, [edx + 0x92c]
cmp eax, ecx
jae 0x100029c3
mov ecx, dword [edi + 0x68]
mov eax, dword [edi + 0x70]
add ecx, dword [edi + 0x80]
sub eax, dword [edi + 0x78]
lea eax, [ecx + eax + 0x4000]
cmp eax, ebx
jb 0x100026c0
mov eax, edx
mov ebx, dword [esp + 0xdc]
xor edx, edx
add dword [ebx + 0xb8], eax
mov eax, ebx
adc dword [ebx + 0xbc], edx
mov edx, dword [esp + 0xa0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp 0x1000f5c0
mov dword [esp], edx
call eax
test eax, eax
je 0x10005f9b
mov edi, dword [esp + 0xdc]
lea edx, [esp + 0x100]
mov eax, edi
call fcn.10011df0
lea eax, [edi + 0x58]
movzx ecx, word [edi + 0x1c98]
mov dword [esp + 0xb0], eax
mov eax, dword [edi + 0x58]
mov edx, ecx
mov ebx, eax
mov dword [esp + 0xd0], eax
mov eax, 0x800
shr ebx, 0xb
sub eax, ecx
imul ebx, ecx
shr eax, 5
add edx, eax
mov word [edi + 0x1c98], dx
cmp ebx, 0xffffff
jbe 0x1000613c
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x58], ebx
mov ebx, eax
mov eax, dword [eax]
mov dword [esp], eax
call dword [ebx + 0xc]
sub eax, dword [ebx + 0x34]
mov esi, dword [ebx + 0x50]
movzx eax, byte [eax]
mov edx, dword [ebx + 0x58]
mov dword [esp + 0xb4], esi
or ah, 1
mov edi, eax
jmp 0x10002a94
cmp edi, 0xffff
ja 0x10005bf0
mov eax, edi
mov ebx, dword [esp + 0xb4]
mov esi, edx
shr eax, 8
shr esi, 0xb
lea ebx, [ebx + eax*2]
mov eax, edi
add edi, edi
mov dword [esp + 0xd0], ebx
shr eax, 7
movzx ebx, word [ebx]
and eax, 1
imul esi, ebx
mov dword [esp + 0xc8], ebx
mov ebx, eax
neg ebx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xdc]
mov ecx, ebx
mov dword [esp + 0xc0], ebx
xor ebx, ebx
and ecx, esi
add dword [eax + 0x60], ecx
adc dword [eax + 0x64], ebx
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xc0]
sub eax, 1
mov ebx, dword [esp + 0xb8]
and esi, eax
and edx, ecx
and eax, 0x7e1
add edx, esi
mov esi, dword [esp + 0xc8]
add eax, 0x1f
sub edx, ebx
mov ebx, dword [esp + 0xd0]
sub eax, esi
sar eax, 5
add eax, esi
mov word [ebx], ax
cmp edx, 0xffffff
ja 0x10002a88
mov eax, dword [esp + 0xb0]
shl edx, 8
mov dword [esp + 0xd0], edx
call fcn.10012d00
mov edx, dword [esp + 0xd0]
jmp 0x10002a88
mov dword [eax + 0x90], 0xffffffff
mov edi, dword [esp + 0xa0]
mov esi, eax
and edi, dword [eax + 0x4c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xc0], edi
mov dword [esp + 0xd8], eax
shl eax, 4
lea eax, [edi + eax + 0xe48]
movzx edi, word [esi + eax*2 + 8]
mov eax, dword [esi + 0x58]
mov dword [esp + 0xd0], 1
shr eax, 0xb
mov ecx, edi
imul eax, edi
mov edx, eax
nop
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0xc0]
shl eax, 4
lea ebx, [ebx + eax + 0xe48]
mov eax, 0x800
sub eax, edi
mov edi, dword [esp + 0xdc]
shr eax, 5
add eax, ecx
mov word [edi + ebx*2 + 8], ax
lea eax, [edi + 0x58]
mov dword [esp + 0xb0], eax
cmp edx, 0xffffff
jbe 0x10003b70
mov edi, dword [esp + 0xdc]
mov eax, dword [edi]
mov dword [edi + 0x58], edx
mov dword [esp], eax
call dword [edi + 0xc]
mov edx, dword [esp + 0xa0]
sub eax, dword [edi + 0x34]
movzx ecx, byte [eax - 1]
shl edx, 8
add edx, ecx
mov ecx, dword [edi + 0x94]
and edx, dword [edi + 0x48]
shl edx, cl
lea ecx, [edx + edx*2]
mov edx, dword [edi + 0x50]
lea esi, [edx + ecx*2]
mov ecx, dword [edi + 0x2c]
movzx edx, byte [eax]
mov dword [esp + 0xb8], esi
movzx ebx, byte [ecx + 0x10038140]
mov dword [edi + 0x2c], ebx
cmp ecx, 6
ja 0x100034f0
mov edi, dword [edi + 0x58]
mov eax, edx
or ah, 1
mov edx, edi
mov edi, eax
jmp 0x10002c6c
cmp edi, 0xffff
ja 0x10002d41
mov ecx, dword [esp + 0xb8]
mov eax, edi
shr eax, 8
lea esi, [ecx + eax*2]
mov eax, edi
mov ecx, edx
add edi, edi
movzx ebx, word [esi]
shr ecx, 0xb
shr eax, 7
mov dword [esp + 0xd8], esi
and eax, 1
mov esi, ecx
imul esi, ebx
mov dword [esp + 0xc0], ebx
mov ebx, eax
neg ebx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xdc]
mov ecx, ebx
mov dword [esp + 0xb4], ebx
xor ebx, ebx
and ecx, esi
add dword [eax + 0x60], ecx
adc dword [eax + 0x64], ebx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0xb4]
sub eax, 1
mov ebx, dword [esp + 0xac]
and esi, eax
and edx, ecx
and eax, 0x7e1
add edx, esi
mov esi, dword [esp + 0xc0]
add eax, 0x1f
sub edx, ebx
sub eax, esi
sar eax, 5
add eax, esi
mov esi, dword [esp + 0xd8]
mov word [esi], ax
cmp edx, 0xffffff
ja 0x10002c60
mov eax, dword [esp + 0xb0]
shl edx, 8
mov dword [esp + 0xd8], edx
call fcn.10012d00
mov edx, dword [esp + 0xd8]
cmp edi, 0xffff
jbe 0x10002c6c
mov edi, edx
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x58], edi
jmp 0x10002915
mov edx, dword [eax + 0x34]
test edx, edx
je 0x10003b90
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xd0], edi
mov dword [esp + 0x100], eax
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0x90], 0xffffffff
mov esi, dword [ebx + 0x28]
mov dword [esp + 0xb8], esi
cmp esi, 1
jbe 0x10003c38
mov eax, 0x111
cmp esi, eax
cmovbe eax, esi
mov edi, eax
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0xc]
xor edx, edx
mov dword [esp + 0xb4], 0
movzx esi, byte [eax - 1]
mov ecx, eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc0], eax
mov eax, esi
mov esi, ebx
mov byte [esp + 0xd8], al
mov eax, dword [esi + edx*4 + 0x38]
movzx ebx, byte [esp + 0xd8]
not eax
add eax, ecx
cmp bl, byte [eax]
jne 0x10002e02
movzx ebx, byte [eax + 1]
cmp byte [ecx], bl
je 0x10003b00
add edx, 1
cmp edx, 4
jne 0x10002de2
mov ebx, dword [esp + 0xc0]
cmp dword [esp + 0xd0], ebx
jae 0x10003d08
cmp dword [esp + 0xd0], 1
jbe 0x10003bb8
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xdc]
mov edi, dword [ecx + eax*4 + 0x744]
cmp eax, 2
jbe 0x10002eb8
xor ebx, ebx
mov esi, ecx
mov byte [esp + 0xd8], bl
mov ebx, dword [esp + 0xd0]
jmp 0x10002e93
mov ebx, edi
mov ecx, dword [esi + eax*4 + 0x73c]
shr ebx, 7
cmp ecx, ebx
jae 0x10002ea1
sub eax, 2
mov dword [esp + 0xd0], edx
mov byte [esp + 0xd8], 1
cmp eax, 2
jbe 0x10004518
mov dword [esp + 0x7c], eax
mov edi, ecx
mov ebx, edx
mov edx, dword [esi + eax*4 + 0x738]
lea ecx, [edx + 1]
cmp ecx, ebx
je 0x10002e60
movzx eax, byte [esp + 0xd8]
test al, al
je 0x10002eb8
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x100], eax
cmp dword [esp + 0xd0], 2
jne 0x10003f10
cmp edi, 0x7f
jbe 0x10003f10
cmp dword [esp + 0xc8], 1
jbe 0x10003bdb
mov edi, dword [esp + 0xdc]
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xc8]
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x34]
lea eax, [ebx + eax - 1]
mov dword [edi + 0x34], eax
lea eax, [ebx - 1]
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov eax, dword [edi + 0x90]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xc8], eax
lea esi, [esi]
mov eax, dword [esp + 0xdc]
mov edi, dword [eax + 0x2c]
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0xa0]
and edi, dword [eax + 0x4c]
mov dword [esp + 0xc0], edi
mov edi, eax
jmp 0x1000272b
cmp edx, 0x1ffff
jbe 0x100026c0
mov esi, dword [esp + 0xdc]
mov eax, edx
xor edx, edx
add dword [esi + 0xb8], eax
mov eax, dword [esi + 0xd0]
adc dword [esi + 0xbc], edx
test eax, eax
jne 0x1000267c
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0x134]
test edx, edx
je 0x10006251
mov dword [esi + 0xd0], 9
test eax, eax
je 0x100062e8
mov eax, dword [esp + 0xdc]
mov dword [eax + 0xd0], 8
mov eax, 8
mov esi, dword [esp + 0xdc]
mov dword [esi + 0xac], 1
jmp 0x1000267c
mov eax, edx
sub ebx, edx
xor edx, edx
add dword [edi + 0x60], eax
mov eax, ecx
adc dword [edi + 0x64], edx
shr eax, 5
sub esi, eax
mov eax, dword [esp + 0xb8]
mov word [edi + eax*2], si
cmp ebx, 0xffffff
jbe 0x10003d90
mov eax, dword [esp + 0xd8]
lea edx, [eax + 0xe30]
mov eax, dword [esp + 0xdc]
movzx edi, word [eax + edx*2 + 8]
mov eax, ebx
shr eax, 0xb
mov dword [esp + 0xb8], edi
mov ecx, edi
imul edi, eax
cmp dword [esp + 0xc8], 1
je 0x10003c98
mov eax, ebx
mov ebx, dword [esp + 0xdc]
mov esi, edi
sub eax, edi
xor edi, edi
add dword [ebx + 0x60], esi
adc dword [ebx + 0x64], edi
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xb4], eax
shr edi, 5
sub ecx, edi
mov word [ebx + edx*2 + 8], cx
cmp eax, 0xffffff
jbe 0x10003ec0
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov eax, dword [esp + 0xb4]
add ebx, 0xe40
movzx ecx, word [edi + ebx*2]
shr eax, 0xb
mov dword [esp + 0xd8], ebx
mov ebx, dword [edi + 0x40]
imul eax, ecx
cmp dword [esp + 0xc8], 2
mov esi, ecx
mov dword [esp + 0xb8], ebx
je 0x10003ea8
mov ebx, edi
mov edi, dword [esp + 0xb4]
xor edx, edx
movd xmm0, dword [ebx + 0x44]
sub edi, eax
add dword [ebx + 0x60], eax
adc dword [ebx + 0x64], edx
shr ecx, 5
sub esi, ecx
mov edx, esi
mov esi, dword [esp + 0xb8]
mov dword [ebx + 0x44], esi
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd8]
mov eax, dword [ebx + 0x3c]
mov word [ebx + esi*2], dx
mov dword [ebx + 0x40], eax
mov eax, ebx
mov ebx, dword [eax + 0x38]
movd xmm5, ebx
mov dword [esp + 0xd8], ebx
punpckldq xmm0, xmm5
movq qword [eax + 0x38], xmm0
cmp edi, 0xffffff
jbe 0x10003db0
mov eax, dword [esp + 0xdc]
cmp dword [esp + 0xd0], 1
mov dword [eax + 0x58], edi
je 0x10002915
add eax, 0x58
mov dword [esp + 0xb0], eax
jmp 0x100028d4
lea eax, [esi + 0x58]
shl ebx, 8
call fcn.10012d00
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xd8], eax
jmp 0x1000279c
mov eax, 0x800
sub eax, esi
mov esi, dword [esp + 0xb8]
shr eax, 5
add ecx, eax
mov eax, dword [esp + 0xdc]
mov word [eax + esi*2 + 8], cx
add eax, 0x58
mov dword [esp + 0xb0], eax
cmp edx, 0xffffff
jbe 0x10003e00
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xc0]
movzx eax, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n]
mov dword [edi + 0x58], edx
mov edx, dword [esp + 0xb0]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], ebx
lea ecx, [eax - 2]
lea eax, [edi + 0x2298]
call fcn.10010330
mov esi, dword [esp + 0xc8]
mov ecx, dword [edi + 0x38]
movd xmm1, dword [edi + 0x3c]
add dword [edi + 0xc0], 1
lea ebx, [esi - 3]
movd xmm7, ecx
lea eax, [esi - 4]
mov dword [esp + 0xd8], ecx
movd xmm0, ebx
mov ebx, dword [edi + 0x40]
mov dword [esp + 0xa8], eax
punpckldq xmm0, xmm7
movd xmm6, ebx
punpckldq xmm1, xmm6
punpcklqdq xmm0, xmm1
movups xmmword [edi + 0x38], xmm0
cmp eax, 0x7f
ja 0x10003c00
movzx ebx, byte [edi + esi + 0x2a94]
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xd0]
lea ecx, [ebx + 0x40]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xd8], ecx
mov edi, dword [eax + 0x58]
mov eax, 5
cmp esi, eax
cmovbe eax, esi
mov esi, edi
shl eax, 7
add eax, 0x1e98
mov dword [esp + 0xac], eax
jmp 0x100032a1
cmp dword [esp + 0xd8], 0xfff
ja 0x10003370
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0xac]
mov eax, edx
shr eax, 6
lea eax, [edi + eax*2]
mov edi, dword [esp + 0xdc]
lea ecx, [edi + eax]
mov eax, edx
add edx, edx
movzx ebx, word [ecx]
shr eax, 5
mov dword [esp + 0xd8], edx
mov edx, esi
and eax, 1
shr edx, 0xb
mov dword [esp + 0xc8], ecx
imul edx, ebx
mov dword [esp + 0xc0], ebx
mov ebx, eax
neg ebx
mov ecx, ebx
mov dword [esp + 0xb8], ebx
xor ebx, ebx
and ecx, edx
add dword [edi + 0x60], ecx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb8]
adc dword [edi + 0x64], ebx
sub eax, 1
mov ebx, dword [esp + 0xb4]
and esi, ecx
and edx, eax
and eax, 0x7e1
mov ecx, dword [esp + 0xc8]
add edx, esi
add eax, 0x1f
mov esi, edx
sub esi, ebx
mov ebx, dword [esp + 0xc0]
sub eax, ebx
sar eax, 5
add eax, ebx
mov word [ecx], ax
cmp esi, 0xffffff
ja 0x10003290
mov eax, dword [esp + 0xb0]
shl esi, 8
call fcn.10012d00
cmp dword [esp + 0xd8], 0xfff
jbe 0x100032a1
mov edi, esi
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xa4]
mov dword [esi + 0x58], edi
cmp ecx, 3
jbe 0x10002915
mov eax, ebx
mov edx, dword [esi + 0x64]
shr eax, 1
sub eax, 1
mov dword [esp + 0xcc], edx
mov dword [esp + 0xac], eax
mov eax, dword [esi + 0x60]
mov dword [esp + 0xc8], eax
cmp ecx, 0x7f
ja 0x100040b0
and ebx, 1
movzx ecx, byte [esp + 0xac]
mov dword [esp + 0xd8], 1
mov eax, ebx
or eax, 2
mov edx, eax
lea eax, [esi + 0x2198]
shl edx, cl
mov dword [esp + 0xa4], eax
mov dword [esp + 0x9c], edx
jmp 0x1000341f
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0xc8]
add eax, eax
or ebx, eax
sub dword [esp + 0xac], 1
mov dword [esp + 0xd8], ebx
je 0x10002d43
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xd8]
mov edx, edi
shr edx, 0xb
mov ebx, eax
shr eax, 1
mov ecx, edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
and ebx, 1
mov dword [esp + 0xc8], ebx
add eax, esi
mov esi, dword [esp + 0xa4]
lea eax, [esi + eax*2]
movzx esi, word [eax]
mov dword [esp + 0xc0], eax
mov eax, ebx
xor ebx, ebx
neg eax
imul ecx, esi
mov dword [esp + 0xb8], ecx
and ecx, eax
add dword [edx + 0x60], ecx
adc dword [edx + 0x64], ebx
mov ebx, dword [esp + 0xc8]
and eax, edi
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ecx
lea ecx, [ebx - 1]
mov ebx, dword [esp + 0xb4]
and edx, ecx
and ecx, 0x7e1
add ecx, 0x1f
add eax, edx
sub ecx, esi
mov edi, eax
mov eax, dword [esp + 0xc0]
sar ecx, 5
sub edi, ebx
add esi, ecx
mov word [eax], si
cmp edi, 0xffffff
ja 0x100033f8
mov eax, dword [esp + 0xb0]
shl edi, 8
call fcn.10012d00
jmp 0x100033f8
mov edi, dword [esp + 0xdc]
mov dword [esp + 0xb4], 0x100
sub eax, dword [edi + 0x38]
mov edi, dword [edi + 0x58]
movzx eax, byte [eax]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xc8], eax
mov eax, edx
or ah, 1
mov edi, eax
jmp 0x10003534
cmp edi, 0xffff
ja 0x1000363a
mov ecx, dword [esp + 0xb4]
shl dword [esp + 0xc8], 1
mov edx, edi
mov esi, dword [esp + 0xc8]
shr edx, 8
mov eax, ecx
and eax, esi
add eax, edx
mov edx, dword [esp + 0xb8]
add eax, ecx
lea eax, [edx + eax*2]
mov edx, edi
add edi, edi
shr edx, 7
xor esi, edi
mov ebx, eax
mov eax, edx
mov edx, esi
mov esi, dword [esp + 0xd8]
mov dword [esp + 0xac], ebx
not edx
and eax, 1
and ecx, edx
shr esi, 0xb
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xb4], ecx
movzx ecx, word [ebx]
neg edx
mov ebx, dword [esp + 0xdc]
imul esi, ecx
mov dword [esp + 0xa8], edx
mov eax, esi
and eax, edx
xor edx, edx
add dword [ebx + 0x60], eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xc0]
adc dword [ebx + 0x64], edx
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0xa8]
sub eax, 1
and esi, eax
and eax, 0x7e1
and edx, ebx
add eax, 0x1f
add edx, esi
mov esi, dword [esp + 0xa4]
sub eax, ecx
mov ebx, edx
sar eax, 5
sub ebx, esi
mov esi, dword [esp + 0xac]
add eax, ecx
mov dword [esp + 0xd8], ebx
mov word [esi], ax
cmp ebx, 0xffffff
ja 0x10003528
mov eax, dword [esp + 0xb0]
shl dword [esp + 0xd8], 8
call fcn.10012d00
cmp edi, 0xffff
jbe 0x10003534
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x58], edi
jmp 0x10002915
lea eax, [edi + 0x58]
shl ebx, 8
call fcn.10012d00
mov eax, dword [edi + 0x2c]
mov dword [esp + 0xd8], eax
jmp 0x100027fe
mov eax, dword [edi + 0x34]
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
test eax, eax
je 0x10004090
mov eax, edi
mov edi, dword [edi + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xdc]
mov esi, dword [eax + 0x28]
cmp esi, 1
jbe 0x10002b60
mov edi, eax
mov ebx, 0x111
mov eax, dword [eax]
cmp esi, ebx
cmovbe ebx, esi
mov dword [esp], eax
call dword [edi + 0xc]
mov dword [esp + 0xd0], esi
xor ecx, ecx
mov dword [esp + 0xc0], 0
mov edx, eax
lea eax, [eax - 1]
mov dword [esp + 0xd8], eax
movzx eax, byte [edx - 1]
mov byte [esp + 0xc8], al
lea eax, [esp + 0x100]
mov dword [esp + 0xb4], eax
mov eax, dword [edi + ecx*4 + 0x38]
mov esi, dword [esp + 0xd8]
sub esi, eax
mov dword [esp + ecx*4 + 0xf0], eax
movzx eax, byte [esp + 0xc8]
cmp al, byte [esi]
jne 0x1000372b
movzx eax, byte [esi + 1]
cmp byte [edx], al
je 0x10003e30
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0
add ecx, 1
cmp ecx, 4
jne 0x100036ff
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + eax*4 + 0x100]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x30]
cmp dword [esp + 0xd0], eax
jae 0x100044a8
mov esi, dword [esp + 0xdc]
lea edi, [esi + 0x748]
mov dword [esp + 0xb8], edi
cmp dword [esp + 0xb0], eax
jae 0x10005b80
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x70], esi
sub eax, esi
cmp ecx, edi
mov esi, dword [esp + 0xa0]
cmovae edi, ecx
movzx eax, byte [eax]
cmp edi, 1
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0xdc]
mov byte [esp + 0xac], al
setbe bl
cmp byte [esp + 0xc8], al
mov eax, dword [edi + 0x2c]
setne cl
and esi, dword [edi + 0x4c]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xd8], eax
shl eax, 4
lea eax, [esi + eax + 0xe48]
movzx esi, word [edi + eax*2 + 8]
test bl, cl
jne 0x10005c9a
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
shr si, 4
mov ecx, dword [edi + 0x94]
mov word [edi + 0xbaa4], bx
movzx edx, byte [edx - 2]
shl eax, 8
add eax, edx
and eax, dword [edi + 0x48]
shl eax, cl
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x50]
lea eax, [eax + edx*2]
mov dword [esp + 0xd0], eax
movzx eax, si
mov ecx, eax
mov eax, dword [edi + eax*4 + 0x548]
mov dword [esp + 0xa8], eax
lea eax, [edi + 0x548]
xor edi, edi
mov dword [esp + 0x80], eax
movzx eax, byte [esp + 0xc8]
or ah, 1
cmp ebx, 6
ja 0x100060a4
mov ebx, dword [esp + 0xd0]
mov word [esp + 0xd0], cx
mov esi, dword [esp + 0x80]
lea esi, [esi]
mov ecx, eax
shr eax, 1
and ecx, 1
movzx edx, word [ebx + eax*2]
neg ecx
and ecx, 0x7ff
xor edx, ecx
shr edx, 4
add edi, dword [esi + edx*4]
cmp eax, 1
jne 0x10003898
movzx ecx, word [esp + 0xd0]
mov eax, ecx
mov ebx, dword [esp + 0xdc]
mov edx, dword [esp + 0xa8]
xor esi, esi
xor eax, 0x7f
movzx eax, ax
add edx, edi
mov word [ebx + 0xbac6], si
mov edi, dword [ebx + eax*4 + 0x548]
mov dword [ebx + 0xbac0], edx
mov eax, dword [esp + 0xd8]
mov dword [ebx + 0xbacc], 0xffffffff
mov dword [esp + 0xa4], edi
lea esi, [ebx + eax*2]
movzx eax, word [esi + 0x1c38]
shr ax, 4
mov word [esp + 0x9c], ax
xor eax, 0x7f
movzx eax, ax
add edi, dword [ebx + eax*4 + 0x548]
mov eax, dword [esp + 0x100]
mov dword [esp + 0xa8], edi
movzx ebx, byte [esp + 0xac]
mov dword [esp + 0xd0], eax
cmp byte [esp + 0xc8], bl
je 0x10005fa9
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0xf4]
movd xmm7, dword [esp + 0x70]
mov ebx, dword [esp + 0xdc]
movd xmm2, eax
movd xmm6, edx
movd xmm0, dword [esp + 0xf8]
imul eax, dword [esp + 0xc0], 0x440
punpckldq xmm7, xmm6
mov dword [ebx + 0xbac8], 1
punpckldq xmm0, xmm2
movdqa xmm1, xmm7
movq qword [esp + 0x60], xmm7
punpcklqdq xmm1, xmm0
add eax, ebx
cmp dword [esp + 0xd0], 1
movups xmmword [ebx + 0xbab0], xmm1
mov dword [esp + 0xac], eax
jbe 0x1000609d
mov edx, dword [esp + 0xd8]
mov edi, ebx
mov ebx, dword [esp + 0xc0]
movzx eax, word [esi + 0x1c50]
shl edx, 4
lea edx, [ebx + edx + 0xf08]
shr eax, 4
movzx edx, word [edi + edx*2 + 8]
shr dx, 4
xor edx, 0x7f
movzx edx, dx
mov ebx, dword [edi + edx*4 + 0x548]
mov edx, dword [esp + 0xd0]
add ebx, dword [edi + eax*4 + 0x548]
xor edi, edi
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0xac]
add ebx, eax
mov eax, edx
shl eax, 5
add eax, ecx
lea esi, [esi]
nop
mov ecx, dword [esi + edx*4 + 0x7698]
add ecx, ebx
cmp ecx, dword [eax + 0xbaa0]
jae 0x10003a6c
mov dword [eax + 0xbaa0], ecx
xor ecx, ecx
mov dword [eax + 0xbaa8], edx
mov dword [eax + 0xbaac], edi
mov word [eax + 0xbaa6], cx
sub edx, 1
sub eax, 0x20
cmp edx, 1
jne 0x10003a40
mov esi, dword [esp + 0xd8]
add edi, 1
cmp edi, 4
je 0x10004530
mov eax, dword [esp + 0xb4]
mov edx, dword [eax + edi*4]
cmp edx, 1
jbe 0x10003a7e
movzx eax, word [esi + 0x1c50]
mov ebx, dword [esp + 0xdc]
shr eax, 4
xor eax, 0x7f
mov ebx, dword [ebx + eax*4 + 0x548]
movzx eax, word [esi + 0x1c68]
shr eax, 4
cmp edi, 1
je 0x10003aec
mov ecx, dword [esp + 0xdc]
xor eax, 0x7f
add ebx, dword [ecx + eax*4 + 0x548]
mov eax, 2
movzx ecx, word [esi + 0x1c80]
sub eax, edi
and eax, 0x7ff
xor eax, ecx
shr eax, 4
mov ecx, dword [esp + 0xdc]
add ebx, dword [ecx + eax*4 + 0x548]
jmp 0x10003a12
cmp dword [esp + 0xb8], 2
mov ebx, 2
je 0x10003b38
mov dword [esp + 0xb0], edx
jmp 0x10003b27
add ebx, 1
cmp ebx, edi
jae 0x10003b31
movzx edx, byte [eax + ebx]
cmp byte [ecx + ebx - 1], dl
je 0x10003b20
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc0]
cmp ebx, eax
jae 0x10006115
cmp dword [esp + 0xc8], ebx
jae 0x10002e02
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xb4], edx
jmp 0x10002e02
shl edx, 8
mov dword [esp + 0xd8], edx
call fcn.10012d00
mov edx, dword [esp + 0xd8]
jmp 0x10002bf6
lea eax, [esp + 0x100]
mov edx, eax
mov eax, dword [esp + 0xdc]
call fcn.10011df0
mov dword [esp + 0xd0], eax
jmp 0x10002d77
cmp dword [esp + 0xc8], 1
jbe 0x10003bdb
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xd0]
add eax, 1
cmp eax, esi
jae 0x10002edd
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xd0], 1
mov eax, dword [eax + 0x90]
mov dword [esp + 0xc8], eax
jmp 0x10002f28
cmp eax, 0x20000
mov ebx, eax
mov esi, dword [esp + 0xdc]
sbb eax, eax
and eax, 0xffffffec
cmp ebx, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr ebx, cl
movzx edx, byte [esi + ebx + 0x2a98]
lea ebx, [eax + edx + 0x20]
jmp 0x10003248
mov dword [esp + 0xc8], 0xffffffff
mov dword [esp + 0xd0], 1
jmp 0x10002f28
mov eax, edi
lea ebx, [edi + 0x2298]
call fcn.1002b330
mov eax, edi
call fcn.1000faf0
mov ecx, dword [edi + 0x9c]
mov edx, 1
lea eax, [edi + 0x3298]
shl edx, cl
lea ecx, [edi + 0x548]
mov dword [esp], ecx
mov ecx, ebx
call fcn.1001f030
jmp 0x10002956
mov ebx, dword [esp + 0xb8]
mov eax, 0x800
mov esi, dword [esp + 0xdc]
sub eax, ebx
movd xmm0, dword [esi + 0x3c]
shr eax, 5
add eax, ecx
mov word [esi + edx*2 + 8], ax
mov eax, esi
jmp 0x1000310a
mov edx, 0x800
sub edx, ecx
mov ecx, dword [esp + 0xc8]
shr edx, 5
add eax, edx
mov word [ebx + ecx*2 + 8], ax
mov eax, dword [esp + 0xd8]
movzx eax, byte [eax + str._t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [ebx + 0x2c], eax
cmp esi, 0xffffff
jbe 0x10005a00
mov dword [ebx + 0x58], esi
jmp 0x10002915
mov esi, dword [esp + 0xdc]
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0xd0]
mov eax, dword [esi + eax*4 + 0x744]
add eax, 4
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x34]
lea eax, [edi + eax - 1]
mov dword [esi + 0x34], eax
lea eax, [edi - 1]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0x14]
mov eax, dword [esi + 0x90]
mov dword [esp + 0xc8], eax
jmp 0x10002f28
shl edx, 8
lea eax, [edi + 0x58]
mov dword [esp + 0xc8], edx
call fcn.10012d00
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xd8], eax
jmp 0x1000285b
lea eax, [edi + 0x58]
shl ebx, 8
call fcn.10012d00
mov eax, dword [edi + 0x2c]
mov dword [esp + 0xd8], eax
jmp 0x1000300a
add eax, 0x58
shl edi, 8
call fcn.10012d00
jmp 0x1000312d
mov ecx, dword [eax + 0x9c]
mov esi, eax
mov edx, 1
mov dword [eax + 0xc4], 0x40
lea ebx, [eax + 0x2698]
lea eax, [eax + 0x769c]
shl edx, cl
lea ecx, [esi + 0x548]
mov dword [esp], ecx
mov ecx, ebx
call fcn.1001f030
jmp 0x1000296b
shl edx, 8
mov dword [esp + 0xb8], edx
call fcn.10012d00
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xb8]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xd8], eax
jmp 0x100031ad
cmp dword [esp + 0xd0], 2
mov eax, 2
je 0x10006225
mov dword [esp + 0xb8], ecx
jmp 0x10003e57
add eax, 1
cmp eax, ebx
jae 0x10003e61
movzx ecx, byte [esi + eax]
cmp byte [edx + eax - 1], cl
je 0x10003e50
mov esi, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov dword [esi + ecx*4], eax
mov esi, dword [esp + 0xc0]
mov esi, dword [esp + esi*4 + 0x100]
cmp esi, eax
jae 0x10003e8d
mov dword [esp + 0xc0], ecx
mov esi, eax
cmp eax, 0x111
jne 0x10003739
mov dword [esp + 0xd0], esi
jmp 0x10003756
mov edx, 0x800
mov edi, eax
movd xmm0, ebx
sub edx, ecx
shr edx, 5
add edx, ecx
jmp 0x100030f0
lea eax, [ebx + 0x58]
shl dword [esp + 0xb4], 8
call fcn.10012d00
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0xd8], eax
jmp 0x10003081
lea eax, [ebx + 0x58]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xb0], eax
call fcn.10012d00
mov eax, dword [esp + 0xd8]
shl eax, 8
mov dword [ebx + 0x58], eax
jmp 0x100028d4
mov esi, dword [esp + 0xc8]
cmp esi, 1
jbe 0x10003f55
mov ecx, dword [esp + 0xd0]
lea eax, [esi + 1]
cmp eax, ecx
jae 0x10002edd
lea eax, [esi + 2]
cmp eax, ecx
jae 0x100062cd
mov eax, esi
mov esi, dword [esp + 0xd0]
add eax, 3
cmp eax, esi
jb 0x10003f55
cmp edi, 0x7fff
ja 0x10002edd
cmp dword [esp + 0xb8], 2
jbe 0x10003bdb
mov ebx, dword [esp + 0xd0]
cmp ebx, 1
jbe 0x10003bdb
mov esi, dword [esp + 0xdc]
lea edx, [esi + 0x24]
mov eax, esi
call fcn.10011df0
mov dword [esi + 0x20], eax
cmp eax, 1
jbe 0x10003fe0
mov edx, dword [esi + 0x24]
mov edx, dword [esi + edx*4 + 0x744]
cmp eax, ebx
jb 0x10003fa2
cmp edx, edi
jb 0x10003bdb
mov esi, dword [esp + 0xd0]
lea ecx, [esi + 1]
cmp eax, ecx
je 0x1000612a
cmp ecx, eax
jb 0x10003bdb
mov ebx, dword [esp + 0xd0]
add eax, 1
cmp eax, ebx
jb 0x10003fe0
cmp ebx, 2
je 0x10003fe0
mov eax, edi
shr eax, 7
cmp edx, eax
jb 0x10003bdb
lea esi, [esi]
mov esi, dword [esp + 0xdc]
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0xc]
mov dword [esp + 0xc8], edi
xor ecx, ecx
mov edi, esi
mov ebx, eax
movzx eax, byte [eax - 1]
mov byte [esp + 0xd8], al
mov eax, dword [edi + ecx*4 + 0x38]
movzx edx, byte [esp + 0xd8]
not eax
add eax, ebx
cmp dl, byte [eax]
jne 0x10004027
movzx edx, byte [eax + 1]
cmp byte [ebx], dl
je 0x10005cab
add ecx, 1
cmp ecx, 4
jne 0x10004007
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0xd0]
lea eax, [edi + 4]
mov edi, dword [esp + 0xdc]
mov dword [esp + 0xc8], eax
mov dword [edi + 0x90], eax
cmp esi, 2
je 0x10002f28
mov eax, dword [edi + 0x34]
lea eax, [esi + eax - 2]
mov dword [edi + 0x34], eax
lea eax, [esi - 2]
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov eax, dword [edi + 0x90]
mov dword [esp + 0xc8], eax
jmp 0x10002f28
lea eax, [esp + 0xec]
mov edx, eax
mov eax, edi
call fcn.10011df0
mov dword [esp + 0xb0], eax
jmp 0x1000369f
mov eax, dword [esp + 0xac]
mov ebx, ecx
mov ecx, 0x20
or ebx, 0xf
sub ecx, eax
shl ebx, cl
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0xcc]
jmp 0x100040ed
cmp dword [esp + 0xd8], 0xf0000000
je 0x10004138
mov eax, dword [esp + 0xd8]
shr edi, 1
xor edx, edx
sar eax, 0x1f
and eax, edi
add ecx, eax
adc ebx, edx
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], ebx
shl dword [esp + 0xd8], 1
cmp edi, 0xffffff
ja 0x100040e0
mov eax, dword [esp + 0xb0]
shl edi, 8
call fcn.10012d00
mov ecx, dword [esi + 0x60]
mov ebx, dword [esi + 0x64]
cmp dword [esp + 0xd8], 0xf0000000
jne 0x100040ed
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], ebx
mov esi, eax
shr eax, 1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xdc]
and esi, 1
mov ebx, esi
mov dword [esp + 0xd8], esi
movzx edx, word [eax + 0x1c1a]
mov eax, edi
neg ebx
shr eax, 0xb
mov ecx, edx
mov dword [esp + 0xb4], edx
xor edx, edx
imul ecx, eax
mov dword [esp + 0xac], ecx
and ecx, ebx
mov dword [esp + 0xa4], ecx
mov eax, ecx
mov ecx, dword [esp + 0xdc]
add eax, dword [esp + 0xc8]
adc edx, dword [esp + 0xcc]
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xc0], eax
lea eax, [esi - 1]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xc4], edx
mov edx, edi
mov edi, dword [esp + 0xb4]
and ecx, eax
and eax, 0x7e1
and edx, ebx
sub eax, edi
add ecx, edx
add eax, 0x1f
mov ebx, ecx
mov ecx, dword [esp + 0xdc]
sar eax, 5
sub ebx, esi
add eax, edi
mov word [ecx + 0x1c1a], ax
cmp ebx, 0xffffff
jbe 0x10005f1f
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0xb8]
shr esi, 2
lea edx, [ecx + ecx + 4]
mov dword [esp + 0xac], esi
and eax, 1
lea esi, [edi + 0x1c18]
lea ecx, [esi + edx]
mov dword [esp + 0x98], edx
mov edx, ebx
shr edx, 0xb
mov dword [esp + 0xc8], esi
movzx esi, word [ecx]
mov dword [esp + 0xb4], ecx
mov ecx, edx
imul ecx, esi
mov dword [esp + 0xa4], esi
mov esi, eax
neg esi
mov dword [esp + 0xd8], eax
mov edx, ecx
and edx, esi
mov dword [esp + 0x9c], edx
mov eax, edx
xor edx, edx
add eax, dword [esp + 0xc0]
mov dword [edi + 0x60], eax
adc edx, dword [esp + 0xc4]
and ebx, esi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0x9c]
mov dword [edi + 0x64], edx
sub eax, 1
mov dword [esp + 0xbc], edx
and ecx, eax
and eax, 0x7e1
add ecx, ebx
add eax, 0x1f
mov ebx, ecx
mov ecx, dword [esp + 0xb4]
sub ebx, esi
mov esi, dword [esp + 0xa4]
sub eax, esi
sar eax, 5
add eax, esi
mov word [ecx], ax
cmp ebx, 0xffffff
jbe 0x10005ef0
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xc8]
add eax, esi
mov esi, dword [esp + 0xac]
add eax, eax
shr edi, 3
mov dword [esp + 0xa4], eax
add eax, ecx
mov ecx, ebx
and esi, 1
shr ecx, 0xb
mov dword [esp + 0xac], edi
movzx edi, word [eax]
mov dword [esp + 0xb4], eax
mov eax, ecx
mov ecx, dword [esp + 0xdc]
imul eax, edi
mov dword [esp + 0xc0], esi
neg esi
mov edx, eax
mov dword [esp + 0xd8], eax
and edx, esi
mov dword [esp + 0xa8], edx
mov eax, edx
xor edx, edx
add eax, dword [esp + 0xb8]
mov dword [ecx + 0x60], eax
adc edx, dword [esp + 0xbc]
and ebx, esi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc0]
mov dword [ecx + 0x64], edx
mov ecx, dword [esp + 0xd8]
sub eax, 1
mov dword [esp + 0xbc], edx
and ecx, eax
and eax, 0x7e1
add ecx, ebx
add eax, 0x1f
mov ebx, dword [esp + 0xa8]
sub eax, edi
sub ecx, ebx
sar eax, 5
mov ebx, dword [esp + 0xb4]
add eax, edi
mov dword [esp + 0xd8], ecx
mov word [ebx], ax
cmp ecx, 0xffffff
jbe 0x10005ebc
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xd8]
add eax, edi
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xdc]
lea eax, [ebx + eax*2]
shr esi, 0xb
movzx edi, word [eax]
mov dword [esp + 0xc8], eax
mov eax, esi
and ecx, 1
mov esi, ecx
mov dword [esp + 0xc0], ecx
imul eax, edi
neg esi
mov ebx, eax
and ebx, esi
mov dword [esp + 0xb4], ebx
mov ecx, ebx
xor ebx, ebx
add ecx, dword [esp + 0xb8]
mov dword [edx + 0x60], ecx
adc ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov dword [edx + 0x64], ebx
mov edx, dword [esp + 0xd8]
sub ecx, 1
and edx, esi
and eax, ecx
and ecx, 0x7e1
mov esi, dword [esp + 0xb4]
add eax, edx
mov edx, eax
lea eax, [ecx + 0x1f]
sub eax, edi
sub edx, esi
sar eax, 5
mov ebx, edx
add eax, edi
mov edi, dword [esp + 0xc8]
mov word [edi], ax
cmp edx, 0xffffff
jbe 0x10005ea8
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x58], ebx
jmp 0x10002915
mov ebx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xd0]
mov dword [ebx + 0x90], eax
mov eax, dword [ebx + 0x34]
lea eax, [esi + eax - 1]
mov dword [ebx + 0x34], eax
lea eax, [esi - 1]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x14]
mov eax, ebx
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xdc]
mov esi, dword [eax + 0x2c]
and ebx, dword [eax + 0x4c]
mov eax, dword [eax + 0x90]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xd8], esi
mov dword [esp + 0xc8], eax
jmp 0x1000272b
mov dword [esp + 0x100], eax
mov edi, ecx
jmp 0x10002eb8
mov edi, dword [esp + 0xd0]
add edi, 1
cmp dword [esp + 0xb0], edi
jb 0x10004750
movzx eax, word [esp + 0x9c]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xa8], 0
mov ebx, dword [esp + 0xa4]
add ebx, dword [esi + eax*4 + 0x548]
mov dword [esp + 0xa4], ebx
cmp edi, 1
jbe 0x10005f4e
mov edx, esi
xor eax, eax
cmp dword [esi + 0x748], edi
jae 0x100045a3
lea esi, [esi]
nop
add eax, 2
cmp dword [edx + eax*4 + 0x748], edi
jb 0x10004590
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xd0], edi
mov dword [esp + 0x9c], eax
mov eax, edi
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc8], ebx
add eax, 1
mov dword [esp + 0xb0], eax
jmp 0x1000466e
mov ecx, dword [esp + 0xd8]
shl eax, 7
lea eax, [ecx + eax + 0x504]
mov ecx, dword [esp + 0xdc]
add ebx, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0xc8]
cmp ebx, dword [eax + 0xbaa0]
jae 0x1000463f
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd8]
mov dword [eax + 0xbaa0], ebx
mov dword [eax + 0xbaa8], ecx
add edx, 4
xor ecx, ecx
mov dword [eax + 0xbaac], edx
mov word [eax + 0xbaa6], cx
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xd0]
cmp edi, dword [eax + ebx - 4]
je 0x10005f70
add dword [esp + 0xd0], 1
add dword [esp + 0xc8], 0x20
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xd0]
lea ebx, [eax*4]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xac]
add ebx, dword [eax + esi*4 + 0x3294]
mov eax, 5
cmp esi, eax
cmovbe eax, esi
sub eax, 2
cmp dword [esp + 0xd8], 0x7f
mov dword [esp + 0xb4], eax
jbe 0x100045e8
cmp dword [esp + 0xd8], 0x20000
sbb eax, eax
and eax, 0xffffffec
cmp dword [esp + 0xd8], 0x20000
mov edi, eax
sbb eax, eax
and eax, 0xfffffff6
add eax, 0x10
mov edx, eax
mov eax, dword [esp + 0xd8]
and eax, 0xf
mov ecx, eax
mov eax, dword [esp + 0xdc]
add ebx, dword [eax + ecx*4 + 0xfd8]
mov ecx, edx
mov edx, eax
mov esi, ebx
mov ebx, dword [esp + 0xd8]
shr ebx, cl
movzx ecx, byte [eax + ebx + 0x2a98]
mov eax, dword [esp + 0xb4]
shl eax, 6
lea eax, [edi + eax + 0x20]
lea eax, [ecx + eax + 0x404]
mov ebx, dword [edx + eax*4 + 8]
add ebx, esi
jmp 0x10004604
cmp dword [esp + 0x74], 1
je 0x10006299
mov esi, dword [esp + 0xdc]
movq qword [esp + 0x58], xmm0
mov dword [esp + 0xc8], 1
lea eax, [esi + 0xbac0]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], eax
lea eax, [esp + 0xec]
mov dword [esp + 0x40], eax
lea esi, [esi]
mov edx, dword [esp + 0x40]
mov eax, esi
call fcn.10011df0
mov dword [esp + 0xb0], eax
cmp eax, dword [esi + 0x30]
jae 0x10005a15
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0xb4]
add eax, 1
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc8]
sub eax, edx
cmp edx, 1
je 0x10004c30
movzx edx, word [edi + 6]
test dx, dx
je 0x10004c68
movzx ebx, dx
mov byte [esp + 0x84], 0
sub eax, ebx
mov ebx, eax
shl ebx, 5
mov edi, dword [esi + ebx + 0xbab0]
mov dword [esp + 0xd0], edi
cmp dx, 1
je 0x100059b0
mov dword [esp + 0x90], 8
mov edx, 8
movd xmm7, edi
cmp ecx, 3
ja 0x10004cd2
mov ebx, eax
shl ebx, 5
add ebx, esi
mov edi, dword [ebx + 0xbab4]
mov dword [esp + 0xd8], edi
test ecx, ecx
jne 0x100052b0
mov eax, dword [esp + 0xd0]
mov ecx, dword [ebx + 0xbabc]
movd xmm7, edi
movd xmm6, dword [ebx + 0xbab8]
movd xmm1, eax
movd xmm2, ecx
mov dword [esp + 0x70], eax
punpckldq xmm1, xmm7
punpckldq xmm6, xmm2
movdqa xmm2, xmm1
movq qword [esp + 0x58], xmm6
punpcklqdq xmm2, xmm6
movq qword [esp + 0x60], xmm1
movups xmmword [esp + 0xf0], xmm2
lea esi, [esi]
movq xmm1, qword [esp + 0x60]
mov edi, dword [esp + 0xb4]
mov eax, dword [esi]
movhps xmm1, qword [esp + 0x58]
mov word [edi + 4], dx
movups xmmword [edi + 0x10], xmm1
mov dword [esp], eax
call dword [esi + 0xc]
mov ecx, dword [esp + 0x70]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0xb4], edi
mov ebx, eax
lea eax, [eax - 1]
mov dword [esp + 0x9c], eax
sub eax, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x48], eax
movzx eax, byte [eax]
and ecx, edx
mov dword [esp + 0x3c], edx
mov edx, dword [edi]
mov byte [esp + 0xc0], al
mov eax, dword [esp + 0x90]
mov dword [esp + 0x68], ecx
shl eax, 4
mov dword [esp + 0xac], ebx
movzx ebx, byte [ebx - 1]
lea eax, [ecx + eax + 0xe48]
movzx eax, word [esi + eax*2 + 8]
mov byte [esp + 0x4c], bl
shr eax, 4
mov ecx, eax
xor ecx, 0x7f
mov edi, dword [esi + ecx*4 + 0x548]
add edi, edx
add edx, dword [esi + eax*4 + 0x548]
movzx eax, byte [esp + 0xc0]
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0xa8], edx
cmp bl, al
mov edx, dword [edi + 0x20]
sete byte [esp + 0xd0]
movzx ecx, byte [esp + 0xd0]
cmp edx, 0x3fffffff
setbe al
and al, cl
mov byte [esp + 0x94], al
jne 0x10004c20
mov edi, dword [esp + 0xa8]
cmp edx, edi
jb 0x10004c18
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x88]
movzx eax, byte [edi - 2]
shl ecx, 8
add eax, ecx
mov ecx, dword [esi + 0x94]
and eax, dword [esi + 0x48]
shl eax, cl
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x50]
lea ecx, [eax + ecx*2]
movzx eax, bl
or ah, 1
cmp dword [esp + 0x90], 6
mov dword [esp + 0xd8], ecx
jbe 0x10005180
movzx ecx, byte [esp + 0xc0]
mov dword [esp + 0x54], esi
mov ebx, 0x100
xor edi, edi
mov dword [esp + 0x8c], edx
mov esi, ecx
nop
add esi, esi
mov ecx, eax
mov edx, esi
shr ecx, 8
and edx, ebx
add edx, ebx
add edx, ecx
mov ecx, dword [esp + 0xd8]
movzx edx, word [ecx + edx*2]
mov ecx, eax
add eax, eax
shl ecx, 0x18
sar ecx, 0x1f
and ecx, 0x7ff
xor edx, ecx
mov ecx, dword [esp + 0x80]
shr edx, 4
add edi, dword [ecx + edx*4]
mov edx, esi
xor edx, eax
not edx
and ebx, edx
cmp eax, 0xffff
jbe 0x10004a00
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0xa8]
add ebx, edi
cmp ebx, edx
jae 0x10005170
mov eax, dword [esp + 0xb4]
xor edx, edx
movq xmm5, qword [0x100395a0]
mov dword [eax + 0x20], ebx
mov word [eax + 0x26], dx
movq qword [eax + 0x28], xmm5
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0xa4]
mov edx, dword [esi + 0x28]
lea eax, [esi + eax*2]
mov dword [esp + 0x54], eax
movzx eax, word [eax + 0x1c38]
shr ax, 4
mov word [esp + 0x44], ax
xor eax, 0x7f
movzx eax, ax
add edi, dword [esi + eax*4 + 0x548]
mov eax, 0x7ff
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0xc8]
sub eax, edi
cmp eax, edx
cmovbe edx, eax
movzx eax, byte [esp + 0xd0]
mov dword [esp + 0x8c], edx
and al, byte [esp + 0x84]
jne 0x100051d8
mov edi, dword [esp + 0x8c]
cmp edi, 1
jbe 0x10004bcc
mov eax, dword [esi + 0x30]
cmp edi, eax
mov dword [esp + 0x84], eax
cmovbe eax, edi
mov dword [esp + 0xd0], eax
test ebx, ebx
je 0x10004b50
cmp byte [esp + 0x94], 0
je 0x10004b50
movzx ecx, byte [esp + 0xc0]
cmp byte [esp + 0x4c], cl
je 0x10004b50
cmp edi, 2
jbe 0x10004b50
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0xac]
movzx eax, byte [eax + 1]
cmp byte [edi], al
je 0x10005cf9
lea esi, [esi]
imul eax, dword [esp + 0x68], 0x440
mov edi, 2
xor ebx, ebx
mov dword [esp + 0x98], edi
mov edi, esi
add eax, esi
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x9c]
sub esi, dword [esp + ebx*4 + 0xf0]
movzx eax, byte [esi]
cmp byte [ecx - 1], al
jne 0x10004b9a
movzx eax, byte [esi + 1]
cmp byte [ecx], al
je 0x10004d20
add ebx, 1
cmp ebx, 4
jne 0x10004b71
mov esi, edi
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0x98]
cmp dword [esp + 0xd0], ecx
jb 0x10005908
cmp dword [esp + 0xb0], edi
jae 0x10005388
add dword [esp + 0xc8], 1
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0xc8]
cmp eax, ebx
je 0x10005a39
add dword [esp + 0xb4], 0x20
cmp dword [esp + 0xc8], 0x7c0
je 0x100061a8
mov eax, dword [esp + 0x88]
mov dword [esp + 0x98], eax
jmp 0x100047a0
mov byte [esp + 0x94], 1
xor ebx, ebx
jmp 0x10004a81
shl eax, 5
movzx eax, word [eax + esi + 0xbaa4]
test ecx, ecx
jne 0x10005290
movzx eax, byte [eax + str._t_t_t_t_t_t_t_v_v_v_v_v]
cmp al, 6
mov dword [esp + 0x90], eax
mov edx, eax
setbe byte [esp + 0x84]
jmp 0x100048a8
mov ebx, eax
mov edx, eax
shl ebx, 5
shl edx, 5
mov edi, dword [esi + ebx + 0xbab0]
movzx edx, word [edx + esi + 0xbaa4]
mov dword [esp + 0xd0], edi
cmp ecx, 3
ja 0x10004cb0
movzx edx, byte [edx + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov ebx, edx
mov dword [esp + 0x90], edx
movzx edx, dl
cmp bl, 6
setbe byte [esp + 0x84]
jmp 0x1000483f
movzx edx, byte [edx + str._a_a_a_a_a_a_a_n_n_n_n_n]
movd xmm7, edi
mov ebx, edx
mov dword [esp + 0x90], edx
movzx edx, dl
cmp bl, 6
setbe byte [esp + 0x84]
shl eax, 5
lea ebx, [ecx - 3]
add eax, esi
movd xmm4, ebx
mov dword [esp + 0x70], ebx
mov ecx, dword [eax + 0xbab8]
movd xmm3, dword [eax + 0xbab4]
punpckldq xmm4, xmm7
movdqa xmm1, xmm4
movq qword [esp + 0x60], xmm4
movd xmm2, ecx
punpckldq xmm3, xmm2
punpcklqdq xmm1, xmm3
movq qword [esp + 0x58], xmm3
movups xmmword [esp + 0xf0], xmm1
jmp 0x100048a8
cmp dword [esp + 0xd0], 2
mov eax, 2
jbe 0x10006150
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x94], edi
jmp 0x10004d5d
cmp dword [esp + 0xd0], eax
je 0x10005970
movzx ecx, byte [ebx + eax - 1]
movzx edx, byte [esi + eax]
mov edi, eax
add eax, 1
cmp cl, dl
je 0x10004d50
mov ecx, edi
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc0], edi
lea edx, [ecx + 3]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x94], edx
lea edx, [ecx - 2]
mov dword [esp + 0x30], edx
lea edx, [ecx - 1]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xc8]
add edx, ecx
mov ecx, dword [esp + 0x74]
cmp ecx, edx
cmovae edx, ecx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x54]
movzx edx, word [edx + 0x1c50]
shr edx, 4
test ebx, ebx
jne 0x10005328
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
shl ecx, 4
lea ecx, [edx + ecx + 0xf08]
mov edx, dword [esp + 0x4c]
movzx ecx, word [edi + ecx*2 + 8]
shr cx, 4
xor ecx, 0x7f
movzx ecx, cx
mov ecx, dword [edi + ecx*4 + 0x548]
add ecx, dword [edi + edx*4 + 0x548]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], esi
add ecx, edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0x4c]
lea edx, [edx + ecx + 0x5d5]
shl edx, 5
add edx, edi
mov edi, dword [esp + 0xa8]
lea esi, [esi]
mov eax, dword [edi + ecx*4 + 0x7698]
add eax, esi
cmp eax, dword [edx]
jae 0x10004e63
mov dword [edx], eax
xor eax, eax
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ebx
mov word [edx + 6], ax
sub ecx, 1
sub edx, 0x20
cmp ecx, 1
jne 0x10004e48
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x48]
add edx, eax
mov edi, dword [esp + 0x34]
cmp edx, ecx
cmovbe ecx, edx
test ebx, ebx
je 0x100059d8
mov dword [esp + 0x48], ecx
mov edx, ecx
mov ecx, dword [esp + 0x94]
cmp edx, ecx
jb 0x10004b9a
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xc0]
movzx eax, byte [esi + eax]
cmp byte [ecx + edx], al
jne 0x10004b9a
mov ecx, dword [esp + 0x9c]
movzx eax, byte [esi + edx + 2]
cmp byte [ecx + edx + 2], al
jne 0x10004b9a
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], ebx
lea ecx, [eax + edx]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
and eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
imul eax, dword [esp + 0x68], 0x110
lea eax, [ecx + eax + 0x1da4]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + eax*4 + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x90]
movzx eax, byte [eax + str._b_b_b_b_b_b_b_v_v_v_v_v]
shl eax, 4
lea eax, [ecx + eax + 0xe48]
mov ecx, dword [edi + 0x50]
movzx eax, word [edi + eax*2 + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
shr ax, 4
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x548]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + edx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x20]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x34]
shl ecx, 8
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
add ecx, eax
and ecx, dword [edi + 0x48]
mov eax, ecx
mov ecx, dword [edi + 0x94]
shl eax, cl
lea eax, [eax + eax*2]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x34], ecx
movzx eax, byte [eax + edx]
xor edx, edx
mov dword [esp + 0x20], edi
mov edi, edx
or ah, 1
mov ecx, eax
mov eax, 0x100
mov esi, eax
add ebx, ebx
mov edx, ecx
mov eax, ebx
shr edx, 8
and eax, esi
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x34]
movzx eax, word [eax + edx]
mov edx, ecx
add ecx, ecx
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x80]
shr eax, 4
add edi, dword [edx + eax*4]
mov eax, ebx
xor eax, ecx
not eax
and esi, eax
cmp ecx, 0xffff
jbe 0x10004fb6
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
add eax, 1
mov ebx, dword [esp + 0x1c]
and edx, eax
movzx eax, word [edi + 0x1c42]
mov dword [esp + 0x38], edx
shr ax, 4
xor eax, 0x7f
movzx ecx, ax
movzx eax, word [edi + 0x1c5a]
shr ax, 4
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x548]
add eax, dword [edi + ecx*4 + 0x548]
mov ecx, dword [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
movzx eax, word [edi + edx*2 + 0x1d38]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [edi + eax*4 + 0x548]
movzx eax, word [edi + edx*2 + 0x1eb8]
mov edx, dword [esp + 0x4c]
mov word [esp + 0x30], ax
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [edi + eax*4 + 0x548]
mov eax, ecx
mov ecx, dword [esp + 0x34]
add eax, edx
mov edx, dword [esp + 0x48]
add ecx, eax
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x94], edx
jae 0x100050ee
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0xac]
jmp 0x100050d5
add eax, 1
cmp eax, edx
je 0x100050df
movzx ebx, byte [esi + eax]
cmp byte [ecx + eax - 1], bl
je 0x100050ce
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x94], eax
mov esi, dword [esp + 0xc0]
mov edx, eax
sub edx, esi
mov esi, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x94], edx
add esi, eax
imul eax, dword [esp + 0x38], 0x110
lea eax, [edx + eax + 0x1da1]
add ecx, dword [edi + eax*4 + 0x10]
mov eax, esi
shl eax, 5
lea edx, [edi + eax]
cmp ecx, dword [edx + 0xbaa0]
jae 0x1000515c
mov eax, dword [esp + 0x94]
mov dword [edx + 0xbaa0], ecx
mov dword [edx + 0xbaac], ebx
sub eax, 1
mov dword [edx + 0xbaa8], eax
movzx eax, word [esp + 0xc0]
add eax, 1
mov word [edx + 0xbaa6], ax
mov eax, dword [esp + 0x74]
cmp eax, esi
cmovae esi, eax
mov dword [esp + 0x74], esi
jmp 0x10004b9a
mov byte [esp + 0x94], 1
jmp 0x10004a81
mov dword [esp + 0x8c], edx
mov ebx, ecx
xor edi, edi
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x80]
lea esi, [esi]
mov ecx, eax
shr eax, 1
and ecx, 1
movzx edx, word [ebx + eax*2]
neg ecx
and ecx, 0x7ff
xor edx, ecx
shr edx, 4
add edi, dword [esi + edx*4]
cmp eax, 1
jne 0x100051a0
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0xd8]
jmp 0x10004a53
mov edi, dword [esp + 0xb4]
mov edx, dword [edi + 0x20]
cmp dword [esp + 0xd8], edx
jae 0x10004aec
cmp dword [edi + 0x28], 1
jbe 0x10005200
mov edi, dword [edi + 0x2c]
test edi, edi
je 0x10004aec
mov edi, dword [esp + 0x54]
movzx ecx, word [edi + 0x1c50]
shr cx, 4
movzx edi, cx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x68]
shl ecx, 4
lea ecx, [edi + ecx + 0xf08]
mov edi, dword [esp + 0xd0]
movzx ecx, word [esi + ecx*2 + 8]
shr cx, 4
movzx ecx, cx
mov ecx, dword [esi + ecx*4 + 0x548]
add ecx, dword [esi + edi*4 + 0x548]
mov edi, dword [esp + 0xd8]
add ecx, edi
cmp ecx, edx
jae 0x10004aec
mov edi, dword [esp + 0xb4]
mov byte [esp + 0x94], al
movq xmm0, qword [0x100395a8]
mov dword [edi + 0x20], ecx
xor ecx, ecx
mov word [edi + 0x26], cx
movq qword [edi + 0x28], xmm0
jmp 0x10004aec
movzx eax, byte [eax + 0x10038140]
cmp al, 6
mov dword [esp + 0x90], eax
mov edx, eax
setbe byte [esp + 0x84]
jmp 0x100048a8
mov edi, dword [esp + 0xd0]
mov dword [esp + 0xf4], edi
cmp ecx, 1
je 0x10005c18
movd xmm0, dword [esp + 0xd8]
shl eax, 3
movd xmm4, edi
lea ebx, [ecx + eax + 0x2eac]
xor ecx, 1
lea eax, [eax + ecx + 0x2eac]
mov edi, dword [esi + ebx*4]
mov ecx, dword [esi + eax*4]
movd xmm5, edi
mov dword [esp + 0x70], edi
movd xmm3, ecx
punpckldq xmm5, xmm4
mov dword [esp + 0xf0], edi
punpckldq xmm0, xmm3
movq qword [esp + 0x60], xmm5
movq qword [esp + 0xf8], xmm0
movq qword [esp + 0x58], xmm0
jmp 0x100048a8
xor edx, 0x7f
mov ecx, dword [edi + edx*4 + 0x548]
mov edx, dword [esp + 0x54]
movzx edx, word [edx + 0x1c68]
shr edx, 4
cmp ebx, 1
je 0x10005378
xor edx, 0x7f
add ecx, dword [edi + edx*4 + 0x548]
mov edx, 2
sub edx, ebx
mov dword [esp + 0x4c], ecx
and edx, 0x7ff
mov ecx, edx
mov edx, dword [esp + 0x54]
movzx edx, word [edx + 0x1c80]
xor ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x4c]
shr edx, 4
add ecx, dword [edi + edx*4 + 0x548]
jmp 0x10004e04
movzx eax, word [esp + 0x44]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xc8]
add edx, dword [esi + eax*4 + 0x548]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x74]
add eax, ecx
cmp edx, eax
cmovae eax, edx
mov dword [esp + 0x74], eax
cmp dword [esi + 0x748], edi
jae 0x10006187
xor edx, edx
lea esi, [esi]
mov eax, edx
add edx, 2
cmp dword [esi + edx*4 + 0x748], edi
jb 0x100053d0
mov dword [esp + 0xa4], edx
lea ebx, [eax*4 + 0xc]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xb0], esi
mov ebx, dword [eax + ebx]
cmp ebx, 0x20000
mov dword [esp + 0xd8], ebx
sbb eax, eax
and eax, 0xffffffec
cmp ebx, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr ebx, cl
movzx edx, byte [esi + ebx + 0x2a98]
lea ecx, [eax + edx + 0x20]
mov eax, dword [esp + 0xec]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x88]
add eax, edi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xc8]
lea eax, [edi + eax + 0x5d5]
shl eax, 5
lea ebx, [esi + eax]
mov eax, dword [esp + 0xa4]
lea eax, [eax*4]
mov dword [esp + 0xc0], eax
jmp 0x100054e0
shl eax, 7
lea eax, [esi + eax + 0x504]
mov esi, dword [esp + 0xb0]
add edx, dword [esi + eax*4 + 8]
cmp edx, dword [ebx]
jae 0x100054b1
mov eax, dword [esp + 0xd8]
mov dword [ebx], edx
mov dword [ebx + 8], edi
add eax, 4
mov dword [ebx + 0xc], eax
xor eax, eax
mov word [ebx + 6], ax
lea eax, [edi + 1]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xb8]
cmp edi, dword [eax + ecx]
je 0x10005540
add dword [esp + 0x94], 1
mov edi, dword [esp + 0xd0]
add ebx, 0x20
mov eax, dword [esp + 0xa8]
mov esi, 3
mov edx, dword [esp + 0x98]
add edx, dword [eax + edi*4 + 0x3294]
lea eax, [edi - 2]
cmp eax, esi
cmova eax, esi
mov esi, dword [esp + 0xd8]
cmp esi, 0x7f
jbe 0x10005480
mov ecx, dword [esp + 0xb0]
and esi, 0xf
shl eax, 6
add edx, dword [ecx + esi*4 + 0xfd8]
mov esi, dword [esp + 0x84]
lea eax, [esi + eax + 0x404]
add edx, dword [ecx + eax*4 + 8]
jmp 0x10005495
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x8c]
add eax, esi
cmp eax, ecx
cmova eax, ecx
mov dword [esp + 0x4c], eax
mov ecx, eax
lea eax, [edi + 3]
mov dword [esp + 0x84], eax
cmp ecx, eax
jb 0x100055a2
mov ecx, dword [esp + 0xd8]
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x9c]
mov esi, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xac]
movzx ecx, byte [ecx + esi - 1]
mov esi, dword [esp + 0xd0]
cmp byte [eax + esi - 1], cl
je 0x10005628
add dword [esp + 0xa4], 2
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0xa4]
mov esi, eax
cmp eax, edi
je 0x10005960
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xb8]
mov edi, dword [edi + ecx + 0xc]
cmp edi, 0x20000
mov dword [esp + 0xd8], edi
sbb eax, eax
and eax, 0xffffffec
cmp edi, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr edi, cl
mov edx, edi
mov edi, dword [esp + 0xb0]
movzx edx, byte [edi + edx + 0x2a98]
lea eax, [eax + edx + 0x20]
mov dword [esp + 0x84], eax
lea eax, [esi*4]
mov dword [esp + 0xc0], eax
jmp 0x100054ce
mov esi, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x9c]
movzx eax, byte [eax + esi]
mov esi, dword [esp + 0xd0]
cmp byte [ecx + esi], al
jne 0x100055a2
mov eax, ecx
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x84], ecx
jae 0x10005f58
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x44], ebx
jmp 0x1000568f
add edx, 1
cmp ecx, edx
je 0x1000569a
movzx ebx, byte [edx + eax - 2]
cmp byte [edi + edx - 1], bl
je 0x10005688
mov edi, dword [esp + 0x4c]
mov eax, edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xd0], esi
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x48]
sub eax, edi
lea ecx, [eax - 1]
sub eax, 3
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0x94]
sub edi, 1
mov dword [esp + 0x2c], edx
mov ecx, dword [esi + 0x4c]
and eax, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov ecx, eax
mov eax, dword [esp + 0x90]
movzx eax, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n]
shl eax, 4
lea eax, [ecx + eax + 0xe48]
mov ecx, dword [esp + 0xd0]
movzx eax, word [esi + eax*2 + 8]
shr ax, 4
movzx eax, ax
mov eax, dword [esi + eax*4 + 0x548]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xd8]
sub edi, eax
mov eax, dword [esp + 0x9c]
movzx edi, byte [eax + edi]
mov eax, dword [esi + 0x50]
mov dword [esp + 0x30], edi
mov edi, esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x4c], eax
movzx eax, byte [esi + ecx - 3]
mov ecx, dword [esp + 0x94]
shl ecx, 8
add eax, ecx
mov ecx, dword [edi + 0x94]
and eax, dword [edi + 0x48]
shl eax, cl
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ebx
lea eax, [eax + eax*2]
lea edi, [eax + eax]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0xd0]
movzx eax, byte [esi + edi - 2]
mov esi, 0x100
mov ebx, esi
or ah, 1
mov edi, eax
xor eax, eax
mov esi, eax
lea esi, [esi]
add ecx, ecx
mov edx, edi
mov eax, ecx
shr edx, 8
and eax, ebx
add eax, ebx
add eax, edx
mov edx, dword [esp + 0x4c]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x48]
movzx eax, word [eax + edx]
mov edx, edi
add edi, edi
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x80]
shr eax, 4
add esi, dword [edx + eax*4]
mov eax, ecx
xor eax, edi
not eax
and ebx, eax
cmp edi, 0xffff
jbe 0x10005798
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x4c], esi
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
add eax, 1
and edi, eax
mov eax, dword [esp + 0x84]
mov esi, edi
mov edi, dword [esp + 0xc8]
add eax, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x84], eax
movzx ecx, word [edi + 0x1c40]
shr cx, 4
mov eax, ecx
xor eax, 0x7f
movzx ecx, ax
movzx eax, word [edi + 0x1c58]
shr ax, 4
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x548]
add eax, dword [edi + ecx*4 + 0x548]
mov ecx, dword [esp + 0x34]
add ecx, eax
movzx eax, word [edi + esi*2 + 0x1d18]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [edi + eax*4 + 0x548]
movzx eax, word [edi + esi*2 + 0x1e98]
mov word [esp + 0x48], ax
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [edi + eax*4 + 0x548]
imul eax, esi, 0x110
add edx, ecx
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax + 0x1da4]
mov ecx, dword [esp + 0x4c]
add edx, dword [edi + eax*4 + 0x10]
mov eax, dword [esp + 0x84]
add ecx, edx
shl eax, 5
lea edx, [edi + eax]
cmp ecx, dword [edx + 0xbaa0]
jae 0x100058eb
mov eax, dword [esp + 0x28]
mov dword [edx + 0xbaa0], ecx
mov dword [edx + 0xbaa8], eax
movzx eax, word [esp + 0xd0]
mov word [edx + 0xbaa6], ax
mov eax, dword [esp + 0xd8]
add eax, 4
mov dword [edx + 0xbaac], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
cmp edx, eax
cmovae eax, edx
mov dword [esp + 0x74], eax
jmp 0x100055a2
mov ecx, dword [esp + 0xd0]
cmp dword [esi + 0x748], ecx
jae 0x10006197
mov dword [esp + 0xd8], ebx
lea eax, [esi + 0x750]
mov edx, 2
mov ebx, ecx
nop
mov ecx, eax
add edx, 2
add eax, 8
cmp dword [ecx], ebx
jb 0x10005930
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xec], edx
mov dword [ecx], eax
mov dword [esp + 0xb0], eax
jmp 0x10004bbf
mov esi, dword [esp + 0xb0]
jmp 0x10004bcc
mov ecx, edi
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0xc0]
lea edx, [ecx + 4]
mov dword [esp + 0x2c], ecx
lea eax, [ecx + 2]
mov dword [esp + 0x94], edx
lea edx, [ecx - 1]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x30], edx
mov dword [esp + 0xc0], ecx
jmp 0x10004d9e
cmp ecx, 3
jbe 0x10005c70
mov dword [esp + 0x90], 7
mov edx, 7
movd xmm7, edi
jmp 0x10004cd2
mov edx, dword [esp + 0x94]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x98], eax
cmp ecx, edx
jae 0x10004eac
mov ebx, 1
jmp 0x10004b71
lea eax, [ebx + 0x58]
call fcn.10012d00
mov eax, esi
shl eax, 8
mov dword [ebx + 0x58], eax
jmp 0x10002915
movd xmm5, dword [esp + 0xec]
movd xmm0, eax
mov eax, dword [esp + 0xdc]
punpckldq xmm0, xmm5
movq qword [eax + 0x20], xmm0
mov eax, dword [esp + 0xc8]
add eax, 1
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0xdc]
shl edx, 5
add edx, ecx
lea esi, [esi]
mov dword [edx + 0xbaa0], 0x40000000
sub edx, 0x20
cmp edx, ecx
jne 0x10005a50
mov ebx, dword [esp + 0xdc]
mov edi, 0xffffffff
mov esi, 1
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], esi
mov edi, ebx
movq xmm4, qword [esp + 0xd0]
mov dword [ebx + 0x1c], eax
jmp 0x10005adf
mov dword [esi + 0xba8c], 0
sub eax, 2
lea ecx, [ebx - 1]
mov ebx, eax
shl ebx, 5
movq qword [ebx + edi + 0xbaa8], xmm4
test edx, edx
je 0x10005b40
mov ebx, eax
mov esi, dword [esp + 0xc8]
sub eax, 1
shl ebx, 5
add ebx, edi
mov dword [ebx + 0xba8c], esi
mov dword [ebx + 0xba88], ecx
mov ebx, edx
shl ebx, 5
add ebx, edi
mov esi, dword [ebx + 0xbaac]
mov ecx, dword [ebx + 0xbaa8]
movzx ebx, word [ebx + 0xbaa6]
mov dword [esp + 0xc8], esi
sub edx, ecx
test ebx, ebx
je 0x10005abe
mov esi, eax
sub edx, ebx
shl esi, 5
add esi, edi
mov dword [esi + 0xba88], ecx
cmp ebx, 1
jne 0x10005aa0
mov ebx, dword [esp + 0xc8]
sub eax, 1
mov ecx, 1
mov dword [esp + 0xc8], 0xffffffff
mov dword [esi + 0xba8c], ebx
test edx, edx
jne 0x10005ac2
nop
mov edx, dword [esp + 0xdc]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0xd0], ecx
mov esi, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x2c]
and esi, dword [edx + 0x4c]
mov dword [edx + 0x90], edi
mov edi, edx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xd8], eax
jmp 0x1000272b
mov eax, dword [esp + 0xec]
mov eax, dword [edi + eax*4 - 4]
mov edi, dword [esp + 0xb0]
add eax, 4
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x34]
lea eax, [edi + eax - 1]
mov dword [esi + 0x34], eax
lea eax, [edi - 1]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0x14]
mov eax, dword [esp + 0xa0]
and eax, dword [esi + 0x4c]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0x2c]
mov edi, dword [esp + 0xdc]
mov dword [esp + 0xd8], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0xc8], eax
jmp 0x1000272b
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xa0], 1
mov dword [eax + 0x58], edx
mov edx, dword [eax]
sub dword [eax + 0x34], 1
mov eax, dword [eax + 8]
jmp 0x100026b0
mov eax, dword [ebx + 0xbab8]
mov ecx, dword [ebx + 0xbabc]
movd xmm2, edi
mov edi, dword [esp + 0xd8]
movd xmm6, eax
movd xmm7, ecx
mov dword [esp + 0xf8], eax
movd xmm5, edi
punpckldq xmm6, xmm7
mov dword [esp + 0x70], edi
punpckldq xmm5, xmm2
mov dword [esp + 0xf0], edi
mov dword [esp + 0xfc], ecx
movq qword [esp + 0x58], xmm6
movq qword [esp + 0x60], xmm5
jmp 0x100048a8
mov dword [esp + 0x90], 8
mov edx, 8
jmp 0x1000483f
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x6c]
sub eax, ebx
jmp 0x100029c5
mov dword [edi + 0x90], 0xffffffff
mov esi, edi
jmp 0x10002b91
mov esi, dword [esp + 0xd0]
lea edx, [esi - 1]
cmp edx, 2
jbe 0x10003bdb
mov dword [esp + 0xc0], ecx
lea edx, [ebx + 1]
add eax, 2
lea esi, [ebx + esi - 2]
jmp 0x10005ce6
add edx, 1
add eax, 1
cmp edx, esi
je 0x10003bdb
movzx ecx, byte [eax]
cmp byte [edx], cl
je 0x10005cd8
mov ecx, dword [esp + 0xc0]
jmp 0x10004027
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + 2]
cmp byte [edi + 1], al
jne 0x10004b50
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc0], 3
add eax, 1
cmp eax, edx
cmova eax, edx
mov edi, eax
cmp eax, 3
jbe 0x100062b8
mov dword [esp + 0xc0], ebx
mov edx, 3
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0x48]
jmp 0x10005d5d
lea eax, [edx + 1]
cmp edi, eax
je 0x10006286
mov edx, eax
movzx eax, byte [ebx + edx]
cmp byte [ecx + edx - 1], al
je 0x10005d50
lea eax, [edx - 1]
mov ebx, dword [esp + 0xc0]
mov edi, edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x3c]
movzx ecx, byte [eax + 0x10038140]
mov eax, dword [esp + 0x98]
add eax, 2
mov dword [esp + 0xa8], ecx
and edx, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x94], edx
add eax, edi
mov dword [esp + 0x98], eax
mov eax, ecx
shl eax, 4
lea ecx, [eax + edx]
movzx edx, word [esi + ecx*2 + 0x1c98]
shr dx, 4
mov eax, edx
xor eax, 0x7f
movzx edx, ax
movzx eax, word [esi + ecx*2 + 0x1e18]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov ecx, dword [esi + eax*4 + 0x548]
mov eax, dword [esp + 0xa8]
add ecx, dword [esi + edx*4 + 0x548]
movzx edx, word [esi + eax*2 + 0x1c50]
mov word [esp + 0x4c], dx
shr dx, 4
movzx eax, dx
add ecx, dword [esi + eax*4 + 0x548]
mov eax, dword [esp + 0xa8]
movzx eax, word [esi + eax*2 + 0x1c38]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [esi + eax*4 + 0x548]
imul eax, dword [esp + 0x94], 0x110
lea ecx, [ecx + ebx]
lea eax, [edi + eax + 0x1da1]
add ecx, dword [esi + eax*4 + 0x10]
mov eax, dword [esp + 0x98]
shl eax, 5
add eax, esi
cmp ecx, dword [eax + 0xbaa0]
jae 0x10005e8a
mov dword [eax + 0xbaa0], ecx
mov edx, 1
mov ecx, dword [esp + 0xc0]
mov dword [eax + 0xbaac], 0
mov dword [eax + 0xbaa8], ecx
mov word [eax + 0xbaa6], dx
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x98]
cmp ebx, eax
cmovae eax, ebx
mov dword [esp + 0x74], eax
jmp 0x10004b50
mov eax, dword [esp + 0xb0]
shl ebx, 8
call fcn.10012d00
jmp 0x10004492
mov eax, dword [esp + 0xb0]
shl dword [esp + 0xd8], 8
call fcn.10012d00
mov eax, dword [esp + 0xdc]
mov edx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
jmp 0x100043d6
mov eax, dword [esp + 0xb0]
shl ebx, 8
call fcn.10012d00
mov eax, dword [esp + 0xdc]
mov edx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
jmp 0x100042f1
mov eax, dword [esp + 0xb0]
shl ebx, 8
call fcn.10012d00
mov eax, dword [esp + 0xdc]
mov edx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], eax
jmp 0x1000420f
mov edi, 2
jmp 0x100045a3
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], 2
jmp 0x100056c6
add dword [esp + 0xa8], 2
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0x9c], eax
je 0x10004750
add eax, 1
mov dword [esp + 0xb0], eax
jmp 0x1000465e
mov eax, dword [esp + 0xdc]
xor edx, edx
jmp 0x100029e3
test eax, eax
jne 0x10003953
movzx eax, word [esi + 0x1c50]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc8], 0xffffffff
shr ax, 4
movzx ecx, ax
mov eax, dword [esp + 0xd8]
shl eax, 4
lea eax, [ebx + eax + 0xf08]
mov ebx, dword [esp + 0xdc]
movzx eax, word [ebx + eax*2 + 8]
shr ax, 4
movzx eax, ax
mov eax, dword [ebx + eax*4 + 0x548]
add eax, dword [ebx + ecx*4 + 0x548]
add eax, edi
cmp eax, edx
jae 0x10006024
mov dword [ebx + 0xbac0], eax
mov dword [ebx + 0xbacc], 0
mov dword [esp + 0xc8], 0
cmp dword [esp + 0x74], 1
jbe 0x10006260
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0xf4]
xor edi, edi
movd xmm5, dword [esp + 0x70]
mov ebx, dword [esp + 0xdc]
movd xmm7, eax
movd xmm3, edx
movd xmm0, dword [esp + 0xf8]
imul eax, dword [esp + 0xc0], 0x440
punpckldq xmm5, xmm3
mov dword [ebx + 0xbac8], 1
punpckldq xmm0, xmm7
movdqa xmm1, xmm5
movq qword [esp + 0x60], xmm5
punpcklqdq xmm1, xmm0
add eax, ebx
movups xmmword [ebx + 0xbab0], xmm1
mov dword [esp + 0xac], eax
jmp 0x10003a7e
xor edi, edi
jmp 0x10003a7e
mov word [esp + 0xa4], cx
movzx esi, byte [esp + 0xac]
mov ebx, 0x100
lea esi, [esi]
add esi, esi
mov ecx, eax
mov edx, esi
shr ecx, 8
and edx, ebx
add edx, ebx
add edx, ecx
mov ecx, dword [esp + 0xd0]
movzx edx, word [ecx + edx*2]
mov ecx, eax
add eax, eax
shl ecx, 0x18
sar ecx, 0x1f
and ecx, 0x7ff
xor edx, ecx
mov ecx, dword [esp + 0x80]
shr edx, 4
add edi, dword [ecx + edx*4]
mov edx, esi
xor edx, eax
not edx
and ebx, edx
cmp eax, 0xffff
jbe 0x100060c0
movzx ecx, word [esp + 0xa4]
jmp 0x100038c0
mov edi, dword [esp + 0xdc]
mov dword [edi + 0x90], edx
mov eax, dword [edi + 0x34]
jmp 0x10002efb
mov ecx, edx
shr ecx, 7
cmp edi, ecx
jb 0x10003fbc
jmp 0x10003bdb
mov eax, dword [esp + 0xb0]
shl ebx, 8
call fcn.10012d00
jmp 0x10002a56
mov dword [esp + 0xc0], 2
mov eax, 3
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x94], 5
jmp 0x10004d9e
mov dword [esp + 0xa4], 0
jmp 0x100053ec
mov ecx, dword [esp + 0xb8]
mov edx, 2
jmp 0x10005943
mov edi, dword [esp + 0xdc]
mov esi, ebx
mov ecx, dword [edi + 0x1b2a0]
cmp ebx, 0x7c0
jbe 0x100062ae
mov ebx, 0x7c0
mov eax, 0x7c1
jmp 0x100061d2
mov eax, edx
mov edx, eax
shl edx, 5
mov edx, dword [edi + edx + 0xbaa0]
cmp ecx, edx
jb 0x100061e6
mov ecx, edx
mov ebx, eax
lea edx, [eax + 1]
cmp esi, eax
jne 0x100061d0
mov edx, ebx
mov eax, 0x7c1
sub edx, 0x7c0
je 0x10005a3c
mov esi, dword [esp + 0xdc]
add dword [esi + 0x34], edx
mov dword [esp + 4], edx
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0x14]
mov dword [esp + 0xc8], ebx
lea eax, [ebx + 1]
jmp 0x10005a3c
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 2
mov eax, dword [esp + 0xc0]
cmp dword [esp + eax*4 + 0x100], 1
cmovbe eax, ecx
mov dword [esp + 0xc0], eax
jmp 0x10003739
test eax, eax
je 0x1000267c
jmp 0x10002faf
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd0], 1
mov dword [eax + 0x90], esi
mov edi, eax
jmp 0x1000272b
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc0], edx
jmp 0x10005d7a
mov dword [esp + 0xc8], 1
mov eax, 2
jmp 0x10005a3c
mov eax, 0x7c1
jmp 0x10005a3c
mov dword [esp + 0xc0], 2
mov edi, 3
jmp 0x10005d7a
cmp edi, 0x1ff
ja 0x10002edd
jmp 0x10003f55
mov eax, 9
jmp 0x1000266b
mov eax, 9
jmp 0x10002fc5
push ebp
mov ebp, eax
add eax, 0x58
push edi
push esi
push ebx
sub esp, 0x2c
mov ecx, dword [ebp + 0xa8]
mov dword [eax + 0x54], 1
mov dword [esp + 0x14], eax
test ecx, ecx
jne 0x1000f668
mov esi, dword [esp + 0x14]
mov ebx, 5
nop
mov eax, esi
call fcn.10012d00
sub ebx, 1
jne 0x1000f5f0
mov eax, dword [esp + 0x14]
call fcn.1000c940
mov eax, dword [ebp + 0xd0]
test eax, eax
jne 0x1000f64a
mov edx, dword [ebp + 0x88]
mov eax, dword [ebp + 0x134]
test edx, edx
je 0x1000f658
mov dword [ebp + 0xd0], 9
test eax, eax
je 0x1000fae4
mov dword [ebp + 0xd0], 8
mov eax, 8
mov dword [ebp + 0xac], 1
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
test eax, eax
jne 0x1000f631
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x2c]
and edi, edx
mov eax, esi
mov edx, dword [ebp + 0x58]
shl eax, 4
mov dword [esp + 0x18], edi
lea eax, [edi + eax + 0xe48]
mov edi, edx
movzx ebx, word [ebp + eax*2 + 8]
shr edi, 0xb
mov dword [esp + 0x1c], eax
mov eax, edi
imul eax, ebx
mov ecx, ebx
sub edx, eax
mov edi, edx
xor edx, edx
add dword [ebp + 0x60], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x64], edx
shr ebx, 5
sub ecx, ebx
mov word [ebp + eax*2 + 8], cx
cmp edi, 0xffffff
jbe 0x1000f9a8
lea eax, [esi + 0xe18]
shr edi, 0xb
mov ecx, 0x800
movzx edx, word [ebp + eax*2 + 8]
sub ecx, edx
imul edi, edx
mov ebx, edx
shr ecx, 5
add ebx, ecx
mov word [ebp + eax*2 + 8], bx
cmp edi, 0xffffff
jbe 0x1000fad0
movzx eax, byte [esi + str._a_a_a_a_a_a_a_n_n_n_n_n]
mov edx, dword [esp + 0x18]
mov dword [ebp + 0x58], edi
xor ecx, ecx
xor edi, edi
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x2298]
mov dword [esp], edx
mov edx, dword [esp + 0x14]
call fcn.10010330
mov ebx, dword [ebp + 0x58]
movzx ecx, word [ebp + 0x1f9a]
mov eax, ebx
mov edx, ecx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
mov esi, eax
mov eax, ecx
add esi, dword [ebp + 0x60]
adc edi, dword [ebp + 0x64]
shr eax, 5
mov dword [ebp + 0x60], esi
sub edx, eax
mov dword [ebp + 0x64], edi
mov word [ebp + 0x1f9a], dx
cmp ebx, 0xffffff
jbe 0x1000fab0
movzx ecx, word [ebp + 0x1f9e]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
add esi, eax
movzx eax, word [ebp + 0x1f9e]
adc edi, edx
shr ecx, 5
mov dword [ebp + 0x60], esi
sub eax, ecx
mov dword [ebp + 0x64], edi
mov word [ebp + 0x1f9e], ax
cmp ebx, 0xffffff
jbe 0x1000fa90
movzx ecx, word [ebp + 0x1fa6]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
add esi, eax
movzx eax, word [ebp + 0x1fa6]
adc edi, edx
shr ecx, 5
mov dword [ebp + 0x60], esi
sub eax, ecx
mov dword [ebp + 0x64], edi
mov word [ebp + 0x1fa6], ax
cmp ebx, 0xffffff
jbe 0x1000fa70
movzx ecx, word [ebp + 0x1fb6]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
add esi, eax
movzx eax, word [ebp + 0x1fb6]
adc edi, edx
shr ecx, 5
mov dword [ebp + 0x60], esi
sub eax, ecx
mov dword [ebp + 0x64], edi
mov word [ebp + 0x1fb6], ax
cmp ebx, 0xffffff
jbe 0x1000fa50
movzx ecx, word [ebp + 0x1fd6]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
add esi, eax
movzx eax, word [ebp + 0x1fd6]
adc edi, edx
shr ecx, 5
mov dword [ebp + 0x60], esi
sub eax, ecx
mov dword [ebp + 0x64], edi
mov word [ebp + 0x1fd6], ax
cmp ebx, 0xffffff
jbe 0x1000fa30
movzx ecx, word [ebp + 0x2016]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, ecx
sub ebx, eax
add eax, esi
movzx esi, word [ebp + 0x2016]
adc edx, edi
shr ecx, 5
mov dword [ebp + 0x60], eax
sub esi, ecx
mov dword [ebp + 0x64], edx
mov word [ebp + 0x2016], si
cmp ebx, 0xffffff
jbe 0x1000fa10
mov ecx, 0x1a
mov edi, ebp
mov ebp, ecx
mov ecx, edi
jmp 0x1000f895
sub ebp, 1
je 0x1000f8ca
shr ebx, 1
xor edi, edi
add eax, ebx
adc edx, edi
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edx
cmp ebx, 0xffffff
ja 0x1000f890
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
shl ebx, 8
call fcn.10012d00
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x60]
mov edx, dword [ecx + 0x64]
sub ebp, 1
jne 0x1000f895
movzx edi, word [ecx + 0x1c1a]
mov ebp, ecx
mov ecx, ebx
mov esi, ebx
shr ecx, 0xb
xor ebx, ebx
imul ecx, edi
sub esi, ecx
add ecx, eax
movzx eax, word [ebp + 0x1c1a]
adc ebx, edx
shr edi, 5
mov dword [ebp + 0x60], ecx
sub eax, edi
mov dword [ebp + 0x64], ebx
mov word [ebp + 0x1c1a], ax
cmp esi, 0xffffff
jbe 0x1000f9f8
movzx edi, word [ebp + 0x1c1e]
mov eax, esi
xor edx, edx
shr eax, 0xb
imul eax, edi
mov ecx, edi
sub esi, eax
add dword [ebp + 0x60], eax
adc dword [ebp + 0x64], edx
shr edi, 5
mov ebx, esi
sub ecx, edi
mov word [ebp + 0x1c1e], cx
cmp esi, 0xffffff
jbe 0x1000f9e0
movzx esi, word [ebp + 0x1c26]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, esi
mov ecx, esi
sub ebx, eax
add dword [ebp + 0x60], eax
adc dword [ebp + 0x64], edx
shr esi, 5
sub ecx, esi
mov word [ebp + 0x1c26], cx
cmp ebx, 0xffffff
jbe 0x1000f9d0
movzx esi, word [ebp + 0x1c36]
mov eax, ebx
xor edx, edx
shr eax, 0xb
imul eax, esi
mov ecx, esi
sub ebx, eax
add dword [ebp + 0x60], eax
adc dword [ebp + 0x64], edx
shr esi, 5
sub ecx, esi
mov word [ebp + 0x1c36], cx
cmp ebx, 0xffffff
jbe 0x1000f9c0
mov dword [ebp + 0x58], ebx
jmp 0x1000f5e5
mov eax, dword [esp + 0x14]
shl edi, 8
call fcn.10012d00
mov esi, dword [ebp + 0x2c]
jmp 0x1000f6be
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
jmp 0x1000f99d
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
jmp 0x1000f96e
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
jmp 0x1000f93f
mov eax, dword [esp + 0x14]
shl esi, 8
call fcn.10012d00
jmp 0x1000f90a
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x64]
jmp 0x1000f87f
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
jmp 0x1000f843
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
jmp 0x1000f807
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
jmp 0x1000f7cb
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
jmp 0x1000f78f
mov eax, dword [esp + 0x14]
shl ebx, 8
call fcn.10012d00
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
jmp 0x1000f753
mov eax, dword [esp + 0x14]
shl edi, 8
call fcn.10012d00
mov esi, dword [ebp + 0x2c]
jmp 0x1000f6ee
mov eax, 9
jmp 0x1000f640