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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
mov esi, edx
xor edx, edx
push edi
mov edi, ecx
mov dword [esp + 0x2c], esi
xor ecx, ecx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x28]
div dword [esi + 0x20]
test edx, edx
setne cl
xor ebx, ebx
add ecx, eax
mov dword [esp + 0x28], ecx
lea eax, [ecx - 1]
cmp eax, 0x3ff
ja 0x4871b4
push 0x1c
push 1
call fcn.0050f2a0
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x4871b4
mov eax, dword [esp + 0x28]
push 4
push eax
mov dword [ebx], eax
mov dword [ebx + 8], 0
call fcn.0050f2a0
add esp, 8
mov dword [ebx + 4], eax
test eax, eax
je 0x4871b4
xor ecx, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x28], ecx
jle 0x487108
lea ebx, [ebx]
mov eax, dword [esi + 0x20]
xor edx, edx
imul eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], edx
add eax, dword [esi + 0x24]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x34], edx
cmp dword [esi + 0x10], edx
jle 0x487132
lea ebx, [eax + 8]
push 4
lea eax, [ebx - 4]
cdq
push edx
push eax
lea eax, [esp + 0x24]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 4
je 0x486ed6
or esi, 0xffffffff
jmp 0x486ef9
movzx esi, byte [esp + 0x1b]
movzx eax, byte [esp + 0x1a]
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x18]
shl esi, 8
movzx ecx, ah
or esi, ecx
movzx eax, al
shl esi, 8
or esi, eax
push 4
mov eax, ebx
cdq
push edx
push eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 4
je 0x486f17
or edi, 0xffffffff
jmp 0x486f3a
movzx edi, byte [esp + 0x1f]
movzx eax, byte [esp + 0x1e]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x1c]
shl edi, 8
movzx ecx, ah
or edi, ecx
movzx eax, al
shl edi, 8
or edi, eax
push 4
lea eax, [ebx + 4]
cdq
push edx
push eax
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [eax]
call eax
add esp, 0x14
cmp eax, 4
je 0x486f5d
or edx, 0xffffffff
jmp 0x486f80
movzx edx, byte [esp + 0x23]
movzx eax, byte [esp + 0x22]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x20]
shl edx, 8
movzx ecx, ah
or edx, ecx
movzx eax, al
shl edx, 8
or edx, eax
mov ecx, dword [esp + 0x34]
mov eax, esi
shl eax, 0xb
cmp ecx, dword [ebp + 8]
jne 0x486fa6
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x30]
inc ecx
add dword [esp + 0x24], eax
add ebx, 0x18
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
lea edx, [edx + esi*4]
mov dword [esp + 0x34], ecx
add edx, 0x18
mov dword [esp + 0x30], edx
cmp ecx, dword [eax + 0x10]
jl 0x486eb7
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x48712e
mov ecx, edx
and ecx, 0x7ff
je 0x486ff0
mov eax, 0x800
sub eax, ecx
add edx, eax
add ebx, edx
xor edx, edx
lea ecx, [edx + 1]
call fcn.00405ab0
mov esi, eax
test esi, esi
je 0x4870d5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x40]
mov eax, dword [ecx + 0x14]
mov dword [esi], edx
mov edx, dword [esp + 0x44]
mov dword [esi + 4], eax
mov dword [esi + 0x40], edx
mov dword [esi + 0x14], 0x129
cmp dword [ecx + 0x18], 8
jne 0x4870d5
mov eax, dword [ecx + 0x14]
mov edx, ebx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [ecx + eax*4 + 0x2c]
mov ecx, edi
mov dword [esp + 0x78], eax
lea eax, [esp + 0x50]
push eax
push 5
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x58], 1
call fcn.004e9140
add esp, 8
mov dword [esi + 0x1a4], eax
test eax, eax
je 0x4870d5
push 0
push ebx
mov edx, edi
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0xc], 0x78
call fcn.004064d0
add esp, 8
test eax, eax
jne 0x4870de
mov ecx, esi
call fcn.00405c10
xor esi, esi
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4], esi
mov eax, dword [ebx + 4]
cmp dword [eax + ecx*4], 0
je 0x487132
mov esi, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x48], ecx
cmp ecx, dword [esp + 0x28]
jl 0x486e80
mov ecx, ebx
call fcn.0040d240
test eax, eax
je 0x487136
push 0
push 0
xor edx, edx
mov ecx, ebx
call fcn.0040d3e0
add esp, 8
test eax, eax
je 0x487138
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
xor ecx, ecx
jmp 0x48713a
xor eax, eax
mov ecx, eax
call fcn.00405c10
cmp dword [ebx + 4], 0
je 0x487197
xor esi, esi
cmp dword [ebx], esi
jle 0x48718c
jmp 0x487150
xor ecx, ecx
lea edi, [esi*4]
xor eax, eax
test esi, esi
jle 0x48717c
mov edx, dword [ebx + 4]
mov ebx, dword [edi + edx]
cmp ebx, dword [edx + eax*4]
jne 0x48716f
mov ecx, 1
inc eax
cmp eax, esi
jl 0x487165
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x487187
mov ecx, dword [ebx + 4]
mov ecx, dword [edi + ecx]
call fcn.00405c10
inc esi
cmp esi, dword [ebx]
jl 0x487150
push dword [ebx + 4]
call fcn.005092c3
add esp, 4
push dword [ebx + 0xc]
call fcn.005092c3
add esp, 4
push ebx
call fcn.005092c3
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.0040d370
xor ecx, ecx
call fcn.00405c10
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret