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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x24]
cmp eax, dword [ecx + 8]
jbe 0x607f27
sub esp, 0xa4
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x607f21
mov eax, dword [esp + 0xb4]
mov ebx, edx
mov ecx, eax
xor edx, edx
div ebx
lea edx, [eax + 1]
mov ebx, dword [esp + 0xbc]
cmp ebx, edx
jb 0x60785e
mov ebx, edx
test ecx, ecx
je 0x607a63
cmp ecx, 0x80
jae 0x607898
mov ebx, dword [esp + 0xd0]
mov ebp, dword [ebx + 4]
inc ebp
mov esi, dword [ebx + 0x20]
cmp esi, ebp
jae 0x607d27
test esi, esi
jne 0x60788f
mov eax, ebp
jmp 0x607e52
mov eax, ebp
mov ebp, esi
jmp 0x607e52
mov dword [esp + 0x68], ebx
lea eax, [0x749400]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
mov edx, dword [esp + 0xac]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
call fcn.006058d0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x98]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
call fcn.00605b20
lea eax, [0x734860]
mov dword [esp], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x94], eax
lea ecx, [0x733520]
mov dword [esp], ecx
mov edx, dword [esp + 0x68]
shl edx, 8
mov dword [esp + 0x78], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x90], eax
lea ecx, [0x733520]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
lea ecx, [0x734860]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
lea edx, [ecx + 7]
shr edx, 3
mov ebx, dword [esp + 0xb4]
imul edx, ebx
mov dword [esp + 0x80], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
lea ecx, [0x7347a0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xcc]
cmp dword [ecx + 4], 0xb
jge 0x607a49
mov ecx, 3
jmp 0x607a4e
mov ecx, 0xa
mov dword [esp + 0x9c], eax
mov dword [esp + 0x6c], ecx
xor edx, edx
mov ebx, dword [esp + 0x68]
xor ebp, ebp
jmp 0x607a91
mov eax, dword [esp + 0xd0]
mov dword [eax], 1
add esp, 0xa4
ret
mov edi, dword [esp + 0x74]
inc edi
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x6c]
mov edx, edi
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x5c]
cmp ecx, edx
jbe 0x607bec
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], edx
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0xc], ebp
movsd xmm0, qword [esp + 0xc4]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x98]
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x90]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call fcn.00605d80
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0xb4]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x1c], esi
call fcn.00606460
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
nop
nop
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x68]
xor ebx, ebx
jmp 0x607c80
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x84], eax
xor eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x84]
jmp 0x607ceb
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
call fcn.006065e0
add esp, 0xa4
ret
lea esi, [ebp + ecx]
mov edx, edi
mov edi, esi
mov ecx, 0x100
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x98]
mov dword [ecx + ebp + 0x400], 0
movsd xmm0, qword [0x7c9e6c]
movsd qword [ecx + ebp + 0x404], xmm0
inc ebx
mov ebp, dword [esp + 0x7c]
mov eax, ebp
cmp ebx, eax
jae 0x607bb7
cmp ebx, edx
ja 0x607d1e
mov ebp, edx
sub edx, ebx
mov esi, edx
neg edx
sar edx, 0x1f
mov edi, ebp
imul ebp, ebx, 0x40c
and ebp, edx
test esi, esi
ja 0x607c45
jmp 0x607d15
imul edi, edi, 0x40c
mov eax, dword [esp + 0xa8]
movzx eax, byte [eax + ebp]
lea esi, [edi + ecx]
inc dword [esi + eax*4]
lea eax, [ecx + edi + 0x400]
inc dword [eax]
lea eax, [ebp + 1]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x70]
cmp ebx, ebp
jbe 0x607a77
movzx edi, byte [edi + ebp]
cmp edx, edi
jbe 0x607d0c
cmp esi, ebp
ja 0x607cab
mov eax, ebp
mov ecx, esi
call fcn.00456b50
mov eax, edi
mov ecx, edx
call fcn.00456b40
xor eax, eax
mov ecx, eax
call fcn.00456b40
mov eax, ebx
mov ecx, edx
call fcn.00456bb0
mov ebp, dword [ebx + 4]
inc ebp
mov esi, dword [ebx + 0x24]
cmp esi, ebp
jae 0x607d40
test esi, esi
jne 0x607d3a
mov eax, ebp
jmp 0x607d83
mov eax, ebp
mov ebp, esi
jmp 0x607d83
mov dword [ebx], 1
mov edx, dword [ebx + 0xc]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
cmp eax, edx
jae 0x607d7a
mov byte [ebp + eax], 0
mov edx, dword [ebx + 0x18]
mov ebp, dword [ebx + 0x14]
mov eax, dword [ebx + 4]
cmp eax, edx
jae 0x607d73
mov dword [ebp + eax*4], ecx
inc dword [ebx + 4]
add esp, 0xa4
ret
mov ecx, edx
call fcn.00456b50
mov ecx, edx
call fcn.00456b50
shl ebp, 1
cmp ebp, eax
jb 0x607d81
mov edx, dword [ebx + 0x1c]
cmp ebp, edx
jg 0x607d9c
ja 0x607e49
mov dword [ebx + 0x18], ebp
jmp 0x607e38
mov dword [esp + 0x60], ebp
lea eax, [0x7347e0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x24]
test edx, edx
je 0x607e0e
mov ebx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x1c]
cmp ebp, edx
jb 0x607e40
mov ebp, dword [esp + 0x60]
cmp ebp, edx
jg 0x607ddc
mov edx, ebp
cmp ebx, eax
je 0x607e12
mov dword [esp + 0x98], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edx, 2
mov dword [esp + 8], edx
call fcn.00457450
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x60]
jmp 0x607e12
mov ebp, dword [esp + 0x60]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x1c], ebp
mov edx, dword [0x901e80]
test edx, edx
jne 0x607e27
mov dword [ecx + 0x14], eax
jmp 0x607e2f
lea edi, [ecx + 0x14]
call fcn.00456ac0
mov ebx, ecx
mov ecx, dword [esp + 0xb4]
mov dword [ebx + 0x24], ebp
jmp 0x607d40
mov ecx, edx
mov edx, ebp
call fcn.00456b90
mov ecx, ebp
call fcn.00456b90
shl ebp, 1
cmp ebp, eax
jb 0x607e50
mov edx, dword [ebx + 0x10]
cmp ebp, edx
jg 0x607e6b
ja 0x607f1a
mov dword [ebx + 0xc], ebp
jmp 0x607f09
mov dword [esp + 0x64], ebp
lea eax, [0x734860]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x607eda
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0x10]
cmp ebp, edx
jb 0x607f11
mov ebp, dword [esp + 0x64]
cmp ebp, edx
jg 0x607eab
mov edx, ebp
cmp ebx, eax
je 0x607ede
mov dword [esp + 0x98], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00457450
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x64]
jmp 0x607ede
mov ebp, dword [esp + 0x64]
mov dword [ecx + 0xc], ebp
mov dword [ecx + 0x10], ebp
mov ebx, dword [0x901e80]
test ebx, ebx
jne 0x607ef3
mov dword [ecx + 8], eax
jmp 0x607efb
lea edi, [ecx + 8]
call fcn.00456ac0
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xd0]
mov dword [ebx + 0x20], ebp
jmp 0x607d27
mov ecx, edx
mov edx, ebp
call fcn.00456b90
mov ecx, ebp
call fcn.00456b90
call fcn.0042f690
nop
call fcn.00455690
jmp fcn.00607810