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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x98]
cmp eax, dword [ecx + 8]
jbe 0x48a209
sub esp, 0x118
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 4], eax
call fcn.0048a220
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 0x48a19b
mov dword [esp + 0x44], ebp
mov dword [esp + 0x108], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0048a460
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x10]
test dl, dl
je 0x48a19b
mov edx, eax
neg eax
test ebx, ebx
je 0x4895d7
cmp byte [ecx], 0x2c
jne 0x489640
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x140], eax
mov dword [esp + 0x14c], 0x7fffffff
mov dword [esp + 0x148], 0xffffffff
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 1
add esp, 0x118
ret
mov dword [esp + 0xc8], edx
mov dword [esp + 0x40], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0048a220
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
test cl, cl
je 0x48a137
mov dword [esp + 0x114], ebp
mov dword [esp + 0xc4], ebx
test edx, edx
je 0x48968b
cmp byte [eax], 0x2c
jne 0x4896a0
mov esi, dword [esp + 0xc8]
add esi, 0xfffff1f0
xchg esi, ebx
neg ebx
xchg esi, ebx
jmp 0x4896d1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0048a460
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 + 0xc4]
mov ebp, dword [esp + 0x114]
test cl, cl
je 0x48a137
test edx, edx
jne 0x4896e8
mov edx, 0xf
lea eax, [0x71c91f]
test edx, edx
jbe 0x48a1ff
mov dword [esp + 0xc8], esi
movzx ecx, byte [eax]
cmp cl, 0x2c
je 0x489768
cmp cl, 0x3b
je 0x489768
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 0
add esp, 0x118
ret
mov dword [esp + 0x110], eax
lea edi, [esp + 0xcc]
xor eax, eax
call fcn.0046361b
lea edi, [esp + 0xe0]
call fcn.0046361b
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ebx, dword [esp + 0x110]
add ecx, ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0048a950
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0xf4]
lea esi, [esp + 8]
call fcn.00463afe
lea edi, [esp + 0xcc]
lea esi, [esp + 0xf4]
call fcn.00463afe
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x48a0d3
test edx, edx
je 0x48a0d3
cmp byte [ebx], 0x2c
jne 0x48a0d3
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.0048a950
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc0], ecx
lea edi, [esp + 0xf4]
lea esi, [esp + 8]
call fcn.00463afe
lea edi, [esp + 0xe0]
lea esi, [esp + 0xf4]
call fcn.00463afe
test al, al
je 0x48a06f
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x48a06f
mov eax, dword [esp + 0x12c]
add eax, 0x1ad9c900
mov edx, dword [esp + 0x130]
adc edx, 0x7ffffffe
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], 0
call fcn.00487d90
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x130]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x12c]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.0045e060
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], ecx
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x34]
mov ebp, ebx
add ebx, 0xd116ebf
mov esi, ebx
shr ebx, 1
mov eax, ebx
mov ecx, 0xa3d70a3e
mul ecx
shr edx, 7
mov dword [esp + 0xb8], edx
add edx, 0
mov dword [esp + 0xb4], edx
sar ebp, 0x1f
mov dword [esp + 0xb0], ebp
mov ebx, dword [esp + 0x34]
add ebx, 0xd116ebf
adc ebp, 0x44
mov dword [esp + 0xac], ebp
shr ebp, 1
mov eax, ecx
mul ebp
shr edx, 7
mov dword [esp + 0xa8], edx
imul eax, edx, 0x190
mov ebp, dword [esp + 0xac]
sub ebp, eax
mov eax, ebp
mov edi, 0xa3d70a
mul edi
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], eax
mov edi, dword [esp + 0xb4]
add eax, edi
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0xb8]
imul edx, ebx, 0x190
sub esi, edx
lea edx, [ebp + ebp*2]
shl edx, 5
add edx, esi
shr edx, 1
mov ebp, eax
mov eax, ecx
mul edx
shr edx, 7
mov eax, edx
add edx, ebp
mov dword [esp + 0x50], edx
mov esi, eax
mov eax, 0x190
mul edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0x98], edx
add edx, 0xd116ebf
mov dword [esp + 0x3c], edx
mov eax, 0x23ab1
mov ebp, dword [esp + 0x50]
mul ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x5c], eax
mov ebp, dword [esp + 0x3c]
shr ebp, 1
mov eax, ecx
mul ebp
shr edx, 5
mov dword [esp + 0x90], edx
add edx, 0
mov dword [esp + 0x8c], edx
add ebx, 0
mov ebx, dword [esp + 0xa8]
adc ebx, 0
mov ebp, dword [esp + 0xa0]
add ebp, edi
mov ebp, dword [esp + 0xa4]
adc ebp, ebx
mov ebx, dword [esp + 0xb4]
add esi, ebx
adc ebp, 0
mov dword [esp + 0xac], ebp
imul ebx, ebp, 0x190
mov esi, dword [esp + 0xb8]
add ebx, esi
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x9c]
sub esi, edi
mov esi, dword [esp + 0xb0]
sbb esi, ebx
mov dword [esp + 0xb0], esi
mov ebx, dword [esp + 0x98]
mov edi, ebx
add ebx, 0xd116ebf
adc esi, 0x44
mov dword [esp + 0x88], esi
shr esi, 1
mov eax, esi
mov esi, edx
mul ecx
shr edx, 5
mov dword [esp + 0xb8], edx
imul eax, edx, 0x64
mov ebp, dword [esp + 0x88]
sub ebp, eax
mov eax, ebp
mov ebx, 0x28f5c28
mul ebx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xa8], eax
add eax, esi
mov edx, dword [esp + 0x90]
imul ebx, edx, 0x64
mov esi, dword [esp + 0x3c]
sub esi, ebx
lea ebx, [ebp + ebp*2]
shl ebx, 5
add ebx, esi
shr ebx, 1
mov ebp, eax
mov eax, ecx
mov ecx, edx
mul ebx
shr edx, 5
mov eax, edx
add edx, ebp
mov ebx, eax
mov eax, 0x64
mov esi, edx
mul edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], eax
sub edi, eax
mov dword [esp + 0x9c], edi
add edi, 0xd116ebf
mov eax, 0x8eac
mul esi
mov dword [esp + 0x90], edx
mov dword [esp + 0x84], eax
mov esi, dword [esp + 0x5c]
add esi, eax
mov dword [esp + 0x80], esi
add ecx, 0
mov ecx, dword [esp + 0xb8]
adc ecx, 0
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x8c]
add eax, edx
mov eax, dword [esp + 0xb4]
adc eax, ecx
add ebx, ebp
adc eax, 0
mov dword [esp + 0x88], eax
imul ecx, eax, 0x64
mov edx, dword [esp + 0xa4]
add ecx, edx
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0xa0]
sub edx, ebx
mov edx, dword [esp + 0xb0]
sbb edx, ecx
mov dword [esp + 0xb0], edx
mov ecx, dword [esp + 0x9c]
mov ebx, ecx
add ecx, 0xd116ebf
adc edx, 0x44
mov dword [esp + 0x7c], edx
shr edi, 2
shl edx, 0x1e
or edx, edi
mov dword [esp + 0xb8], edx
mov edi, edx
shl edx, 2
mov dword [esp + 0xb4], edx
sub ebx, edx
mov dword [esp + 0xa8], ebx
add ebx, 0xd116ebf
mov eax, 0x5b5
mul edi
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], eax
add eax, esi
mov dword [esp + 0x98], eax
mov eax, 0x16d
mul ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x98]
add eax, ebx
mov dword [esp + 0x74], eax
mov eax, 0x15180
mov ebx, dword [esp + 0x74]
mul ebx
mov dword [esp + 0x74], edx
mov dword [esp + 0x60], eax
add eax, 0xe5263700
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
nop
mov ebx, dword [esp + 0x34]
mov dword [esp], ebx
lea edi, [esp + 4]
lea esi, [esp + 0xcc]
call fcn.00463afe
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
call fcn.0048b120
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0xe0]
call fcn.00463afe
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
call fcn.0048b120
mov eax, dword [esp + 0xc0]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0xbc]
add edx, ecx
mov ecx, dword [esp + 0x6c]
adc ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0xac]
imul eax, eax, 0x23ab1
mov edx, dword [esp + 0x94]
add eax, edx
mov edx, dword [esp + 0x88]
imul edx, edx, 0x8eac
mov ebx, dword [esp + 0x90]
add edx, ebx
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x84]
add ebx, ebp
adc edx, eax
mov eax, dword [esp + 0x7c]
shr eax, 2
mov ebx, eax
shl eax, 2
mov ebp, dword [esp + 0xb8]
shr ebp, 0x1e
or ebp, eax
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0xb4]
sub eax, esi
mov eax, dword [esp + 0xb0]
sbb eax, ebp
mov ebp, dword [esp + 0xa8]
add ebp, 0xd116ebf
adc eax, 0x44
imul ebx, ebx, 0x5b5
mov ebp, dword [esp + 0xa4]
add ebx, ebp
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x80]
add ebp, esi
adc ebx, edx
imul eax, eax, 0x16d
mov edx, dword [esp + 0x8c]
add eax, edx
mov edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x98]
add edx, ebp
adc eax, ebx
imul eax, eax, 0x15180
mov edx, dword [esp + 0x74]
add eax, edx
mov dword [esp + 0xbc], eax
mov edx, dword [esp + 0x60]
add edx, 0xe5263700
adc eax, 0x80000001
mov dword [esp + 0x64], eax
mov ebp, dword [esp + 0x68]
mov esi, ebp
sar ebp, 0x1f
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xc0], edi
sar edi, 0x1f
cmp edi, ebp
setl al
sete dl
mov ebx, dword [esp + 0xc0]
cmp ebx, esi
setb cl
and ecx, edx
or eax, ecx
test al, al
je 0x489df1
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0xc8]
jmp 0x489e34
mov ebx, esi
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x40]
mov ecx, edi
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], ebx
mov byte [esp + 0x2a], al
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x30]
cmp edi, eax
xchg edi, ebx
setg bl
xchg edi, ebx
sete cl
mov edx, dword [esp + 0x2c]
cmp edx, ebx
setb bl
and ebx, ecx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x489fde
cmp ebp, eax
setl al
sete cl
cmp edx, esi
setae dl
and edx, ecx
or edx, eax
test dl, dl
je 0x489f1d
mov eax, dword [esp + 0x60]
mov ecx, eax
add eax, esi
mov edx, eax
add eax, 0xe5263700
mov ebx, ecx
add ecx, 0xe7076a80
mov edi, dword [esp + 0x108]
mov dword [esp + 0x134], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x138], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x13c], edi
add esi, ebx
mov esi, dword [esp + 0xbc]
adc ebp, esi
add edx, 0xe5263700
adc ebp, 0x80000001
mov dword [esp + 0x144], ebp
mov dword [esp + 0x140], eax
add ebx, 0xe7076a80
adc esi, 0x80000001
mov dword [esp + 0x14c], esi
mov dword [esp + 0x148], ecx
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x150], al
mov byte [esp + 0x151], 1
add esp, 0x118
ret
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0xe5263700
mov edi, edx
add edx, esi
mov dword [esp + 0xb8], edx
add edx, 0xe5263700
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x134], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x13c], edx
add ecx, edi
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x4c]
adc edx, ecx
add ebx, 0xe5263700
adc edx, 0x80000001
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
add edi, esi
adc ecx, ebp
mov eax, dword [esp + 0xb8]
add eax, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x14c], ecx
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x148], eax
movzx eax, byte [esp + 0x2a]
xor eax, 1
mov byte [esp + 0x150], al
mov byte [esp + 0x151], 1
add esp, 0x118
ret
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0xe5263700
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x134], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x138], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x13c], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x144], ebp
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x140], ebp
add edx, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x4c]
adc ecx, edx
add ebx, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x148], eax
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x150], al
mov byte [esp + 0x151], 1
add esp, 0x118
ret
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 0
add esp, 0x118
ret
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 0
add esp, 0x118
ret
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 0
add esp, 0x118
ret
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], 0
add esp, 0x118
ret
xor eax, eax
mov ecx, eax
call fcn.004633d0
nop
call fcn.00461f40
jmp fcn.00489540