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

Disassembly:
mov ecx, dword [0x90eeac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x647df5
sub esp, 0xac
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + 4], eax
mov edx, dword [0x90f128]
test edx, edx
jne 0x647730
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc4]
jmp 0x647763
call fcn.004714b0
mov edx, dword [esp + 0xb4]
mov dword [edi], edx
mov ebx, dword [ecx]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0xbc]
mov dword [edi + 8], ebx
mov ebp, dword [ecx + 8]
mov dword [edi + 0xc], ebp
mov ebp, dword [esp + 0xc4]
mov dword [edi + 0x10], ebp
mov esi, dword [ecx + 0x10]
mov dword [edi + 0x14], esi
mov dword [ecx], edx
mov esi, dword [esp + 0xc0]
mov dword [ecx + 0xc], esi
mov dword [ecx + 8], ebx
mov edi, dword [esp + 0xc8]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebp
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x28], 0
test esi, esi
je 0x647ddc
test edi, edi
je 0x647dc4
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x44], eax
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x84]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x80], ebx
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x7c], esi
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov edi, dword [esp + 0x50]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x38], edi
mov dword [esp + 0x74], edi
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x70], ebp
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x68], edi
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x14], ebp
call fcn.004e3f70
mov eax, dword [esp + 0x18]
test eax, eax
je 0x64798b
mov dword [esp + 0x20], eax
lea ecx, [eax + 1]
mov edx, dword [esp + 0xb0]
cmp dword [edx + 0x20], ecx
jge 0x647929
mov dword [esp + 0x30], ecx
lea eax, [0x66bc00]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call fcn.0046c2a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + 0x1c], 0
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x20], edx
mov edx, dword [0x90f128]
test edx, edx
je 0x647920
call fcn.00471470
mov dword [edi], eax
mov edx, dword [ecx + 0x18]
mov dword [edi + 4], edx
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x20]
mov edx, ecx
cmp dword [edx + 0x2c], eax
jge 0x64797d
lea ecx, [0x6765e0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.0046c2a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + 0x28], 0
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x2c], edx
mov edx, dword [0x90f128]
test edx, edx
je 0x647978
call fcn.00471470
mov dword [edi], eax
mov edx, dword [ecx + 0x24]
mov dword [edi + 4], edx
mov dword [ecx + 0x24], eax
mov edx, ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
jmp 0x6479bd
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0xac
ret
sub edx, eax
mov esi, edx
neg edx
sar edx, 0x1f
and edx, eax
sub ecx, eax
add edx, ebp
mov eax, esi
mov ebx, ecx
mov ecx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc], edx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], esi
call fcn.004e4090
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x647ce8
mov edx, dword [esp + 0x28]
cmp edx, ecx
jb 0x647dbf
mov ebx, dword [esp + 0xb0]
mov ebp, dword [ebx + 0x20]
mov esi, dword [ebx + 0x1c]
inc esi
mov edi, dword [ebx + 0x18]
cmp ebp, esi
jae 0x647a83
mov dword [esp + 0x2c], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x66bc00]
mov dword [esp + 0x10], eax
call fcn.0046c350
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x20], eax
mov eax, dword [0x90f128]
test eax, eax
je 0x647a74
call fcn.00471470
mov dword [edi], ecx
mov ebp, dword [ebx + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + 0x18], ecx
mov edi, ecx
mov esi, edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [ebx + 0x1c], esi
lea ebp, [esi + esi*2]
mov dword [edi + ebp*4 - 8], ecx
mov dword [edi + ebp*4 - 4], edx
mov esi, dword [0x90f128]
mov eax, ebx
mov ebx, dword [esp + 0x3c]
add ecx, ebx
test esi, esi
je 0x647ac4
mov esi, edi
call fcn.00471470
mov ebx, dword [esp + 0x4c]
mov dword [edi], ebx
mov eax, dword [esi + ebp*4 - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xb0]
mov ebx, dword [esp + 0x3c]
mov edi, esi
mov esi, dword [esp + 0x4c]
mov dword [edi + ebp*4 - 0xc], esi
mov ebp, dword [esp + 0x24]
cmp ebp, ecx
jb 0x647db6
sub edx, ecx
mov dword [esp + 0x28], edx
sub ebp, ecx
mov dword [esp + 0x24], ebp
mov eax, edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, esi
mov dword [esp + 0x4c], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x38]
mov dword [esp + 0x14], esi
call fcn.004e4090
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x647bf4
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x647db1
mov ebx, dword [esp + 0xb0]
mov ebp, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x28]
inc esi
mov edi, dword [ebx + 0x24]
cmp ebp, esi
jae 0x647baa
mov dword [esp + 0x2c], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6765e0]
mov dword [esp + 0x10], eax
call fcn.0046c350
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x2c], eax
mov eax, dword [0x90f128]
test eax, eax
je 0x647b9b
call fcn.00471470
mov dword [edi], ecx
mov ebp, dword [ebx + 0x24]
mov dword [edi + 4], ebp
mov dword [ebx + 0x24], ecx
mov esi, edx
mov edi, ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [ebx + 0x28], esi
lea ebp, [edi + esi*8 - 4]
mov dword [ebp], ecx
mov ebp, dword [0x90f128]
lea esi, [edi + esi*8 - 8]
mov edi, dword [esp + 0x34]
lea eax, [edi + ecx]
test ebp, ebp
je 0x647bdd
call fcn.00471470
mov ebp, dword [esp + 0x4c]
mov dword [edi], ebp
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x4c]
mov dword [esi], ebp
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jae 0x6479a8
jmp 0x647dac
lea edi, [esp + 0x94]
xor eax, eax
call fcn.004716fa
mov ecx, dword [esp + 0xc4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 4], ecx
call fcn.00466070
mov ecx, dword [esp + 8]
lea edx, [0x6765e0]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call fcn.00466070
mov ecx, dword [esp + 8]
lea edx, [0x6765e0]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
call fcn.004660f0
mov ecx, dword [esp + 0xc]
lea edx, [0x66bc00]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], ecx
lea ecx, [0x6ce2a6]
mov dword [esp], ecx
mov dword [esp + 4], 0x3a
lea ecx, [esp + 0x94]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.004d2600
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0xac
ret
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x1c]
inc edx
mov ebx, dword [eax + 0x18]
cmp ecx, edx
jae 0x647d53
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x66bc00]
mov dword [esp + 0x10], eax
call fcn.0046c350
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x20], eax
mov eax, dword [0x90f128]
test eax, eax
je 0x647d4c
call fcn.00471470
mov dword [edi], ecx
mov eax, dword [ebx + 0x18]
mov dword [edi + 4], eax
mov dword [ebx + 0x18], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 0x1c], edx
lea eax, [edx + edx*2]
mov ecx, dword [esp + 0x24]
mov dword [ebx + eax*4 - 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + eax*4 - 4], ecx
mov ecx, dword [0x90f128]
test ecx, ecx
jne 0x647d79
mov ecx, dword [esp + 0x4c]
jmp 0x647d8b
call fcn.00471470
mov ecx, dword [esp + 0x4c]
mov dword [edi], ecx
mov edx, dword [ebx + eax*4 - 0xc]
mov dword [edi + 4], edx
mov dword [ebx + eax*4 - 0xc], ecx
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0xac
ret
call fcn.00471540
call fcn.00471520
mov eax, ecx
mov ecx, ebp
call fcn.00471540
call fcn.00471520
lea eax, [0x6765e0]
mov dword [esp], eax
lea eax, [0x71d2e0]
mov dword [esp + 4], eax
call fcn.0046ab50
lea eax, [0x6765e0]
mov dword [esp], eax
lea eax, [0x71d2d8]
mov dword [esp + 4], eax
call fcn.0046ab50
nop
call fcn.00470060
jmp fcn.006476e0