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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x14]
call fcn.00612890
lea edi, [esi + 4]
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x64]
cmp eax, edx
jne 0x610ded
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
mov dword [esp + 0x58], eax
jmp 0x610e14
mov ebp, dword [esp + 0x58]
sub eax, edx
mov edx, dword [esp + 0x60]
sub ecx, ebx
sar eax, 2
add eax, 0x3fffff
sub edx, ebp
shl eax, 0xa
sar ecx, 2
add eax, ecx
sar edx, 2
add eax, edx
mov dword [esp + 0x58], eax
mov ecx, dword [esi + 0x2c]
sub ecx, eax
cmp eax, ecx
mov dword [esp + 0x10], ecx
jae 0x6111ef
mov ebp, dword [esp + 0x68]
cmp eax, ebp
jae 0x610fb3
mov ecx, ebp
sub ecx, eax
je 0x610e72
mov ebx, ecx
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x610e49
mov eax, dword [esi + 0xc]
mov ecx, dword [edi]
cmp eax, ecx
jne 0x610e50
mov ecx, esi
call fcn.006125e0
mov edx, dword [esi + 0xc]
add edx, 0xfffffffc
mov dword [esi + 0xc], edx
mov ecx, edx
mov edx, dword [esp + 0x6c]
call fcn.004d1f70
mov ecx, dword [esi + 0x2c]
inc ecx
dec ebx
mov dword [esi + 0x2c], ecx
jne 0x610e39
mov eax, dword [esp + 0x58]
test eax, eax
jbe 0x610ee7
mov dword [esp + 0x68], eax
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 0xc]
lea ecx, [esp + 0x34]
mov dword [esp + 0x50], eax
lea eax, [ebp - 1]
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.006119b0
mov ebx, dword [eax + 8]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x610ebc
mov edx, dword [esi + 0xc]
mov eax, dword [edi]
cmp edx, eax
jne 0x610ec3
mov ecx, esi
call fcn.006125e0
mov edx, dword [esi + 0xc]
add edx, 0xfffffffc
mov dword [esi + 0xc], edx
mov ecx, edx
mov edx, ebx
call fcn.004d1f70
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x68]
inc ecx
dec eax
mov dword [esi + 0x2c], ecx
mov dword [esp + 0x68], eax
jne 0x610e7a
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x28], ecx
push ebp
lea ecx, [esp + 0x28]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call fcn.006128a0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
push ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
call fcn.006128a0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x20]
cmp eax, ecx
mov esi, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
je 0x611544
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
lea ecx, [esp + 0x58]
mov dword [eax], edx
call fcn.00611970
mov eax, dword [esp + 0x60]
cmp eax, esi
jne 0x610f90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x18
test ebp, ebp
jbe 0x611028
mov dword [esp + 0x68], ebp
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x44]
mov edx, dword [eax + 0xc]
lea eax, [ebp - 1]
push eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x58], edx
call fcn.006119b0
mov ebx, dword [eax + 8]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x610ffd
mov ecx, dword [esi + 0xc]
mov eax, dword [edi]
cmp ecx, eax
jne 0x611004
mov ecx, esi
call fcn.006125e0
mov edx, dword [esi + 0xc]
add edx, 0xfffffffc
mov dword [esi + 0xc], edx
mov ecx, edx
mov edx, ebx
call fcn.004d1f70
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x68]
inc ecx
dec eax
mov dword [esi + 0x2c], ecx
mov dword [esp + 0x68], eax
jne 0x610fbb
mov edx, edi
push ebp
mov eax, dword [edx]
mov dword [esp + 0x28], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x30], eax
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x28]
call fcn.006128a0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ecx
push ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
call fcn.006128a0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x60], ecx
push ebp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], edx
call fcn.006128a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x64]
cmp eax, esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
je 0x611139
mov edx, dword [eax]
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x34]
mov dword [eax], edx
call fcn.00611970
lea ecx, [esp + 0x44]
call fcn.00611970
mov eax, dword [esp + 0x4c]
cmp eax, esi
jne 0x611117
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x20]
push ebx
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
call fcn.006128a0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov edx, dword [edi]
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x2c], ecx
push ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], edx
call fcn.006128a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
cmp eax, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
je 0x611544
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi]
mov dword [eax], ecx
lea ecx, [esp + 0x44]
call fcn.00611970
mov eax, dword [esp + 0x4c]
cmp eax, esi
jne 0x6111d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x18
mov ebx, dword [esp + 0x68]
cmp ecx, ebx
jae 0x6113b9
sub ebx, ecx
je 0x611257
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x61122c
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
cmp ecx, edx
je 0x61122c
lea eax, [ecx + 4]
cmp eax, edx
mov edx, dword [esp + 0x6c]
mov dword [esi + 0x1c], eax
jne 0x611240
call fcn.004d1f70
mov ecx, esi
call fcn.00612480
jmp 0x611245
mov ecx, esi
call fcn.00612480
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + 4]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x6c]
call fcn.004d1f70
mov ecx, dword [esi + 0x2c]
inc ecx
dec ebx
mov dword [esi + 0x2c], ecx
jne 0x6111ff
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
xor ebp, ebp
test ecx, ecx
jbe 0x6112ed
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
lea edx, [eax + ebp]
mov ecx, dword [ecx + 0xc]
lea eax, [esp + 0x34]
mov dword [esp + 0x50], ecx
push edx
push eax
lea ecx, [esp + 0x4c]
call fcn.006119b0
mov ebx, dword [eax + 8]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x6112be
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
cmp ecx, edx
je 0x6112be
lea eax, [ecx + 4]
cmp eax, edx
mov dword [esi + 0x1c], eax
mov edx, ebx
jne 0x6112d0
call fcn.004d1f70
mov ecx, esi
call fcn.00612480
jmp 0x6112d5
mov ecx, esi
call fcn.00612480
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + 4]
mov dword [esi + 0x1c], edx
mov edx, ebx
call fcn.004d1f70
mov edx, dword [esi + 0x2c]
mov eax, dword [esp + 0x10]
inc edx
inc ebp
cmp ebp, eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x2c], edx
jb 0x611261
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x58], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x5c], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x60], ecx
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x68], edx
call fcn.006128a0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x5c], ecx
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], esi
call fcn.006128a0
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x20]
cmp eax, ecx
mov esi, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
je 0x611544
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
lea ecx, [esp + 0x44]
mov dword [eax], edx
call fcn.00611970
mov eax, dword [esp + 0x4c]
cmp eax, esi
jne 0x611396
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x18
xor ebp, ebp
test ebx, ebx
jbe 0x61140b
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
mov edx, ebp
mov ecx, dword [ecx + 0xc]
sub edx, ebx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x10]
add edx, ecx
lea ecx, [esp + 0x44]
add edx, eax
lea eax, [esp + 0x34]
push edx
push eax
call fcn.006119b0
mov eax, dword [eax + 8]
mov ecx, esi
push eax
call fcn.00611fb0
mov eax, dword [esp + 0x58]
inc ebp
cmp ebp, ebx
jb 0x6113bf
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x58], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x5c], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x60], ecx
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x68], edx
call fcn.006128a0
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x20], esi
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x5c], ecx
push esi
lea ecx, [esp + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
call fcn.006128a0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
sub esp, 0x10
mov eax, esp
push ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
lea ecx, [esp + 0x48]
mov dword [eax + 0xc], edx
lea eax, [esp + 0x58]
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call fcn.006119b0
mov ecx, eax
call fcn.00611a10
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
sub esp, 0x10
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov ecx, esp
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [ecx], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x54]
call fcn.00613300
lea ecx, [esp + 0x58]
push ebx
push ecx
lea ecx, [esp + 0x1c]
call fcn.006119b0
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
sub esp, 0x10
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x8c]
call fcn.00613240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x18