Function at 0x647c90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x649393
sub esp, 0xf0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x727bec]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.00476ec0
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test al, al
je 0x648053
mov dword [esp + 0x54], edx
mov dword [esp + 0xac], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x90], ebx
test eax, eax
jne 0x647d41
xor ebp, ebp
jmp 0x647d78
mov dword [esp], ebx
mov dword [esp + 4], eax
lea ecx, [0x74d644]
mov dword [esp + 8], ecx
call fcn.004e1a50
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x90]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x648036
test edx, edx
jne 0x647d8a
xor ebp, ebp
jmp 0x647dc1
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x74d644]
mov dword [esp + 8], eax
call fcn.004e1a50
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x90]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x648036
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004e14a0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
nop
test eax, eax
je 0x647dfb
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x647e09
jmp 0x64937a
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x647e6d
mov dword [esp + 0x88], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x68], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0x64], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x64]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x94]
nop
nop
test eax, eax
je 0x647ecf
lea ecx, [esp + 0x94]
cmp eax, ecx
je 0x647edd
jmp 0x649362
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
inc ecx
mov edx, dword [esp + 0x98]
cmp eax, ecx
jae 0x647f33
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
mov byte [ecx + edx - 1], 0x2f
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004e14a0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
nop
test eax, eax
je 0x647f7a
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x647f88
jmp 0x64934a
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x647fec
mov dword [esp + 0x30], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x68], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xbc], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], eax
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x68]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
jmp 0x648180
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x6481fb
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x74d644]
mov dword [esp + 8], edx
call fcn.004e1a50
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x6481fb
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
call fcn.004e14a0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
nop
test eax, eax
je 0x6480c9
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x6480d7
jmp 0x649332
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [edx + ebx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x64813b
mov dword [esp + 0x68], ebx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x38], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0xbc], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x64]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x64818f
mov ecx, dword [eax]
jmp 0x648191
xor ecx, ecx
mov dword [esp + 0x4c], ecx
lea eax, [0x6e0660]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call fcn.0046ca20
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb8], eax
lea edi, [esp + 0xc0]
xor eax, eax
call fcn.00471d44
lea eax, [0x6e2f20]
mov dword [esp], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
lea edx, [esp + 0xc0]
mov dword [esp + 8], edx
call fcn.00467da0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xb8]
xor edx, edx
jmp 0x648238
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov dword [esi], ebp
lea eax, [esp + 0xc0]
mov dword [esp], eax
call fcn.00467f90
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0xc0]
test ebx, ebx
je 0x6482cd
inc edx
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp eax, edx
jae 0x648295
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], ebp
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6e0660]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xb0]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
lea esi, [ecx + edx*8 - 4]
mov dword [esi], ebx
mov ebx, dword [0x98d0b8]
lea esi, [ecx + edx*8 - 8]
test ebx, ebx
je 0x648218
call fcn.00471ac0
mov dword [edi], ebp
mov ebx, dword [esi]
mov dword [edi + 4], ebx
jmp 0x648218
mov dword [esp + 0x48], edx
mov dword [esp + 0xb4], ecx
lea ebx, [0x7a4850]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.004f78c0
xor eax, eax
jmp 0x6482fd
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x48]
cmp eax, ecx
jge 0x648971
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0xb4]
lea edx, [ecx + eax*8]
mov ebx, dword [edx + 4]
mov dword [esp + 0x50], ebx
mov edx, dword [edx]
mov dword [esp + 0xa8], edx
lea ebp, [0x6e2f20]
mov dword [esp], ebp
mov esi, dword [esp + 0xfc]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.0040e1c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x94]
mov edx, dword [eax + 4]
mov eax, dword [eax]
nop
nop
test ecx, ecx
je 0x64836e
lea ebx, [esp + 0x94]
cmp ecx, ebx
je 0x64837c
jmp 0x64931a
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
inc ebx
mov ebp, dword [esp + 0x98]
cmp ecx, ebx
jae 0x6483e2
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ebx
mov byte [ebx + ebp - 1], 0x3b
mov ecx, dword [esp + 0x94]
nop
nop
test ecx, ecx
je 0x64840b
lea ebx, [esp + 0x94]
cmp ecx, ebx
je 0x648419
jmp 0x649302
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
inc ebx
mov ebp, dword [esp + 0x98]
cmp ecx, ebx
jae 0x648477
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ebx
mov byte [ebx + ebp - 1], 0x20
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x648954
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x74d644]
mov dword [esp + 8], edx
call fcn.004e1a50
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x648954
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
call fcn.004e14a0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
nop
test eax, eax
je 0x6484f3
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x648501
jmp 0x6492ea
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x648565
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0xbc], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
xor edx, edx
jmp 0x6489ac
cmp edx, eax
jge 0x64865b
mov ebx, dword [esp + 0x94]
nop
nop
test ebx, ebx
je 0x6485df
lea ebp, [esp + 0x94]
cmp ebx, ebp
je 0x6485ed
jmp 0x6492d2
lea ebx, [esp + 0x94]
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
inc ebp
mov esi, dword [esp + 0x98]
cmp ebx, ebp
jae 0x64864f
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x9c], ebp
mov byte [ebp + esi - 1], 0x2a
mov ebx, dword [esp + 0x94]
nop
nop
test ebx, ebx
je 0x648678
lea ebp, [esp + 0x94]
cmp ebx, ebp
je 0x648686
jmp 0x6492ba
lea ebx, [esp + 0x94]
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
inc ebp
mov esi, dword [esp + 0x98]
cmp ebx, ebp
jb 0x6486a4
cmp edx, eax
jmp 0x6486f0
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
mov eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x9c], ebp
mov byte [ebp + esi - 1], 0x3d
jge 0x6487b3
mov edx, dword [esp + 0x94]
nop
test edx, edx
je 0x64871e
lea ebx, [esp + 0x94]
cmp edx, ebx
je 0x64872c
jmp 0x6492a2
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x9c]
lea ebx, [edx + 7]
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x98]
cmp ebp, ebx
jae 0x648786
mov dword [esp + 0x64], edx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esi + edx], 0x2d667475
mov dword [esi + edx + 3], 0x2727382d
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x98], esi
xor edx, edx
xor ebx, ebx
jmp 0x648db5
test eax, eax
jne 0x6487bb
xor edx, edx
jmp 0x6487e4
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x74d644]
mov dword [esp + 8], edx
call fcn.004e1a50
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov eax, dword [esp + 0x28]
test dl, dl
jne 0x648889
mov edx, dword [esp + 0x94]
nop
test edx, edx
je 0x648808
lea ebx, [esp + 0x94]
cmp edx, ebx
je 0x648816
jmp 0x648d9c
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
inc ebx
mov ebp, dword [esp + 0x98]
cmp edx, ebx
jae 0x648874
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x9c], ebx
mov byte [ebx + ebp - 1], 0x22
xor edx, edx
xor ebx, ebx
jmp 0x648a18
mov edx, dword [esp + 0x94]
nop
nop
test edx, edx
je 0x6488a6
lea ebx, [esp + 0x94]
cmp edx, ebx
je 0x6488b4
jmp 0x6489ff
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [eax + ebx]
mov esi, dword [esp + 0x98]
cmp edx, ebp
jae 0x64890a
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x6e06e0]
mov dword [esp + 0x10], ecx
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0xbc], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00472440
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
jmp 0x6482f6
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
mov edx, ecx
neg ecx
cmp eax, ecx
ja 0x64899c
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], eax
add esp, 0xf0
ret
test edx, edx
je 0x6489a5
call fcn.00462450
call fcn.00462490
mov edx, ebp
mov dword [esp + 0x64], edx
cmp edx, eax
jge 0x6485bc
movzx ebx, byte [ecx + edx]
cmp ebx, 0x80
jge 0x6489c9
lea ebp, [edx + 1]
jmp 0x6489ed
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004625f0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
lea esi, [ebx - 0x20]
cmp esi, 0x5e
jbe 0x6489aa
cmp ebx, 9
je 0x6489aa
jmp 0x6485ba
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
inc edx
cmp edx, eax
jge 0x648bba
movzx ebp, byte [ecx + edx]
xchg ebp, eax
cmp al, 0x22
xchg ebp, eax
je 0x648a32
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
jne 0x648a17
cmp ebx, edx
ja 0x648d93
mov ebp, edx
sub edx, ebx
mov esi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x94]
add ebx, ecx
nop
test edx, edx
je 0x648a65
lea edi, [esp + 0x94]
cmp edx, edi
je 0x648a73
jmp 0x648d7b
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov dword [esp + 0x64], ebp
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
lea ecx, [esi + edi]
mov eax, dword [esp + 0x98]
cmp edx, ecx
jae 0x648ad5
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x74], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xbc], eax
lea ebp, [eax + edi]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00472440
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x94]
nop
test eax, eax
je 0x648b37
lea edx, [esp + 0x94]
cmp eax, edx
je 0x648b45
jmp 0x648d63
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
inc ebx
mov ebp, dword [esp + 0x98]
cmp edx, ebx
jae 0x648b9b
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebx
mov byte [ebx + ebp - 1], 0x5c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov ebx, edx
jmp 0x648a17
cmp ebx, eax
ja 0x648d5a
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0x94]
add ecx, ebx
nop
test eax, eax
je 0x648beb
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x648bf9
jmp 0x648d42
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [edx + ebx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x648c57
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x70], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0xbc], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x94]
nop
test eax, eax
je 0x648cb5
lea ecx, [esp + 0x94]
cmp eax, ecx
je 0x648cc3
jmp 0x648d2a
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
inc ecx
mov edx, dword [esp + 0x98]
cmp eax, ecx
jae 0x648d19
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
mov byte [ecx + edx - 1], 0x22
jmp 0x6482f6
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
mov ecx, eax
mov eax, ebx
call fcn.00471b90
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
mov eax, ebx
mov ecx, edx
call fcn.00471b90
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
inc edx
cmp edx, eax
jge 0x649131
mov dword [esp + 0x40], edx
movzx ebp, byte [ecx + edx]
xchg ebp, eax
mov byte [esp + 0x25], al
xchg ebp, eax
lea esi, [ebp - 0x21]
xchg esi, eax
cmp al, 0x5e
xchg esi, eax
jb 0x648ddc
mov esi, 1
jmp 0x648e4c
xchg ebp, eax
cmp al, 0x2a
xchg ebp, eax
jne 0x648dea
mov esi, 1
jmp 0x648e4c
xchg ebp, eax
cmp al, 0x27
xchg ebp, eax
jne 0x648df8
mov esi, 1
jmp 0x648e4c
xchg ebp, eax
cmp al, 0x25
xchg ebp, eax
jne 0x648e06
mov esi, 1
jmp 0x648e4c
mov dword [esp + 0x3c], ebx
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
nop
lea ecx, [0x72fd6c]
mov dword [esp], ecx
mov dword [esp + 4], 0xf
mov dword [esp + 8], eax
call fcn.004dfed0
mov eax, dword [esp + 0xc]
test eax, eax
setge al
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
movzx ebp, byte [esp + 0x25]
mov esi, eax
mov eax, dword [esp + 0x28]
xchg esi, eax
test al, al
xchg esi, eax
je 0x648db4
cmp ebx, edx
ja 0x649299
mov esi, edx
sub edx, ebx
mov edi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x94]
add ebx, ecx
nop
test edx, edx
je 0x648e8e
lea ecx, [esp + 0x94]
cmp edx, ecx
jne 0x649281
mov ecx, dword [esp + 0x6c]
jmp 0x648e9c
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
lea eax, [ecx + edi]
mov esi, dword [esp + 0x98]
cmp edx, eax
jae 0x648efa
mov dword [esp + 0x64], edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x60], ecx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0xbc], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.00472440
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x94]
nop
nop
test eax, eax
je 0x648f5c
lea edx, [esp + 0x94]
cmp eax, edx
je 0x648f6a
jmp 0x649269
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
inc ebx
mov ebp, dword [esp + 0x98]
cmp edx, ebx
jae 0x648fc0
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebx
mov byte [ebx + ebp - 1], 0x25
movzx edx, byte [esp + 0x25]
mov ebx, edx
shr dl, 4
movzx edx, dl
mov ebp, dword [esp + 0x94]
lea esi, [0x7302e0]
movzx edx, byte [esi + edx]
nop
test ebp, ebp
je 0x648fff
lea edi, [esp + 0x94]
cmp ebp, edi
je 0x64900d
jmp 0x649251
lea ebp, [esp + 0x94]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
inc edi
mov eax, dword [esp + 0x98]
cmp ebp, edi
jae 0x649077
mov byte [esp + 0x27], dl
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x98], eax
movzx edx, byte [esp + 0x27]
movzx ebx, byte [esp + 0x25]
lea esi, [0x7302e0]
mov dword [esp + 0x9c], edi
mov byte [edi + eax - 1], dl
and ebx, 0xf
mov edx, dword [esp + 0x94]
movzx ebx, byte [ebx + esi]
nop
test edx, edx
je 0x6490a5
lea ebp, [esp + 0x94]
cmp edx, ebp
je 0x6490b3
jmp 0x649239
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
inc ebp
mov esi, dword [esp + 0x98]
cmp edx, ebp
jae 0x649112
mov byte [esp + 0x26], bl
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], esi
movzx ebx, byte [esp + 0x26]
mov dword [esp + 0x9c], ebp
mov byte [ebp + esi - 1], bl
mov edx, dword [esp + 0x40]
lea ebx, [edx + 1]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
jmp 0x648db4
cmp ebx, eax
ja 0x649230
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0x94]
add ecx, ebx
nop
test eax, eax
je 0x649162
lea ebx, [esp + 0x94]
cmp eax, ebx
je 0x649170
jmp 0x649218
lea eax, [esp + 0x94]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x98]
cmp eax, ebp
jae 0x6491ce
mov dword [esp + 0x64], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0xbc], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x98], eax
jmp 0x6482f6
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
mov ecx, eax
mov eax, ebx
call fcn.00471b90
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
mov eax, ebx
mov ecx, edx
call fcn.00471b90
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a37e8]
mov dword [esp + 4], eax
call fcn.0046ae10
nop
call fcn.004706b0
jmp fcn.00647c90