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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xa0]
cmp eax, dword [ecx + 8]
jbe 0x665a5c
sub esp, 0x120
lea eax, [0x7d4a00]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
lea edx, [0x7e867e]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xa
call fcn.0040fca0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x665a02
mov dword [esp + 0x5c], eax
lea ecx, [0x7952c0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.00443100
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
lea ecx, [0x7d4a00]
mov dword [esp], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
lea ecx, [0x7e867e]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.0040fca0
lea eax, [esp + 0x18]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x9c], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x6c], ecx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0xa4]
jmp 0x664eae
mov ebx, dword [esp + 0x68]
inc ebx
mov ebp, ecx
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x9c]
cmp ebx, ecx
jge 0x6659e6
mov dword [esp + 0x68], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x58], ebp
lea eax, [edx + ebx*8]
mov ecx, dword [eax]
mov dword [esp + 0x88], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0063b3d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x7e2b9a]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004e1760
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp ecx, 1
jne 0x664f46
mov edx, dword [eax + 4]
test edx, edx
jne 0x664f46
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x664e91
test ecx, ecx
jbe 0x665a54
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0063b3d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x80]
mov dword [edi + 4], ecx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x6659dc
mov dword [edi], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x7e2b9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004e3960
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x664fc6
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x664e91
mov ebx, dword [esp + 0x80]
mov ebp, dword [ebx]
mov edx, dword [ebx + 4]
cmp ecx, edx
ja 0x665a4f
lea eax, [ecx + 1]
cmp eax, edx
ja 0x665a48
mov dword [esp + 0x40], ecx
mov dword [esp + 0x7c], ebp
sub edx, eax
mov esi, edx
neg edx
sar edx, 0x1f
and edx, eax
lea eax, [edx + ebp]
test ecx, ecx
jne 0x665994
xor edx, edx
test dl, dl
jne 0x66501d
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x664e91
mov dword [esp], eax
mov dword [esp + 4], esi
mov byte [esp + 8], 1
call fcn.00667990
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
jne 0x665053
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x664e91
mov dword [esp + 0x38], edx
mov dword [esp + 0x70], eax
lea eax, [0x7ce200]
mov dword [esp], eax
call fcn.0040b5d0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [0xa976a0]
test ecx, ecx
jne 0x665982
mov edx, dword [esp + 0x7c]
mov dword [eax], edx
mov edx, dword [esp + 0x38]
mov dword [eax + 0xc], edx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x66596d
mov edx, dword [esp + 0x70]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + 0x4c], edx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x665955
mov edx, dword [esp + 0x88]
mov dword [eax + 0x48], edx
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x44]
mov ecx, 1
jmp 0x6650f0
lea ebp, [eax + 1]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x90]
mov edx, ecx
mov ebx, esi
mov ecx, ebp
cmp ecx, ebx
jge 0x6658da
jae 0x665a3f
mov dword [esp + 0x50], ecx
lea eax, [edx + ecx*8]
mov dword [esp + 0x98], eax
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0063b3d0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
lea edx, [ecx + eax*8 + 4]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov dword [edx], ebx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x6658c1
mov edx, dword [esp + 0x98]
mov dword [edx], ebp
test ebx, ebx
je 0x6650dc
mov dword [esp + 0x64], ebx
mov dword [esp + 0x94], ebp
mov dword [esp], ebp
mov dword [esp + 4], ebx
lea eax, [0x7e2b9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004e3960
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x6658ad
mov edx, dword [esp + 0x64]
cmp ecx, edx
ja 0x665a3a
lea eax, [ecx + 1]
cmp eax, edx
ja 0x665a33
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x94]
add edx, eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x3c], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004e2990
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov byte [esp + 8], 0
call fcn.00667990
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x6657de
mov edx, dword [esp + 0x48]
cmp edx, 6
jg 0x6653af
cmp edx, 4
jne 0x66532b
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x68746170
jne 0x66525c
mov edx, dword [esp + 0x90]
mov dword [edx + 0x14], ecx
mov ebx, dword [0xa976a0]
test ebx, ebx
jne 0x665252
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
lea edi, [edx + 0x10]
call fcn.0045c3e0
jmp 0x665242
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x98]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jb 0x6652bc
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0xa976a0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x6652af
mov dword [edi], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
mov ecx, eax
mov eax, ebx
call fcn.0045c3e0
mov eax, ecx
jmp 0x66529f
mov dword [esp + 0x64], edx
mov dword [esp + 0x94], ebx
lea eax, [0x78aa20]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00443250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x665321
mov dword [ebx + 0x50], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x94]
mov edi, eax
mov eax, dword [esp + 0x90]
jmp 0x665283
lea edi, [ebx + 0x50]
call fcn.0045c3e0
jmp 0x665308
cmp edx, 6
jne 0x66525c
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x616d6f64
jne 0x66537c
cmp word [edx + 4], 0x6e69
jne 0x66537c
mov edx, dword [esp + 0x90]
mov dword [edx + 0x1c], ecx
mov ebx, dword [0xa976a0]
test ebx, ebx
jne 0x665372
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
lea edi, [edx + 0x18]
call fcn.0045c3e0
jmp 0x665362
cmp dword [edx], 0x75636573
jne 0x66525c
cmp word [edx + 4], 0x6572
jne 0x66525c
mov eax, dword [esp + 0x90]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
cmp edx, 7
jne 0x6656f3
mov dword [esp + 0x34], ecx
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x69707865
jne 0x6653dd
cmp word [edx + 4], 0x6572
jne 0x6653dd
cmp byte [edx + 6], 0x73
je 0x66545b
cmp dword [edx], 0x2d78616d
jne 0x66525c
cmp word [edx + 4], 0x6761
jne 0x66525c
cmp byte [edx + 6], 0x65
jne 0x66525c
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00468880
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x66525c
test eax, eax
je 0x66543a
mov ecx, dword [esp + 0x34]
test ecx, ecx
jbe 0x665a2c
mov edx, dword [esp + 0x74]
cmp byte [edx], 0x30
je 0x66525c
test eax, eax
jg 0x665441
mov eax, 0xffffffff
mov edx, dword [esp + 0x90]
mov dword [edx + 0x3c], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
mov edx, dword [esp + 0x90]
mov dword [edx + 0x38], ecx
mov ebx, dword [0xa976a0]
test ebx, ebx
jne 0x6656e6
mov dword [edx + 0x34], eax
lea edi, [esp + 0x10c]
mov edx, eax
xor eax, eax
call fcn.0045c67b
lea edi, [esp + 0xe4]
call fcn.0045c67b
lea ecx, [0x7f6087]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov ebp, dword [0xa766b8]
mov dword [esp + 0x10], ebp
mov ebp, dword [0xa766b4]
mov dword [esp + 0x14], ebp
call fcn.004abd70
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0xa0]
call fcn.0045cb5e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
lea edi, [esp + 0x10c]
lea esi, [esp + 0xe4]
call fcn.0045cb5e
lea edi, [esp + 0xd0]
lea esi, [esp + 0x10c]
call fcn.0045cb5e
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x66560e
lea edi, [esp + 0xbc]
lea esi, [esp + 0xd0]
call fcn.0045cb5e
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0045c67b
nop
nop
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
test edx, 0x80000000
je 0x66559a
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
mov dword [esp + 0xc4], ecx
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0xc8], edx
and dword [esp + 0xbc], 0x3fffffff
mov dword [esp + 0xc0], 0
mov dword [esp + 0xcc], 0
lea edi, [esp + 0xa8]
lea esi, [esp + 0xbc]
call fcn.0045cb5e
mov eax, dword [esp + 0x90]
lea edi, [eax + 0x20]
mov ecx, dword [0xa976a0]
test ecx, ecx
jne 0x6655e8
lea esi, [esp + 0xa8]
call fcn.0045cb5e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
lea eax, [0x7df640]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.00410e20
mov eax, dword [esp + 0x90]
jmp 0x6655d8
lea edi, [esp + 0xf8]
xor eax, eax
call fcn.0045c67b
lea edi, [esp + 0xe4]
call fcn.0045c67b
lea ecx, [0x7f60a4]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
mov edx, dword [esp + 0x74]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov edx, dword [0xa766b8]
mov dword [esp + 0x10], edx
mov edx, dword [0xa766b4]
mov dword [esp + 0x14], edx
call fcn.004abd70
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0xa0]
call fcn.0045cb5e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
lea edi, [esp + 0xf8]
lea esi, [esp + 0xe4]
call fcn.0045cb5e
lea edi, [esp + 0xd0]
lea esi, [esp + 0xf8]
call fcn.0045cb5e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x665515
mov ecx, dword [esp + 0x90]
lea edi, [ecx + 0x20]
mov edx, dword [0xa976a0]
test edx, edx
jne 0x6656cf
xor eax, eax
call fcn.0045c67b
jmp 0x66525c
lea eax, [0x7df640]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00411020
jmp 0x66525c
lea edi, [edx + 0x34]
call fcn.0045c3e0
jmp 0x665476
cmp edx, 8
jne 0x66525c
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x70747468
jne 0x66572f
cmp dword [edx + 4], 0x796c6e6f
jne 0x66572f
mov eax, dword [esp + 0x90]
mov byte [eax + 0x41], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
cmp dword [edx], 0x656d6173
jne 0x66525c
cmp dword [edx + 4], 0x65746973
jne 0x66525c
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004e2990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 3
jne 0x66579c
cmp word [eax], 0x616c
jne 0x66578c
cmp byte [eax + 2], 0x78
jne 0x66578c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 2
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
jmp 0x66577c
cmp ecx, 4
jne 0x6657b9
cmp dword [eax], 0x656e6f6e
jne 0x66578c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 4
jmp 0x66577c
cmp ecx, 6
jne 0x66578c
cmp dword [eax], 0x69727473
jne 0x66578c
cmp word [eax + 4], 0x7463
jne 0x66578c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 3
jmp 0x66577c
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x98]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp esi, ebp
ja 0x66583e
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0xa976a0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x665831
mov dword [edi], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x6650dc
mov ecx, eax
mov eax, ebx
call fcn.0045c3e0
mov eax, ecx
jmp 0x665821
mov dword [esp + 0x64], edx
mov dword [esp + 0x94], ebx
lea eax, [0x78aa20]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00443250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x6658a3
mov dword [ebx + 0x50], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x94]
mov edi, eax
mov eax, dword [esp + 0x90]
jmp 0x665805
lea edi, [ebx + 0x50]
call fcn.0045c3e0
jmp 0x66588a
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x64]
xor ebx, ebx
xor edx, edx
jmp 0x6651b1
mov edi, dword [esp + 0x98]
mov edx, eax
mov eax, ebp
call fcn.0045c3e0
mov eax, edx
mov edx, edi
jmp 0x66514d
mov ecx, dword [esp + 0x58]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jb 0x665914
mov ebp, dword [esp + 0x8c]
mov esi, dword [0xa976a0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x66590d
mov dword [ebp + ecx*4], eax
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x664e91
call fcn.0045c3e0
jmp 0x665902
lea eax, [0x7952c0]
mov dword [esp], eax
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00443250
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x58]
jmp 0x6658f0
lea edi, [eax + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045c3e0
mov eax, ecx
jmp 0x6650c3
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x70]
call fcn.0045c3e0
mov eax, ecx
jmp 0x6650a4
mov edi, eax
mov eax, dword [esp + 0x7c]
call fcn.0045c3e0
mov eax, edi
jmp 0x665088
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], eax
mov dword [esp], ebp
mov dword [esp + 4], ecx
lea eax, [0x80cbb8]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004e2d50
mov eax, dword [esp + 0x10]
test eax, eax
setl dl
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x64]
jmp 0x665005
call fcn.0045c3e0
jmp 0x664f8c
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], esi
add esp, 0x120
ret
lea eax, [0xa97428]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
add esp, 0x120
ret
xor eax, eax
call fcn.0045c460
mov ecx, edx
call fcn.0045c4c0
call fcn.0045c480
mov eax, ecx
mov ecx, ebx
call fcn.0045c460
mov ecx, edx
call fcn.0045c4c0
call fcn.0045c480
xor eax, eax
call fcn.0045c460
nop
call fcn.0045ae90
jmp fcn.00664db0