Function at 0x4a9620
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x658
mov eax, dword [0x6b66bc]
xor eax, esp
mov dword [esp + 0x654], eax
push ebx
push ebp
mov ebp, dword [esp + 0x66c]
push esi
mov esi, dword [esp + 0x668]
push edi
mov edi, dword [esp + 0x670]
mov dword [esp + 0x21c], ebp
cmp edi, 6
jne 0x4a9741
xorps xmm0, xmm0
push esi
movups xmmword [esp + 0x658], xmm0
call fcn.00491610
add esp, 4
cmp eax, 0x10
jne 0x4a98dc
mov dword [esp + 0x1dc], 0
mov edi, dword [esi + 4]
mov esi, dword [esi]
mov dword [esp + 0xe4], edi
mov dword [esp + 0x1e0], edi
test edi, edi
jne 0x4a96a5
mov dword [esp + 0x1e4], edi
jmp 0x4a96c8
push 0
push edi
lea ecx, [esp + 0x1e4]
call fcn.0040cd80
lea eax, [edi + edi]
push eax
push esi
push dword [esp + 0x1e4]
call fcn.005f7171
add esp, 0xc
push 0x2b
push 0x2d
lea ecx, [esp + 0x1e4]
call fcn.004121f0
push 0x2f
push 0x5f
lea ecx, [esp + 0x1e4]
call fcn.004121f0
mov eax, dword [esp + 0x1e0]
test eax, eax
je 0x4a96fd
mov ecx, dword [esp + 0x1dc]
dec eax
jmp 0x4a9704
xor eax, eax
mov ecx, 0x60f5ec
lea edx, [esp + 0x654]
push edx
push eax
push ecx
call fcn.00484d00
add esp, 0xc
test al, al
jne 0x4a971e
xor bl, bl
jmp 0x4a972c
movups xmm0, xmmword [esp + 0x654]
mov bl, 1
movups xmmword [ebp], xmm0
mov ecx, dword [esp + 0x1dc]
test ecx, ecx
je 0x4adcbb
push ecx
jmp 0x4adcb3
cmp edi, 7
jne 0x4a9916
cmp dword [esi + 4], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x45c], xmm0
movlpd qword [esp + 0x464], xmm0
je 0x4a98e3
mov eax, dword [esi]
xor esi, esi
mov dword [esp + 0x30], eax
movzx ebx, word [eax]
movlpd qword [esp + 0xe4], xmm0
test bx, bx
je 0x4a98ee
movlpd qword [esp + 0xe4], xmm0
mov ecx, 0x24
mov edi, dword [esp + 0xe8]
nop dword [eax + eax]
mov eax, dword [esp + 0x464]
xor esi, esi
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, dword [esp + 0x468]
mov edx, 0x24
mul edx
add ebp, eax
adc esi, edx
xor eax, eax
or eax, ecx
mov edx, 0x24
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, dword [esp + 0x45c]
mul edx
add esi, eax
mov eax, edi
adc ecx, edx
mov edx, 0x24
mul edx
mov dword [esp + 0x24], ecx
add dword [esp + 0x24], eax
xor eax, eax
or eax, esi
mov dword [esp + 0x2c], eax
lea eax, [ebx - 0x30]
cmp ax, 9
ja 0x4a984f
mov esi, dword [esp + 0x28]
xor ecx, ecx
movzx eax, bx
sub eax, 0x30
add esi, eax
adc ecx, ecx
xor edx, edx
add ebp, ecx
mov dword [esp + 0x628], ebp
adc edx, edx
xor eax, eax
or eax, esi
xor edi, edi
add edx, dword [esp + 0x2c]
mov dword [esp + 0x624], eax
adc edi, edi
xor esi, esi
add edi, dword [esp + 0x24]
or esi, edx
mov dword [esp + 0x61c], esi
mov dword [esp + 0x620], edi
movups xmm0, xmmword [esp + 0x61c]
jmp 0x4a98a8
lea eax, [ebx - 0x41]
cmp ax, 0x19
ja 0x4a98dc
xor eax, eax
movzx ecx, bx
sub ecx, 0x37
add ecx, dword [esp + 0x28]
adc eax, eax
xor edx, edx
add ebp, eax
mov dword [esp + 0x638], ebp
adc edx, edx
xor eax, eax
or eax, ecx
xor edi, edi
add edx, dword [esp + 0x2c]
mov dword [esp + 0x634], eax
adc edi, edi
xor esi, esi
add edi, dword [esp + 0x24]
or esi, edx
mov dword [esp + 0x62c], esi
mov dword [esp + 0x630], edi
movups xmm0, xmmword [esp + 0x62c]
mov eax, dword [esp + 0x30]
mov ecx, 0x24
add eax, 2
mov dword [esp + 0x30], eax
movups xmmword [esp + 0x45c], xmm0
movzx ebx, word [eax]
mov dword [esp + 0xe4], esi
test bx, bx
jne 0x4a97a0
mov ebp, dword [esp + 0x21c]
jmp 0x4a98f5
xor al, al
jmp 0x4adcbd
xor esi, esi
movlpd qword [esp + 0xe4], xmm0
mov edi, dword [esp + 0xe8]
mov eax, dword [esp + 0x468]
mov ecx, dword [esp + 0x464]
mov dword [ebp], edi
mov dword [ebp + 4], esi
mov dword [ebp + 8], eax
mov al, 1
mov dword [ebp + 0xc], ecx
jmp 0x4adcbd
push 0x20
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
call fcn.0040ce40
mov ebp, 0x60f5ec
test edi, edi
jne 0x4a9951
push esi
lea ecx, [esp + 0x1c]
call fcn.00417ed0
jmp 0x4ad675
cmp edi, 1
jne 0x4aa1c0
mov edx, 8
mov dword [esp + 0x30], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4a999b
lea eax, [esp + 0x30]
mov dword [esp + 0x2c0], esi
mov dword [esp + 0x2bc], eax
lea eax, [esp + 0x2bc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
mov ebx, dword [esi]
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0xd
mov dword [esp + 0x2c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4a99eb
lea eax, [esp + 0x2c]
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], eax
lea eax, [esp + 0x50c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x12
mov dword [esp + 0x28], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4a9a39
lea eax, [esp + 0x28]
mov dword [esp + 0x508], esi
mov dword [esp + 0x504], eax
lea eax, [esp + 0x504]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x17
mov dword [esp + 0x24], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4a9a87
lea eax, [esp + 0x24]
mov dword [esp + 0x500], esi
mov dword [esp + 0x4fc], eax
lea eax, [esp + 0x4fc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov dword [esp + 0x2d0], 0
mov edx, 0
mov dword [esp + 0x2d4], 0
mov ebp, dword [esi + 4]
mov eax, ebp
neg eax
sbb eax, eax
lea ecx, [ebp - 1]
and eax, ecx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 8
jle 0x4a9acc
mov edi, ecx
jmp 0x4a9aea
test edx, edx
jl 0x4a9ae6
jg 0x4a9ad7
cmp edi, 8
jbe 0x4a9ae6
mov edi, 8
mov dword [esp + 0x14], 0
jmp 0x4a9aea
mov dword [esp + 0x14], edx
test ebp, ebp
mov dword [esp + 0xd0], 0
mov eax, 0x60f5ec
mov dword [esp + 0xd4], 0
cmovne eax, ebx
mov dword [esp + 0xd8], 0
sub edi, ecx
lea ebx, [eax + ecx*2]
test ebx, ebx
je 0x4a9ba2
test edi, edi
jle 0x4a9ba2
cmp word [ebx], 0
je 0x4a9ba2
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xd4]
call fcn.0040ce40
mov ecx, dword [esp + 0xd4]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xd4], eax
cmp eax, dword [esp + 0xd8]
jle 0x4a9b65
push ecx
lea ecx, [esp + 0xd4]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0xd8]
call fcn.004263f0
mov eax, dword [esp + 0xdc]
xor edx, edx
mov ecx, dword [esp + 0xe0]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x2d0]
test eax, eax
je 0x4a9ba2
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x2d8], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x2d0], edx
mov dword [esp + 0xd0], 0
sbb ecx, ecx
mov dword [esp + 0xd4], 0
and ecx, eax
mov dword [esp + 0xd8], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x2d0]
test eax, eax
je 0x4a9c15
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x2dc], 0
mov edx, 9
mov dword [esp + 0x2e0], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0xd
jle 0x4a9c51
mov edi, ecx
jmp 0x4a9c6f
test edx, edx
jl 0x4a9c6b
jg 0x4a9c5c
cmp edi, 0xd
jbe 0x4a9c6b
mov edi, 0xd
mov dword [esp + 0x14], 0
jmp 0x4a9c6f
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4a9c77
mov eax, dword [esi]
jmp 0x4a9c7c
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x4c], 0
sub edi, ecx
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
test ebx, ebx
je 0x4a9d05
test edi, edi
jle 0x4a9d05
cmp word [ebx], 0
je 0x4a9d05
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x50]
call fcn.0040ce40
mov ecx, dword [esp + 0x50]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x54]
jle 0x4a9cd1
push ecx
lea ecx, [esp + 0x50]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x54]
call fcn.004263f0
mov eax, dword [esp + 0x58]
xor edx, edx
mov ecx, dword [esp + 0x5c]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x2dc]
test eax, eax
je 0x4a9d05
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x2e4], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x4c], 0
sbb ecx, ecx
mov dword [esp + 0x50], 0
and ecx, eax
mov dword [esp + 0x54], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x2dc]
test eax, eax
je 0x4a9d66
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x2e8], 0
mov edx, 0xe
mov dword [esp + 0x2ec], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x12
jle 0x4a9da2
mov edi, ecx
jmp 0x4a9dc0
test edx, edx
jl 0x4a9dbc
jg 0x4a9dad
cmp edi, 0x12
jbe 0x4a9dbc
mov edi, 0x12
mov dword [esp + 0x14], 0
jmp 0x4a9dc0
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4a9dc8
mov eax, dword [esi]
jmp 0x4a9dcd
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0xc4], 0
sub edi, ecx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
test ebx, ebx
je 0x4a9e7b
test edi, edi
jle 0x4a9e7b
cmp word [ebx], 0
je 0x4a9e7b
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xc8]
call fcn.0040ce40
mov ecx, dword [esp + 0xc8]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xc8], eax
cmp eax, dword [esp + 0xcc]
jle 0x4a9e3e
push ecx
lea ecx, [esp + 0xc8]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0xcc]
call fcn.004263f0
mov eax, dword [esp + 0xd0]
xor edx, edx
mov ecx, dword [esp + 0xd4]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x2e8]
test eax, eax
je 0x4a9e7b
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x2f0], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x2e8], edx
mov dword [esp + 0xc4], 0
sbb ecx, ecx
mov dword [esp + 0xc8], 0
and ecx, eax
mov dword [esp + 0xcc], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x2e8]
test eax, eax
je 0x4a9eee
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x2f4], 0
mov edx, 0x13
mov dword [esp + 0x2f8], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x17
jle 0x4a9f2a
mov edi, ecx
jmp 0x4a9f48
test edx, edx
jl 0x4a9f44
jg 0x4a9f35
cmp edi, 0x17
jbe 0x4a9f44
mov edi, 0x17
mov dword [esp + 0x14], 0
jmp 0x4a9f48
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4a9f50
mov eax, dword [esi]
jmp 0x4a9f55
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x40], 0
sub edi, ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
test ebx, ebx
je 0x4a9fde
test edi, edi
jle 0x4a9fde
cmp word [ebx], 0
je 0x4a9fde
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x44]
call fcn.0040ce40
mov ecx, dword [esp + 0x44]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x48]
jle 0x4a9faa
push ecx
lea ecx, [esp + 0x44]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x48]
call fcn.004263f0
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x2f4]
test eax, eax
je 0x4a9fde
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x2fc], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x40], 0
sbb ecx, ecx
mov dword [esp + 0x44], 0
and ecx, eax
mov dword [esp + 0x48], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x2f4]
test eax, eax
je 0x4aa03f
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x300], 0
mov edx, 0x18
mov dword [esp + 0x304], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, 0x18
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x24
jle 0x4aa07c
mov edi, ecx
jmp 0x4aa09a
test edx, edx
jl 0x4aa096
jg 0x4aa087
cmp edi, 0x24
jbe 0x4aa096
mov edi, 0x24
mov dword [esp + 0x14], 0
jmp 0x4aa09a
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aa0a2
mov eax, dword [esi]
jmp 0x4aa0a7
mov eax, 0x60f5ec
lea esi, [eax + ecx*2]
mov dword [esp + 0xb8], 0
sub edi, ecx
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
test esi, esi
je 0x4aa155
test edi, edi
jle 0x4aa155
cmp word [esi], 0
je 0x4aa155
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xbc]
call fcn.0040ce40
mov ecx, dword [esp + 0xbc]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xbc], eax
cmp eax, dword [esp + 0xc0]
jle 0x4aa118
push ecx
lea ecx, [esp + 0xbc]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push esi
push dword [esp + 0xc0]
call fcn.004263f0
mov eax, dword [esp + 0xc4]
xor edx, edx
mov ecx, dword [esp + 0xc8]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x300]
test eax, eax
je 0x4aa155
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x304], ecx
mov dword [esp + 0x308], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x300], edx
mov dword [esp + 0xb8], 0
sbb ecx, ecx
mov dword [esp + 0xbc], 0
and ecx, eax
mov dword [esp + 0xc0], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x300]
jmp 0x4ad663
cmp edi, 2
jne 0x4aab62
xor edx, edx
mov dword [esp + 0x220], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
test eax, ecx
jg 0x4aa20e
lea eax, [esp + 0x220]
mov dword [esp + 0x4f8], esi
mov dword [esp + 0x4f4], eax
lea eax, [esp + 0x4f4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
mov edi, dword [esi]
cmp word [edi + edx*2], 0x7b
jne 0x4ad6f4
mov edx, 9
mov dword [esp + 0x224], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aa267
lea eax, [esp + 0x224]
mov dword [esp + 0x4f0], esi
mov dword [esp + 0x4ec], eax
lea eax, [esp + 0x4ec]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0xe
mov dword [esp + 0x22c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aa2be
lea eax, [esp + 0x22c]
mov dword [esp + 0x4e8], esi
mov dword [esp + 0x4e4], eax
lea eax, [esp + 0x4e4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x13
mov dword [esp + 0x230], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aa315
lea eax, [esp + 0x230]
mov dword [esp + 0x4e0], esi
mov dword [esp + 0x4dc], eax
lea eax, [esp + 0x4dc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x18
mov dword [esp + 0x234], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aa36c
lea eax, [esp + 0x234]
mov dword [esp + 0x4d8], esi
mov dword [esp + 0x4d4], eax
lea eax, [esp + 0x4d4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x25
mov dword [esp + 0x238], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aa3c3
lea eax, [esp + 0x238]
mov dword [esp + 0x4d0], esi
mov dword [esp + 0x4cc], eax
lea eax, [esp + 0x4cc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x7d
jne 0x4ad6f4
mov dword [esp + 0x30c], 0
mov edx, 1
mov dword [esp + 0x310], 0
mov ebp, dword [esi + 4]
mov eax, ebp
neg eax
sbb eax, eax
lea ecx, [ebp - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov ebx, eax
cmp ecx, 9
jle 0x4aa40a
mov ebx, ecx
jmp 0x4aa428
test edx, edx
jl 0x4aa424
jg 0x4aa415
cmp ebx, 9
jbe 0x4aa424
mov ebx, 9
mov dword [esp + 0x14], 0
jmp 0x4aa428
mov dword [esp + 0x14], edx
test ebp, ebp
mov dword [esp + 0xac], 0
mov eax, 0x60f5ec
mov dword [esp + 0xb0], 0
cmovne eax, edi
mov dword [esp + 0xb4], 0
sub ebx, ecx
lea edi, [eax + ecx*2]
test edi, edi
je 0x4aa4e0
test ebx, ebx
jle 0x4aa4e0
cmp word [edi], 0
je 0x4aa4e0
lea eax, [ebx + 1]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040ce40
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + 1]
add eax, ebx
mov dword [esp + 0xb0], eax
cmp eax, dword [esp + 0xb4]
jle 0x4aa4a3
push ecx
lea ecx, [esp + 0xb0]
call fcn.0040cde0
lea eax, [ebx + ebx]
push eax
push edi
push dword [esp + 0xb4]
call fcn.004263f0
mov eax, dword [esp + 0xb8]
xor edx, edx
mov ecx, dword [esp + 0xbc]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x30c]
test eax, eax
je 0x4aa4e0
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
mov dword [esp + 0x310], ecx
mov dword [esp + 0x314], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x30c], edx
mov dword [esp + 0xac], 0
sbb ecx, ecx
mov dword [esp + 0xb0], 0
and ecx, eax
mov dword [esp + 0xb4], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x30c]
test eax, eax
je 0x4aa553
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x318], 0
mov edx, 0xa
mov dword [esp + 0x31c], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0xe
jle 0x4aa58f
mov edi, ecx
jmp 0x4aa5ad
test edx, edx
jl 0x4aa5a9
jg 0x4aa59a
cmp edi, 0xe
jbe 0x4aa5a9
mov edi, 0xe
mov dword [esp + 0x14], 0
jmp 0x4aa5ad
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aa5b5
mov eax, dword [esi]
jmp 0x4aa5ba
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0xa0], 0
sub edi, ecx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
test ebx, ebx
je 0x4aa668
test edi, edi
jle 0x4aa668
cmp word [ebx], 0
je 0x4aa668
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xa4]
call fcn.0040ce40
mov ecx, dword [esp + 0xa4]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xa4], eax
cmp eax, dword [esp + 0xa8]
jle 0x4aa62b
push ecx
lea ecx, [esp + 0xa4]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0xa8]
call fcn.004263f0
mov eax, dword [esp + 0xac]
xor edx, edx
mov ecx, dword [esp + 0xb0]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x318]
test eax, eax
je 0x4aa668
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x320], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x318], edx
mov dword [esp + 0xa0], 0
sbb ecx, ecx
mov dword [esp + 0xa4], 0
and ecx, eax
mov dword [esp + 0xa8], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x318]
test eax, eax
je 0x4aa6db
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x324], 0
mov edx, 0xf
mov dword [esp + 0x328], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x13
jle 0x4aa717
mov edi, ecx
jmp 0x4aa735
test edx, edx
jl 0x4aa731
jg 0x4aa722
cmp edi, 0x13
jbe 0x4aa731
mov edi, 0x13
mov dword [esp + 0x14], 0
jmp 0x4aa735
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aa73d
mov eax, dword [esi]
jmp 0x4aa742
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x94], 0
sub edi, ecx
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
test ebx, ebx
je 0x4aa7f0
test edi, edi
jle 0x4aa7f0
cmp word [ebx], 0
je 0x4aa7f0
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x98]
call fcn.0040ce40
mov ecx, dword [esp + 0x98]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x98], eax
cmp eax, dword [esp + 0x9c]
jle 0x4aa7b3
push ecx
lea ecx, [esp + 0x98]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x9c]
call fcn.004263f0
mov eax, dword [esp + 0xa0]
xor edx, edx
mov ecx, dword [esp + 0xa4]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x324]
test eax, eax
je 0x4aa7f0
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x328], ecx
mov dword [esp + 0x32c], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x324], edx
mov dword [esp + 0x94], 0
sbb ecx, ecx
mov dword [esp + 0x98], 0
and ecx, eax
mov dword [esp + 0x9c], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x324]
test eax, eax
je 0x4aa863
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x330], 0
mov edx, 0x14
mov dword [esp + 0x334], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x18
jle 0x4aa89f
mov edi, ecx
jmp 0x4aa8bd
test edx, edx
jl 0x4aa8b9
jg 0x4aa8aa
cmp edi, 0x18
jbe 0x4aa8b9
mov edi, 0x18
mov dword [esp + 0x14], 0
jmp 0x4aa8bd
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aa8c5
mov eax, dword [esi]
jmp 0x4aa8ca
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x88], 0
sub edi, ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
test ebx, ebx
je 0x4aa978
test edi, edi
jle 0x4aa978
cmp word [ebx], 0
je 0x4aa978
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x8c]
call fcn.0040ce40
mov ecx, dword [esp + 0x8c]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x8c], eax
cmp eax, dword [esp + 0x90]
jle 0x4aa93b
push ecx
lea ecx, [esp + 0x8c]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x90]
call fcn.004263f0
mov eax, dword [esp + 0x94]
xor edx, edx
mov ecx, dword [esp + 0x98]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x330]
test eax, eax
je 0x4aa978
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x334], ecx
mov dword [esp + 0x338], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x330], edx
mov dword [esp + 0x88], 0
sbb ecx, ecx
mov dword [esp + 0x8c], 0
and ecx, eax
mov dword [esp + 0x90], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x330]
test eax, eax
je 0x4aa9eb
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x33c], 0
mov edx, 0x19
mov dword [esp + 0x340], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x25
jle 0x4aaa27
mov edi, ecx
jmp 0x4aaa45
test edx, edx
jl 0x4aaa41
jg 0x4aaa32
cmp edi, 0x25
jbe 0x4aaa41
mov edi, 0x25
mov dword [esp + 0x14], 0
jmp 0x4aaa45
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aaa4d
mov eax, dword [esi]
jmp 0x4aaa52
mov eax, 0x60f5ec
lea esi, [eax + ecx*2]
mov dword [esp + 0x7c], 0
sub edi, ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
test esi, esi
je 0x4aaafd
test edi, edi
jle 0x4aaafd
cmp word [esi], 0
je 0x4aaafd
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x80]
call fcn.0040ce40
mov ecx, dword [esp + 0x80]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x84]
jle 0x4aaac0
push ecx
lea ecx, [esp + 0x80]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push esi
push dword [esp + 0x84]
call fcn.004263f0
mov eax, dword [esp + 0x88]
xor edx, edx
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x33c]
test eax, eax
je 0x4aaafd
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x340], ecx
mov dword [esp + 0x344], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x33c], edx
mov dword [esp + 0x7c], 0
sbb ecx, ecx
mov dword [esp + 0x80], 0
and ecx, eax
mov dword [esp + 0x84], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x33c]
jmp 0x4ad663
cmp edi, 3
jne 0x4ab42c
xor edx, edx
mov dword [esp + 0x23c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
test eax, ecx
jg 0x4aabb0
lea eax, [esp + 0x23c]
mov dword [esp + 0x4c8], esi
mov dword [esp + 0x4c4], eax
lea eax, [esp + 0x4c4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
mov edi, dword [esi]
cmp word [edi + edx*2], 0x28
jne 0x4ad6f4
mov edx, 9
mov dword [esp + 0x240], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aac09
lea eax, [esp + 0x240]
mov dword [esp + 0x4c0], esi
mov dword [esp + 0x4bc], eax
lea eax, [esp + 0x4bc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0xe
mov dword [esp + 0x1fc], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aac60
lea eax, [esp + 0x1fc]
mov dword [esp + 0x4b8], esi
mov dword [esp + 0x4b4], eax
lea eax, [esp + 0x4b4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x13
mov dword [esp + 0x244], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aacb7
lea eax, [esp + 0x244]
mov dword [esp + 0x588], esi
mov dword [esp + 0x584], eax
lea eax, [esp + 0x584]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x18
mov dword [esp + 0x248], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aad0e
lea eax, [esp + 0x248]
mov dword [esp + 0x4b0], esi
mov dword [esp + 0x4ac], eax
lea eax, [esp + 0x4ac]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x25
mov dword [esp + 0x24c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aad65
lea eax, [esp + 0x24c]
mov dword [esp + 0x4a8], esi
mov dword [esp + 0x4a4], eax
lea eax, [esp + 0x4a4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x29
jne 0x4ad6f4
mov dword [esp + 0x348], 0
mov edx, 1
mov dword [esp + 0x34c], 0
mov ebp, dword [esi + 4]
mov eax, ebp
neg eax
sbb eax, eax
lea ecx, [ebp - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov ebx, eax
cmp ecx, 9
jle 0x4aadac
mov ebx, ecx
jmp 0x4aadca
test edx, edx
jl 0x4aadc6
jg 0x4aadb7
cmp ebx, 9
jbe 0x4aadc6
mov ebx, 9
mov dword [esp + 0x14], 0
jmp 0x4aadca
mov dword [esp + 0x14], edx
test ebp, ebp
mov dword [esp + 0x34], 0
mov eax, 0x60f5ec
mov dword [esp + 0x38], 0
cmovne eax, edi
mov dword [esp + 0x3c], 0
sub ebx, ecx
lea edi, [eax + ecx*2]
test edi, edi
je 0x4aae5d
test ebx, ebx
jle 0x4aae5d
cmp word [edi], 0
je 0x4aae5d
lea eax, [ebx + 1]
push eax
lea ecx, [esp + 0x38]
call fcn.0040ce40
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 1]
add eax, ebx
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x3c]
jle 0x4aae29
push ecx
lea ecx, [esp + 0x38]
call fcn.0040cde0
lea eax, [ebx + ebx]
push eax
push edi
push dword [esp + 0x3c]
call fcn.004263f0
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x348]
test eax, eax
je 0x4aae5d
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x350], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x348], edx
mov dword [esp + 0x34], 0
sbb ecx, ecx
mov dword [esp + 0x38], 0
and ecx, eax
mov dword [esp + 0x3c], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x348]
test eax, eax
je 0x4aaebe
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x354], 0
mov edx, 0xa
mov dword [esp + 0x358], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0xe
jle 0x4aaefa
mov edi, ecx
jmp 0x4aaf18
test edx, edx
jl 0x4aaf14
jg 0x4aaf05
cmp edi, 0xe
jbe 0x4aaf14
mov edi, 0xe
mov dword [esp + 0x14], 0
jmp 0x4aaf18
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4aaf20
mov eax, dword [esi]
jmp 0x4aaf25
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x70], 0
sub edi, ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test ebx, ebx
je 0x4aafb1
test edi, edi
jle 0x4aafb1
cmp word [ebx], 0
je 0x4aafb1
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x74]
call fcn.0040ce40
mov ecx, dword [esp + 0x74]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x74], eax
cmp eax, dword [esp + 0x78]
jle 0x4aaf7a
push ecx
lea ecx, [esp + 0x74]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x78]
call fcn.004263f0
mov eax, dword [esp + 0x7c]
xor edx, edx
mov ecx, dword [esp + 0x80]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x354]
test eax, eax
je 0x4aafb1
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x358], ecx
mov dword [esp + 0x35c], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x354], edx
mov dword [esp + 0x70], 0
sbb ecx, ecx
mov dword [esp + 0x74], 0
and ecx, eax
mov dword [esp + 0x78], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x354]
test eax, eax
je 0x4ab012
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x360], 0
mov edx, 0xf
mov dword [esp + 0x364], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x13
jle 0x4ab04e
mov edi, ecx
jmp 0x4ab06c
test edx, edx
jl 0x4ab068
jg 0x4ab059
cmp edi, 0x13
jbe 0x4ab068
mov edi, 0x13
mov dword [esp + 0x14], 0
jmp 0x4ab06c
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ab074
mov eax, dword [esi]
jmp 0x4ab079
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x64], 0
sub edi, ecx
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
test ebx, ebx
je 0x4ab102
test edi, edi
jle 0x4ab102
cmp word [ebx], 0
je 0x4ab102
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x68]
call fcn.0040ce40
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x68], eax
cmp eax, dword [esp + 0x6c]
jle 0x4ab0ce
push ecx
lea ecx, [esp + 0x68]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x6c]
call fcn.004263f0
mov eax, dword [esp + 0x70]
xor edx, edx
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x360]
test eax, eax
je 0x4ab102
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x364], ecx
mov dword [esp + 0x368], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x360], edx
mov dword [esp + 0x64], 0
sbb ecx, ecx
mov dword [esp + 0x68], 0
and ecx, eax
mov dword [esp + 0x6c], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x360]
test eax, eax
je 0x4ab163
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x2c4], 0
mov edx, 0x14
mov dword [esp + 0x2c8], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x18
jle 0x4ab19f
mov edi, ecx
jmp 0x4ab1bd
test edx, edx
jl 0x4ab1b9
jg 0x4ab1aa
cmp edi, 0x18
jbe 0x4ab1b9
mov edi, 0x18
mov dword [esp + 0x14], 0
jmp 0x4ab1bd
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ab1c5
mov eax, dword [esi]
jmp 0x4ab1ca
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x58], 0
sub edi, ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
test ebx, ebx
je 0x4ab253
test edi, edi
jle 0x4ab253
cmp word [ebx], 0
je 0x4ab253
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x5c]
call fcn.0040ce40
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x60]
jle 0x4ab21f
push ecx
lea ecx, [esp + 0x5c]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x60]
call fcn.004263f0
mov eax, dword [esp + 0x64]
xor edx, edx
mov ecx, dword [esp + 0x68]
add esp, 0xc
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esp + 0x2c4]
test eax, eax
je 0x4ab253
push eax
call fcn.0043f8f0
add esp, 4
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2cc], eax
lea eax, [ecx - 1]
neg ecx
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x58], 0
sbb ecx, ecx
mov dword [esp + 0x5c], 0
and ecx, eax
mov dword [esp + 0x60], 0
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x2c4]
test eax, eax
je 0x4ab2b4
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x36c], 0
mov edx, 0x19
mov dword [esp + 0x370], 0
mov dword [esp + 0x374], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x25
jle 0x4ab2fb
mov edi, ecx
jmp 0x4ab319
test edx, edx
jl 0x4ab315
jg 0x4ab306
cmp edi, 0x25
jbe 0x4ab315
mov edi, 0x25
mov dword [esp + 0x14], 0
jmp 0x4ab319
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ab321
mov eax, dword [esi]
jmp 0x4ab326
mov eax, 0x60f5ec
lea esi, [eax + ecx*2]
mov dword [esp + 0x128], 0
sub edi, ecx
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
test esi, esi
je 0x4ab3bc
test edi, edi
jle 0x4ab3bc
cmp word [esi], 0
je 0x4ab3bc
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x12c]
call fcn.0040ce40
mov ecx, dword [esp + 0x12c]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x12c], eax
cmp eax, dword [esp + 0x130]
jle 0x4ab393
push ecx
lea ecx, [esp + 0x12c]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push esi
push dword [esp + 0x130]
call fcn.004263f0
mov ecx, dword [esp + 0x138]
add esp, 0xc
mov eax, dword [esp + 0x128]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x370]
call fcn.00417730
mov eax, dword [esp + 0x128]
test eax, eax
je 0x4ab3e4
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x370]
test eax, eax
je 0x4ab40d
dec eax
lea ecx, [esp + 0x18]
push eax
push dword [esp + 0x370]
call fcn.0040edd0
mov eax, dword [esp + 0x36c]
jmp 0x4ad663
xor eax, eax
lea ecx, [esp + 0x18]
push eax
push dword [esp + 0x370]
call fcn.0040edd0
mov eax, dword [esp + 0x36c]
jmp 0x4ad663
cmp edi, 4
jne 0x4acfd3
xor edx, edx
mov dword [esp + 0x250], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
test eax, ecx
jg 0x4ab47a
lea eax, [esp + 0x250]
mov dword [esp + 0x4a0], esi
mov dword [esp + 0x49c], eax
lea eax, [esp + 0x49c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
mov edi, dword [esi]
cmp word [edi + edx*2], 0x7b
jne 0x4ad6f4
mov edx, 1
mov dword [esp + 0x254], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab4d3
lea eax, [esp + 0x254]
mov dword [esp + 0x498], esi
mov dword [esp + 0x494], eax
lea eax, [esp + 0x494]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 2
mov dword [esp + 0x258], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab52a
lea eax, [esp + 0x258]
mov dword [esp + 0x490], esi
mov dword [esp + 0x48c], eax
lea eax, [esp + 0x48c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0xb
mov dword [esp + 0x25c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab581
lea eax, [esp + 0x25c]
mov dword [esp + 0x488], esi
mov dword [esp + 0x484], eax
lea eax, [esp + 0x484]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0xc
mov dword [esp + 0x260], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab5d8
lea eax, [esp + 0x260]
mov dword [esp + 0x480], esi
mov dword [esp + 0x47c], eax
lea eax, [esp + 0x47c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0xd
mov dword [esp + 0x264], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab62f
lea eax, [esp + 0x264]
mov dword [esp + 0x478], esi
mov dword [esp + 0x474], eax
lea eax, [esp + 0x474]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x12
mov dword [esp + 0x268], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab686
lea eax, [esp + 0x268]
mov dword [esp + 0x470], esi
mov dword [esp + 0x46c], eax
lea eax, [esp + 0x46c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x13
mov dword [esp + 0x26c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab6dd
lea eax, [esp + 0x26c]
mov dword [esp + 0x618], esi
mov dword [esp + 0x614], eax
lea eax, [esp + 0x614]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x14
mov dword [esp + 0x270], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab734
lea eax, [esp + 0x270]
mov dword [esp + 0x610], esi
mov dword [esp + 0x60c], eax
lea eax, [esp + 0x60c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x19
mov dword [esp + 0x274], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab78b
lea eax, [esp + 0x274]
mov dword [esp + 0x608], esi
mov dword [esp + 0x604], eax
lea eax, [esp + 0x604]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x1a
mov dword [esp + 0x278], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab7e2
lea eax, [esp + 0x278]
mov dword [esp + 0x600], esi
mov dword [esp + 0x5fc], eax
lea eax, [esp + 0x5fc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x7b
jne 0x4ad6f4
mov edx, 0x1b
mov dword [esp + 0x27c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab839
lea eax, [esp + 0x27c]
mov dword [esp + 0x5f8], esi
mov dword [esp + 0x5f4], eax
lea eax, [esp + 0x5f4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x1c
mov dword [esp + 0x280], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab890
lea eax, [esp + 0x280]
mov dword [esp + 0x5f0], esi
mov dword [esp + 0x5ec], eax
lea eax, [esp + 0x5ec]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x1f
mov dword [esp + 0x284], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab8e7
lea eax, [esp + 0x284]
mov dword [esp + 0x5e8], esi
mov dword [esp + 0x5e4], eax
lea eax, [esp + 0x5e4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x20
mov dword [esp + 0x28c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab93e
lea eax, [esp + 0x28c]
mov dword [esp + 0x5e0], esi
mov dword [esp + 0x5dc], eax
lea eax, [esp + 0x5dc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x21
mov dword [esp + 0x290], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab995
lea eax, [esp + 0x290]
mov dword [esp + 0x5d8], esi
mov dword [esp + 0x5d4], eax
lea eax, [esp + 0x5d4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x24
mov dword [esp + 0x294], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ab9ec
lea eax, [esp + 0x294]
mov dword [esp + 0x5d0], esi
mov dword [esp + 0x5cc], eax
lea eax, [esp + 0x5cc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x25
mov dword [esp + 0x298], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aba43
lea eax, [esp + 0x298]
mov dword [esp + 0x5c8], esi
mov dword [esp + 0x5c4], eax
lea eax, [esp + 0x5c4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x26
mov dword [esp + 0x29c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4aba9a
lea eax, [esp + 0x29c]
mov dword [esp + 0x5b8], esi
mov dword [esp + 0x5b4], eax
lea eax, [esp + 0x5b4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x29
mov dword [esp + 0x2a0], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abaf1
lea eax, [esp + 0x2a0]
mov dword [esp + 0x5b0], esi
mov dword [esp + 0x5ac], eax
lea eax, [esp + 0x5ac]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x2a
mov dword [esp + 0x288], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abb48
lea eax, [esp + 0x288]
mov dword [esp + 0x5a8], esi
mov dword [esp + 0x5a4], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x2b
mov dword [esp + 0x2a4], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abb9f
lea eax, [esp + 0x2a4]
mov dword [esp + 0x5c0], esi
mov dword [esp + 0x5bc], eax
lea eax, [esp + 0x5bc]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x2e
mov dword [esp + 0x2a8], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abbf6
lea eax, [esp + 0x2a8]
mov dword [esp + 0x518], esi
mov dword [esp + 0x514], eax
lea eax, [esp + 0x514]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x2f
mov dword [esp + 0x2ac], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abc4d
lea eax, [esp + 0x2ac]
mov dword [esp + 0x520], esi
mov dword [esp + 0x51c], eax
lea eax, [esp + 0x51c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x30
mov dword [esp + 0x2b0], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abca4
lea eax, [esp + 0x2b0]
mov dword [esp + 0x528], esi
mov dword [esp + 0x524], eax
lea eax, [esp + 0x524]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x33
mov dword [esp + 0x2b4], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abcfb
lea eax, [esp + 0x2b4]
mov dword [esp + 0x530], esi
mov dword [esp + 0x52c], eax
lea eax, [esp + 0x52c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x34
mov dword [esp + 0x2b8], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abd52
lea eax, [esp + 0x2b8]
mov dword [esp + 0x538], esi
mov dword [esp + 0x534], eax
lea eax, [esp + 0x534]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x35
mov dword [esp + 0x1e8], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abda9
lea eax, [esp + 0x1e8]
mov dword [esp + 0x540], esi
mov dword [esp + 0x53c], eax
lea eax, [esp + 0x53c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x38
mov dword [esp + 0x1ec], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abe00
lea eax, [esp + 0x1ec]
mov dword [esp + 0x548], esi
mov dword [esp + 0x544], eax
lea eax, [esp + 0x544]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x39
mov dword [esp + 0x1f0], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abe57
lea eax, [esp + 0x1f0]
mov dword [esp + 0x550], esi
mov dword [esp + 0x54c], eax
lea eax, [esp + 0x54c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x3a
mov dword [esp + 0x1f4], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abeae
lea eax, [esp + 0x1f4]
mov dword [esp + 0x558], esi
mov dword [esp + 0x554], eax
lea eax, [esp + 0x554]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x3d
mov dword [esp + 0x1f8], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abf05
lea eax, [esp + 0x1f8]
mov dword [esp + 0x560], esi
mov dword [esp + 0x55c], eax
lea eax, [esp + 0x55c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x2c
jne 0x4ad6f4
mov edx, 0x3e
mov dword [esp + 0x228], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abf5c
lea eax, [esp + 0x228]
mov dword [esp + 0x568], esi
mov dword [esp + 0x564], eax
lea eax, [esp + 0x564]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x30
jne 0x4ad6f4
mov edx, 0x3f
mov dword [esp + 0x200], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4abfb3
lea eax, [esp + 0x200]
mov dword [esp + 0x570], esi
mov dword [esp + 0x56c], eax
lea eax, [esp + 0x56c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x78
jne 0x4ad6f4
mov edx, 0x42
mov dword [esp + 0x204], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ac00a
lea eax, [esp + 0x204]
mov dword [esp + 0x578], esi
mov dword [esp + 0x574], eax
lea eax, [esp + 0x574]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x7d
jne 0x4ad6f4
mov edx, 0x43
mov dword [esp + 0x208], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ac061
lea eax, [esp + 0x208]
mov dword [esp + 0x580], esi
mov dword [esp + 0x57c], eax
lea eax, [esp + 0x57c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [edi + edx*2], 0x7d
jne 0x4ad6f4
mov dword [esp + 0x378], 0
mov edx, 3
mov dword [esp + 0x37c], 0
mov dword [esp + 0x380], 0
mov ebp, dword [esi + 4]
mov eax, ebp
neg eax
sbb eax, eax
lea ecx, [ebp - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov ebx, eax
cmp ecx, 0xb
jle 0x4ac0b3
mov ebx, ecx
jmp 0x4ac0d1
test edx, edx
jl 0x4ac0cd
jg 0x4ac0be
cmp ebx, 0xb
jbe 0x4ac0cd
mov ebx, 0xb
mov dword [esp + 0x14], 0
jmp 0x4ac0d1
mov dword [esp + 0x14], edx
test ebp, ebp
mov dword [esp + 0x11c], 0
mov eax, 0x60f5ec
mov dword [esp + 0x120], 0
cmovne eax, edi
mov dword [esp + 0x124], 0
sub ebx, ecx
lea edi, [eax + ecx*2]
test edi, edi
je 0x4ac171
test ebx, ebx
jle 0x4ac171
cmp word [edi], 0
je 0x4ac171
lea eax, [ebx + 1]
push eax
lea ecx, [esp + 0x120]
call fcn.0040ce40
mov ecx, dword [esp + 0x120]
lea eax, [ecx + 1]
add eax, ebx
mov dword [esp + 0x120], eax
cmp eax, dword [esp + 0x124]
jle 0x4ac148
push ecx
lea ecx, [esp + 0x120]
call fcn.0040cde0
lea eax, [ebx + ebx]
push eax
push edi
push dword [esp + 0x124]
call fcn.004263f0
mov ecx, dword [esp + 0x12c]
add esp, 0xc
mov eax, dword [esp + 0x11c]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0x37c]
call fcn.00417730
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x4ac199
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x37c]
test eax, eax
je 0x4ac1a7
dec eax
jmp 0x4ac1a9
xor eax, eax
push eax
push dword [esp + 0x37c]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x378]
test eax, eax
je 0x4ac1ce
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x384], 0
mov edx, 0xe
mov dword [esp + 0x388], 0
mov dword [esp + 0x38c], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x12
jle 0x4ac215
mov edi, ecx
jmp 0x4ac233
test edx, edx
jl 0x4ac22f
jg 0x4ac220
cmp edi, 0x12
jbe 0x4ac22f
mov edi, 0x12
mov dword [esp + 0x14], 0
jmp 0x4ac233
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac23b
mov eax, dword [esi]
jmp 0x4ac240
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x110], 0
sub edi, ecx
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
test ebx, ebx
je 0x4ac2d6
test edi, edi
jle 0x4ac2d6
cmp word [ebx], 0
je 0x4ac2d6
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x114]
call fcn.0040ce40
mov ecx, dword [esp + 0x114]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x114], eax
cmp eax, dword [esp + 0x118]
jle 0x4ac2ad
push ecx
lea ecx, [esp + 0x114]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x118]
call fcn.004263f0
mov ecx, dword [esp + 0x120]
add esp, 0xc
mov eax, dword [esp + 0x110]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x388]
call fcn.00417730
mov eax, dword [esp + 0x110]
test eax, eax
je 0x4ac2fe
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x388]
test eax, eax
je 0x4ac30c
dec eax
jmp 0x4ac30e
xor eax, eax
push eax
push dword [esp + 0x388]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x384]
test eax, eax
je 0x4ac333
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x390], 0
mov edx, 0x15
mov dword [esp + 0x394], 0
mov dword [esp + 0x398], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x19
jle 0x4ac37a
mov edi, ecx
jmp 0x4ac398
test edx, edx
jl 0x4ac394
jg 0x4ac385
cmp edi, 0x19
jbe 0x4ac394
mov edi, 0x19
mov dword [esp + 0x14], 0
jmp 0x4ac398
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac3a0
mov eax, dword [esi]
jmp 0x4ac3a5
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x104], 0
sub edi, ecx
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
test ebx, ebx
je 0x4ac43b
test edi, edi
jle 0x4ac43b
cmp word [ebx], 0
je 0x4ac43b
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x108]
call fcn.0040ce40
mov ecx, dword [esp + 0x108]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x108], eax
cmp eax, dword [esp + 0x10c]
jle 0x4ac412
push ecx
lea ecx, [esp + 0x108]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x10c]
call fcn.004263f0
mov ecx, dword [esp + 0x114]
add esp, 0xc
mov eax, dword [esp + 0x104]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0x394]
call fcn.00417730
mov eax, dword [esp + 0x104]
test eax, eax
je 0x4ac463
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x394]
test eax, eax
je 0x4ac471
dec eax
jmp 0x4ac473
xor eax, eax
push eax
push dword [esp + 0x394]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x390]
test eax, eax
je 0x4ac498
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x39c], 0
mov edx, 0x1d
mov dword [esp + 0x3a0], 0
mov dword [esp + 0x3a4], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x1f
jle 0x4ac4df
mov edi, ecx
jmp 0x4ac4fd
test edx, edx
jl 0x4ac4f9
jg 0x4ac4ea
cmp edi, 0x1f
jbe 0x4ac4f9
mov edi, 0x1f
mov dword [esp + 0x14], 0
jmp 0x4ac4fd
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac505
mov eax, dword [esi]
jmp 0x4ac50a
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0xf8], 0
sub edi, ecx
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
test ebx, ebx
je 0x4ac5a0
test edi, edi
jle 0x4ac5a0
cmp word [ebx], 0
je 0x4ac5a0
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xfc]
call fcn.0040ce40
mov ecx, dword [esp + 0xfc]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xfc], eax
cmp eax, dword [esp + 0x100]
jle 0x4ac577
push ecx
lea ecx, [esp + 0xfc]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x100]
call fcn.004263f0
mov ecx, dword [esp + 0x108]
add esp, 0xc
mov eax, dword [esp + 0xf8]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x3a0]
call fcn.00417730
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x4ac5c8
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x3a0]
test eax, eax
je 0x4ac5d6
dec eax
jmp 0x4ac5d8
xor eax, eax
push eax
push dword [esp + 0x3a0]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x39c]
test eax, eax
je 0x4ac5fd
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x3a8], 0
mov edx, 0x22
mov dword [esp + 0x3ac], 0
mov dword [esp + 0x3b0], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x24
jle 0x4ac644
mov edi, ecx
jmp 0x4ac662
test edx, edx
jl 0x4ac65e
jg 0x4ac64f
cmp edi, 0x24
jbe 0x4ac65e
mov edi, 0x24
mov dword [esp + 0x14], 0
jmp 0x4ac662
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac66a
mov eax, dword [esi]
jmp 0x4ac66f
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0xec], 0
sub edi, ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
test ebx, ebx
je 0x4ac705
test edi, edi
jle 0x4ac705
cmp word [ebx], 0
je 0x4ac705
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0xf0]
call fcn.0040ce40
mov ecx, dword [esp + 0xf0]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0xf0], eax
cmp eax, dword [esp + 0xf4]
jle 0x4ac6dc
push ecx
lea ecx, [esp + 0xf0]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0xf4]
call fcn.004263f0
mov ecx, dword [esp + 0xfc]
add esp, 0xc
mov eax, dword [esp + 0xec]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x3ac]
call fcn.00417730
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4ac72d
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x3ac]
test eax, eax
je 0x4ac73b
dec eax
jmp 0x4ac73d
xor eax, eax
push eax
push dword [esp + 0x3ac]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x3a8]
test eax, eax
je 0x4ac762
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x3b4], 0
mov edx, 0x27
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3bc], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x29
jle 0x4ac7a9
mov edi, ecx
jmp 0x4ac7c7
test edx, edx
jl 0x4ac7c3
jg 0x4ac7b4
cmp edi, 0x29
jbe 0x4ac7c3
mov edi, 0x29
mov dword [esp + 0x14], 0
jmp 0x4ac7c7
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac7cf
mov eax, dword [esi]
jmp 0x4ac7d4
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x1a0], 0
sub edi, ecx
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
test ebx, ebx
je 0x4ac86a
test edi, edi
jle 0x4ac86a
cmp word [ebx], 0
je 0x4ac86a
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x1a4]
call fcn.0040ce40
mov ecx, dword [esp + 0x1a4]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x1a4], eax
cmp eax, dword [esp + 0x1a8]
jle 0x4ac841
push ecx
lea ecx, [esp + 0x1a4]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x1a8]
call fcn.004263f0
mov ecx, dword [esp + 0x1b0]
add esp, 0xc
mov eax, dword [esp + 0x1a0]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x1a0]
push eax
lea ecx, [esp + 0x3b8]
call fcn.00417730
mov eax, dword [esp + 0x1a0]
test eax, eax
je 0x4ac892
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x3b8]
test eax, eax
je 0x4ac8a0
dec eax
jmp 0x4ac8a2
xor eax, eax
push eax
push dword [esp + 0x3b8]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x3b4]
test eax, eax
je 0x4ac8c7
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x3c0], 0
mov edx, 0x2c
mov dword [esp + 0x3c4], 0
mov dword [esp + 0x3c8], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x2e
jle 0x4ac90e
mov edi, ecx
jmp 0x4ac92c
test edx, edx
jl 0x4ac928
jg 0x4ac919
cmp edi, 0x2e
jbe 0x4ac928
mov edi, 0x2e
mov dword [esp + 0x14], 0
jmp 0x4ac92c
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ac934
mov eax, dword [esi]
jmp 0x4ac939
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x1c4], 0
sub edi, ecx
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
test ebx, ebx
je 0x4ac9cf
test edi, edi
jle 0x4ac9cf
cmp word [ebx], 0
je 0x4ac9cf
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x1c8]
call fcn.0040ce40
mov ecx, dword [esp + 0x1c8]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x1c8], eax
cmp eax, dword [esp + 0x1cc]
jle 0x4ac9a6
push ecx
lea ecx, [esp + 0x1c8]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x1cc]
call fcn.004263f0
mov ecx, dword [esp + 0x1d4]
add esp, 0xc
mov eax, dword [esp + 0x1c4]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x3c4]
call fcn.00417730
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4ac9f7
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x4aca05
dec eax
jmp 0x4aca07
xor eax, eax
push eax
push dword [esp + 0x3c4]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x3c0]
test eax, eax
je 0x4aca2c
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x3cc], 0
mov edx, 0x31
mov dword [esp + 0x3d0], 0
mov dword [esp + 0x3d4], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x33
jle 0x4aca73
mov edi, ecx
jmp 0x4aca91
test edx, edx
jl 0x4aca8d
cmp edi, 5
jne 0x4ad675
mov edx, 8
mov dword [esp + 0x20c], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ad026
lea eax, [esp + 0x20c]
mov dword [esp + 0x590], esi
mov dword [esp + 0x58c], eax
lea eax, [esp + 0x58c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
mov ebx, dword [esi]
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x11
mov dword [esp + 0x210], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ad07f
lea eax, [esp + 0x210]
mov dword [esp + 0x598], esi
mov dword [esp + 0x594], eax
lea eax, [esp + 0x594]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov edx, 0x1a
mov dword [esp + 0x214], edx
mov ecx, dword [esi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
cmp ecx, edx
jg 0x4ad0d6
lea eax, [esp + 0x214]
mov dword [esp + 0x5a0], esi
mov dword [esp + 0x59c], eax
lea eax, [esp + 0x59c]
push eax
call fcn.006091b0
add esp, 4
nop
int3
cmp word [ebx + edx*2], 0x2d
jne 0x4ad6f4
mov dword [esp + 0x3fc], 0
mov edx, 0
mov dword [esp + 0x400], 0
mov dword [esp + 0x404], 0
mov ebp, dword [esi + 4]
mov eax, ebp
neg eax
sbb eax, eax
lea ecx, [ebp - 1]
and eax, ecx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 8
jle 0x4ad126
mov edi, ecx
jmp 0x4ad144
test edx, edx
jl 0x4ad140
jg 0x4ad131
cmp edi, 8
jbe 0x4ad140
mov edi, 8
mov dword [esp + 0x14], 0
jmp 0x4ad144
mov dword [esp + 0x14], edx
test ebp, ebp
mov dword [esp + 0x17c], 0
mov eax, 0x60f5ec
mov dword [esp + 0x180], 0
cmovne eax, ebx
mov dword [esp + 0x184], 0
sub edi, ecx
lea ebx, [eax + ecx*2]
test ebx, ebx
je 0x4ad1e4
test edi, edi
jle 0x4ad1e4
cmp word [ebx], 0
je 0x4ad1e4
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x180]
call fcn.0040ce40
mov ecx, dword [esp + 0x180]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x180], eax
cmp eax, dword [esp + 0x184]
jle 0x4ad1bb
push ecx
lea ecx, [esp + 0x180]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x184]
call fcn.004263f0
mov ecx, dword [esp + 0x18c]
add esp, 0xc
mov eax, dword [esp + 0x17c]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0x400]
call fcn.00417730
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x4ad20c
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x400]
test eax, eax
je 0x4ad21a
dec eax
jmp 0x4ad21c
xor eax, eax
push eax
push dword [esp + 0x400]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x3fc]
test eax, eax
je 0x4ad241
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x408], 0
mov edx, 9
mov dword [esp + 0x40c], 0
mov dword [esp + 0x410], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x11
jle 0x4ad288
mov edi, ecx
jmp 0x4ad2a6
test edx, edx
jl 0x4ad2a2
jg 0x4ad293
cmp edi, 0x11
jbe 0x4ad2a2
mov edi, 0x11
mov dword [esp + 0x14], 0
jmp 0x4ad2a6
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ad2ae
mov eax, dword [esi]
jmp 0x4ad2b3
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x170], 0
sub edi, ecx
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
test ebx, ebx
je 0x4ad349
test edi, edi
jle 0x4ad349
cmp word [ebx], 0
je 0x4ad349
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x174]
call fcn.0040ce40
mov ecx, dword [esp + 0x174]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x174], eax
cmp eax, dword [esp + 0x178]
jle 0x4ad320
push ecx
lea ecx, [esp + 0x174]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x178]
call fcn.004263f0
mov ecx, dword [esp + 0x180]
add esp, 0xc
mov eax, dword [esp + 0x170]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x40c]
call fcn.00417730
mov eax, dword [esp + 0x170]
test eax, eax
je 0x4ad371
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x40c]
test eax, eax
je 0x4ad37f
dec eax
jmp 0x4ad381
xor eax, eax
push eax
push dword [esp + 0x40c]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x408]
test eax, eax
je 0x4ad3a6
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x414], 0
mov edx, 0x12
mov dword [esp + 0x418], 0
mov dword [esp + 0x41c], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x1a
jle 0x4ad3ed
mov edi, ecx
jmp 0x4ad40b
test edx, edx
jl 0x4ad407
jg 0x4ad3f8
cmp edi, 0x1a
jbe 0x4ad407
mov edi, 0x1a
mov dword [esp + 0x14], 0
jmp 0x4ad40b
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ad413
mov eax, dword [esi]
jmp 0x4ad418
mov eax, 0x60f5ec
lea ebx, [eax + ecx*2]
mov dword [esp + 0x164], 0
sub edi, ecx
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
test ebx, ebx
je 0x4ad4ae
test edi, edi
jle 0x4ad4ae
cmp word [ebx], 0
je 0x4ad4ae
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x168]
call fcn.0040ce40
mov ecx, dword [esp + 0x168]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x168], eax
cmp eax, dword [esp + 0x16c]
jle 0x4ad485
push ecx
lea ecx, [esp + 0x168]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push ebx
push dword [esp + 0x16c]
call fcn.004263f0
mov ecx, dword [esp + 0x174]
add esp, 0xc
mov eax, dword [esp + 0x164]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x418]
call fcn.00417730
mov eax, dword [esp + 0x164]
test eax, eax
je 0x4ad4d6
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x418]
test eax, eax
je 0x4ad4e4
dec eax
jmp 0x4ad4e6
xor eax, eax
push eax
push dword [esp + 0x418]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x414]
test eax, eax
je 0x4ad50b
push eax
call fcn.0043f8f0
add esp, 4
mov dword [esp + 0x420], 0
mov edx, 0x1b
mov dword [esp + 0x424], 0
mov dword [esp + 0x428], 0
mov ebx, dword [esi + 4]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [ebx - 1]
and eax, ecx
cmp eax, edx
mov ecx, eax
cmovg ecx, edx
cdq
mov edi, eax
cmp ecx, 0x23
jle 0x4ad552
mov edi, ecx
jmp 0x4ad570
test edx, edx
jl 0x4ad56c
jg 0x4ad55d
cmp edi, 0x23
jbe 0x4ad56c
mov edi, 0x23
mov dword [esp + 0x14], 0
jmp 0x4ad570
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x4ad578
mov eax, dword [esi]
jmp 0x4ad57d
mov eax, 0x60f5ec
lea esi, [eax + ecx*2]
mov dword [esp + 0x158], 0
sub edi, ecx
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
test esi, esi
je 0x4ad613
test edi, edi
jle 0x4ad613
cmp word [esi], 0
je 0x4ad613
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x15c]
call fcn.0040ce40
mov ecx, dword [esp + 0x15c]
lea eax, [ecx + 1]
add eax, edi
mov dword [esp + 0x15c], eax
cmp eax, dword [esp + 0x160]
jle 0x4ad5ea
push ecx
lea ecx, [esp + 0x15c]
call fcn.0040cde0
lea eax, [edi + edi]
push eax
push esi
push dword [esp + 0x160]
call fcn.004263f0
mov ecx, dword [esp + 0x168]
add esp, 0xc
mov eax, dword [esp + 0x158]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x424]
call fcn.00417730
mov eax, dword [esp + 0x158]
test eax, eax
je 0x4ad63b
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x424]
test eax, eax
je 0x4ad649
dec eax
jmp 0x4ad64b
xor eax, eax
push eax
push dword [esp + 0x424]
lea ecx, [esp + 0x20]
call fcn.0040edd0
mov eax, dword [esp + 0x420]
test eax, eax
je 0x4ad670
push eax
call fcn.0043f8f0
add esp, 4
mov ebp, 0x60f5ec
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswxdigit]
xor esi, esi
nop dword [eax]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4ad68d
lea eax, [ecx - 1]
jmp 0x4ad68f
xor eax, eax
cmp esi, eax
jge 0x4ad6fb
mov edx, esi
mov dword [esp + 0x218], edx
test esi, esi
js 0x4ad6ad
test ecx, ecx
je 0x4ad6a7
dec ecx
jmp 0x4ad6a9
xor ecx, ecx
cmp esi, ecx
jl 0x4ad6df
lea eax, [esp + 0x218]
mov dword [esp + 0xdc], eax
lea eax, [esp + 0x18]
mov dword [esp + 0xe0], eax
lea eax, [esp + 0xdc]
push eax
call fcn.00609170
add esp, 4
nop
int3
mov eax, dword [esp + 0x18]
movzx eax, word [eax + edx*2]
push eax
call edi
add esp, 4
test eax, eax
je 0x4ad6f4
inc esi
jmp 0x4ad680
xor bl, bl
jmp 0x4adcaa
mov dword [esp + 0x450], 0
mov dword [esp + 0x454], 0
mov dword [esp + 0x458], 0
test ecx, ecx
je 0x4ad725
lea eax, [ecx - 1]
jmp 0x4ad727
xor eax, eax
cmp eax, 0x18
mov edi, eax
mov edx, 0x18
cmovg edi, edx
cdq
mov esi, eax
cmp edi, 0x20
jle 0x4ad740
mov esi, edi
jmp 0x4ad764
test edx, edx
jl 0x4ad75d
jg 0x4ad74b
cmp esi, 0x20
jbe 0x4ad75d
mov esi, 0x20
mov dword [esp + 0xe0], 0
jmp 0x4ad764
mov dword [esp + 0xe0], edx
test ecx, ecx
mov dword [esp + 0x14c], 0
mov eax, ebp
mov dword [esp + 0x150], 0
cmovne eax, dword [esp + 0x18]
sub esi, edi
mov dword [esp + 0x154], 0
lea ebx, [eax + edi*2]
test ebx, ebx
je 0x4ad803
test esi, esi
jle 0x4ad803
cmp word [ebx], 0
je 0x4ad803
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x150]
call fcn.0040ce40
mov ecx, dword [esp + 0x150]
lea eax, [ecx + 1]
add eax, esi
mov dword [esp + 0x150], eax
cmp eax, dword [esp + 0x154]
jle 0x4ad7da
push ecx
lea ecx, [esp + 0x150]
call fcn.0040cde0
lea eax, [esi + esi]
push eax
push ebx
push dword [esp + 0x154]
call fcn.004263f0
mov ecx, dword [esp + 0x15c]
add esp, 0xc
mov eax, dword [esp + 0x14c]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x454]
call fcn.00417730
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x4ad82b
push eax
call fcn.0043f8f0
add esp, 4
cmp dword [esp + 0x454], 0
mov eax, ebp
mov edi, dword [esp + 0x1c]
cmovne eax, dword [esp + 0x450]
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov dword [esp + 0x44c], 0
test edi, edi
je 0x4ad872
lea eax, [edi - 1]
jmp 0x4ad874
xor eax, eax
mov edx, 0x10
mov ecx, eax
cmp eax, edx
cmovg ecx, edx
cdq
mov esi, eax
cmp ecx, 0x18
jle 0x4ad88c
mov esi, ecx
jmp 0x4ad8b0
test edx, edx
jl 0x4ad8a9
jg 0x4ad897
cmp esi, 0x18
jbe 0x4ad8a9
mov esi, 0x18
mov dword [esp + 0xe0], 0
jmp 0x4ad8b0
mov dword [esp + 0xe0], edx
test edi, edi
mov dword [esp + 0x140], 0
mov eax, ebp
mov dword [esp + 0x144], 0
cmovne eax, dword [esp + 0x18]
sub esi, ecx
mov dword [esp + 0x148], 0
lea edi, [eax + ecx*2]
test edi, edi
je 0x4ad94f
test esi, esi
jle 0x4ad94f
cmp word [edi], 0
je 0x4ad94f
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x144]
call fcn.0040ce40
mov ecx, dword [esp + 0x144]
lea eax, [ecx + 1]
add eax, esi
mov dword [esp + 0x144], eax
cmp eax, dword [esp + 0x148]
jle 0x4ad926
push ecx
lea ecx, [esp + 0x144]
call fcn.0040cde0
lea eax, [esi + esi]
push eax
push edi
push dword [esp + 0x148]
call fcn.004263f0
mov ecx, dword [esp + 0x150]
add esp, 0xc
mov eax, dword [esp + 0x140]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x448]
call fcn.00417730
mov eax, dword [esp + 0x140]
test eax, eax
je 0x4ad977
push eax
call fcn.0043f8f0
add esp, 4
cmp dword [esp + 0x448], 0
mov edi, dword [esp + 0x1c]
cmovne ebp, dword [esp + 0x444]
mov dword [esp + 0x438], 0
mov dword [esp + 0x43c], 0
mov dword [esp + 0x440], 0
test edi, edi
je 0x4ad9b5
lea eax, [edi - 1]
jmp 0x4ad9b7
xor eax, eax
mov edx, 8
mov ecx, eax
cmp eax, edx
cmovg ecx, edx
cdq
mov esi, eax
cmp ecx, 0x10
jle 0x4ad9cf
mov esi, ecx
jmp 0x4ad9f3
test edx, edx
jl 0x4ad9ec
jg 0x4ad9da
cmp esi, 0x10
jbe 0x4ad9ec
mov esi, 0x10
mov dword [esp + 0xe0], 0
jmp 0x4ad9f3
mov dword [esp + 0xe0], edx
test edi, edi
mov dword [esp + 0x134], 0
mov ebx, 0x60f5ec
mov dword [esp + 0x138], 0
mov eax, ebx
mov dword [esp + 0x13c], 0
cmovne eax, dword [esp + 0x18]
sub esi, ecx
lea edi, [eax + ecx*2]
test edi, edi
je 0x4ada97
test esi, esi
jle 0x4ada97
cmp word [edi], 0
je 0x4ada97
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x138]
call fcn.0040ce40
mov ecx, dword [esp + 0x138]
lea eax, [ecx + 1]
add eax, esi
mov dword [esp + 0x138], eax
cmp eax, dword [esp + 0x13c]
jle 0x4ada6e
push ecx
lea ecx, [esp + 0x138]
call fcn.0040cde0
lea eax, [esi + esi]
push eax
push edi
push dword [esp + 0x13c]
call fcn.004263f0
mov ecx, dword [esp + 0x144]
add esp, 0xc
mov eax, dword [esp + 0x134]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x43c]
call fcn.00417730
mov eax, dword [esp + 0x134]
test eax, eax
je 0x4adabf
push eax
call fcn.0043f8f0
add esp, 4
cmp dword [esp + 0x43c], 0
mov edi, dword [esp + 0x1c]
cmovne ebx, dword [esp + 0x438]
mov dword [esp + 0x42c], 0
mov dword [esp + 0x430], 0
mov dword [esp + 0x434], 0
test edi, edi
je 0x4adafd
lea eax, [edi - 1]
jmp 0x4adaff
xor eax, eax
xor edx, edx
mov ecx, eax
test eax, eax
cmovg ecx, edx
cdq
mov esi, eax
cmp ecx, 8
jle 0x4adb14
mov esi, ecx
jmp 0x4adb38
test edx, edx
jl 0x4adb31
jg 0x4adb1f
cmp esi, 8
jbe 0x4adb31
mov esi, 8
mov dword [esp + 0xe0], 0
jmp 0x4adb38
mov dword [esp + 0xe0], edx
test edi, edi
mov dword [esp + 0x1d0], 0
mov eax, 0x60f5ec
mov dword [esp + 0x1d4], 0
cmovne eax, dword [esp + 0x18]
sub esi, ecx
mov dword [esp + 0x1d8], 0
lea edi, [eax + ecx*2]
test edi, edi
je 0x4adbda
test esi, esi
jle 0x4adbda
cmp word [edi], 0
je 0x4adbda
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x1d4]
call fcn.0040ce40
mov ecx, dword [esp + 0x1d4]
lea eax, [ecx + 1]
add eax, esi
mov dword [esp + 0x1d4], eax
cmp eax, dword [esp + 0x1d8]
jle 0x4adbb1
push ecx
lea ecx, [esp + 0x1d4]
call fcn.0040cde0
lea eax, [esi + esi]
push eax
push edi
push dword [esp + 0x1d8]
call fcn.004263f0
mov ecx, dword [esp + 0x1e0]
add esp, 0xc
mov eax, dword [esp + 0x1d0]
xor edx, edx
mov word [eax + ecx*2 - 2], dx
lea eax, [esp + 0x1d0]
push eax
lea ecx, [esp + 0x430]
call fcn.00417730
mov eax, dword [esp + 0x1d0]
test eax, eax
je 0x4adc02
push eax
call fcn.0043f8f0
add esp, 4
cmp dword [esp + 0x430], 0
mov eax, 0x60f5ec
push ebx
cmovne eax, dword [esp + 0x430]
mov dword [esp + 0x14], eax
call fcn.004a65c0
push ebp
mov ebx, eax
call fcn.004a65c0
push dword [esp + 0x2c4]
mov edi, eax
call fcn.004a65c0
mov esi, eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.004a65c0
mov ecx, dword [esp + 0x22c]
add esp, 0x10
mov dword [ecx], eax
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], esi
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x4adc6c
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x438]
test eax, eax
je 0x4adc80
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x444]
test eax, eax
je 0x4adc94
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x450]
test eax, eax
je 0x4adca8
push eax
call fcn.0043f8f0
add esp, 4
mov bl, 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4adcbb
push eax
call fcn.0043f8f0
add esp, 4
mov al, bl
mov ecx, dword [esp + 0x664]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005f4480
add esp, 0x658
ret