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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x84]
cmp eax, dword [ecx + 8]
jbe 0x4872ec
sub esp, 0x104
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 4], eax
call fcn.00487300
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test al, al
je 0x48727e
mov dword [esp + 0x40], ebp
mov dword [esp + 0xf4], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00487540
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x10]
test dl, dl
je 0x48727e
mov edx, eax
neg eax
test ebx, ebx
je 0x486807
cmp byte [ecx], 0x2c
jne 0x486870
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x138], 0x7fffffff
mov dword [esp + 0x134], 0xffffffff
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov dword [esp + 0x8c], edx
mov dword [esp + 0x3c], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00487300
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test cl, cl
je 0x48721a
mov dword [esp + 0x88], ebp
mov dword [esp + 0x100], ebx
test edx, edx
je 0x4868bb
cmp byte [eax], 0x2c
jne 0x4868d0
mov esi, dword [esp + 0x8c]
add esi, 0xfffff1f0
xchg esi, ebx
neg ebx
xchg esi, ebx
jmp 0x486901
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00487540
mov esi, dword [esp + 8]
movzx ecx, byte [esp + 0x14]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x100]
mov ebp, dword [esp + 0x88]
test cl, cl
je 0x48721a
test edx, edx
jne 0x486918
mov edx, 0xf
lea eax, [0x638c87]
test edx, edx
jbe 0x4872e2
mov dword [esp + 0x8c], esi
movzx ecx, byte [eax]
cmp cl, 0x2c
je 0x486998
cmp cl, 0x3b
je 0x486998
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0xfc], eax
lea edi, [esp + 0xb8]
xor eax, eax
call fcn.0046279b
lea edi, [esp + 0xcc]
call fcn.0046279b
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ebx, dword [esp + 0xfc]
add ecx, ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00487a30
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0xe0]
lea esi, [esp + 8]
call fcn.00462c7e
lea edi, [esp + 0xb8]
lea esi, [esp + 0xe0]
call fcn.00462c7e
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x4871b6
test edx, edx
je 0x4871b6
cmp byte [ebx], 0x2c
jne 0x4871b6
lea eax, [edx - 1]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00487a30
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 8]
call fcn.00462c7e
lea edi, [esp + 0xcc]
lea esi, [esp + 0xe0]
call fcn.00462c7e
test al, al
je 0x487152
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x487152
mov eax, dword [esp + 0x118]
add eax, 0x1ad9c900
mov edx, dword [esp + 0x11c]
adc edx, 0x7ffffffe
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], 0
call fcn.004851f0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x80], eax
mov edx, ecx
add ecx, 0xd116ebf
adc eax, 0x44
mov ebp, eax
shr eax, 1
mov esi, 0xa3d70a3e
mov edi, edx
mul esi
shr edx, 7
mov dword [esp + 0x7c], edx
imul eax, edx, 0x190
sub ebp, eax
mov eax, ebp
mov ebx, 0xa3d70a
mul ebx
mov dword [esp + 0x78], eax
mov ebx, ecx
shr ecx, 1
mov eax, ecx
mov ecx, edx
mul esi
shr edx, 7
mov dword [esp + 0x74], edx
imul eax, edx, 0x190
sub ebx, eax
lea eax, [ebp + ebp*2]
shl eax, 5
add eax, ebx
shr eax, 1
mov ebx, edx
mul esi
shr edx, 7
mov dword [esp + 0x70], edx
add ebx, 0
mov ebp, dword [esp + 0x78]
add ebp, ebx
add edx, ebp
mov dword [esp + 0x4c], edx
mov eax, 0x190
mul edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov eax, 0x23ab1
mov esi, dword [esp + 0x4c]
mul esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x74]
add esi, 0
mov esi, dword [esp + 0x7c]
adc esi, 0
mov edx, dword [esp + 0x78]
add edx, ebx
adc ecx, esi
mov edx, dword [esp + 0x70]
add edx, ebp
adc ecx, 0
mov dword [esp + 0xb4], ecx
imul edx, ecx, 0x190
mov ebx, dword [esp + 0x6c]
add edx, ebx
mov ebx, dword [esp + 0x68]
sub edi, ebx
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x80]
sbb ebx, edx
mov dword [esp + 0x80], ebx
add edi, 0xd116ebf
adc ebx, 0x44
mov dword [esp + 0xb0], ebx
shr ebx, 1
mov eax, ebx
mov ebp, 0xa3d70a3e
mul ebp
shr edx, 5
mov dword [esp + 0x78], edx
imul eax, edx, 0x64
mov ecx, dword [esp + 0xb0]
sub ecx, eax
mov eax, ecx
mov esi, 0x28f5c28
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov esi, edi
shr edi, 1
mov eax, ebp
mul edi
shr edx, 5
mov dword [esp + 0x6c], edx
imul eax, edx, 0x64
sub esi, eax
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, esi
shr eax, 1
mov ecx, edx
mul ebp
shr edx, 5
add ecx, 0
mov ebp, dword [esp + 0x70]
mov esi, ebp
add ebp, ecx
mov edi, edx
add edx, ebp
mov dword [esp + 0x4c], edx
mov eax, 0x64
mul edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], eax
mov eax, 0x8eac
mov ebx, dword [esp + 0x4c]
mul ebx
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], eax
mov ebx, dword [esp + 0x6c]
add ebx, 0
mov ebx, dword [esp + 0x78]
adc ebx, 0
add esi, ecx
mov ecx, dword [esp + 0x74]
adc ecx, ebx
add edi, ebp
adc ecx, 0
mov dword [esp + 0xb0], ecx
imul ebx, ecx, 0x64
mov ebp, dword [esp + 0x70]
add ebx, ebp
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
sub ebp, esi
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x80]
sbb esi, ebx
mov dword [esp + 0x80], esi
mov ebx, ebp
add ebp, 0xd116ebf
adc esi, 0x44
mov dword [esp + 0xa4], esi
shr ebp, 2
shl esi, 0x1e
or esi, ebp
mov dword [esp + 0x78], esi
mov ebp, eax
mov eax, 0x5b5
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
shl esi, 2
mov dword [esp + 0x6c], esi
sub ebx, esi
mov dword [esp + 0x68], ebx
add ebx, 0xd116ebf
mov eax, 0x16d
mul ebx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x58]
add ebx, ebp
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x70]
add edx, ebx
mov dword [esp + 0x94], edx
add eax, edx
mov dword [esp + 0x90], eax
mov eax, 0x15180
mov edx, dword [esp + 0x90]
mul edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x11c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x118]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.0045c910
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x2c], edx
adc ebx, eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0xb4]
imul eax, eax, 0x23ab1
mov ecx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0xb0]
imul ecx, ecx, 0x8eac
mov ebp, dword [esp + 0xac]
add ecx, ebp
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xa8]
add ebp, esi
adc ecx, eax
mov eax, dword [esp + 0xa4]
shr eax, 2
mov ebp, eax
shl eax, 2
mov esi, dword [esp + 0x78]
shr esi, 0x1e
or esi, eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
sub eax, edi
mov eax, dword [esp + 0x80]
sbb eax, esi
mov esi, dword [esp + 0x68]
add esi, 0xd116ebf
adc eax, 0x44
imul ebp, ebp, 0x5b5
mov esi, dword [esp + 0x74]
add ebp, esi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x98]
add esi, edi
adc ebp, ecx
imul eax, eax, 0x16d
mov ecx, dword [esp + 0xa0]
add eax, ecx
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
add ecx, esi
adc eax, ebp
imul eax, eax, 0x15180
mov ecx, dword [esp + 0x90]
add eax, ecx
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x5c]
add ecx, 0xe5263700
mov dword [esp + 0x78], ecx
adc eax, 0x80000001
mov dword [esp + 0x60], eax
nop
mov edi, dword [esp + 0x34]
mov dword [esp], edi
lea edi, [esp + 4]
lea esi, [esp + 0xb8]
call fcn.00462c7e
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
call fcn.00488200
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0xcc]
call fcn.00462c7e
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], ecx
call fcn.00488200
mov eax, dword [esp + 0x84]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x1c]
mov ebx, edx
sar edx, 0x1f
cmp edx, eax
xchg ebp, ebx
setl bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
cmp ebx, ecx
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x486f28
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xf8], esi
mov esi, dword [esp + 0x100]
mov dword [esp + 0xf4], esi
mov esi, dword [esp + 0x8c]
jmp 0x486f6a
mov ecx, ebx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x84]
mov ebx, edx
mov edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x44], ebx
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
mov ebp, dword [esp + 0x30]
cmp edx, ebp
xchg esi, ebx
setg bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov edx, dword [esp + 0x2c]
cmp edx, ebx
setb bl
and ebx, edi
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4870d0
cmp eax, ebp
setl bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp edx, ecx
setae dl
and edx, ebp
or edx, ebx
test dl, dl
je 0x487042
mov edx, dword [esp + 0x5c]
add ecx, edx
mov ebx, dword [esp + 0x7c]
adc eax, ebx
add ecx, 0xe5263700
adc eax, 0x80000001
add edx, 0xe7076a80
adc ebx, 0x80000001
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x120], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x124], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x128], ebp
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
add ebx, edx
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x48]
adc esi, ebp
add ebx, 0xe5263700
adc esi, 0x80000001
add edx, ecx
adc ebp, eax
add edx, 0xe5263700
adc ebp, 0x80000001
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], esi
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x138], ebp
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x2a]
xor eax, 1
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
adc ecx, edx
add eax, 0xe5263700
adc ecx, 0x80000001
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x134], eax
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
xor eax, eax
mov ecx, eax
call fcn.00462580
nop
call fcn.004610f0
jmp fcn.00486770