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

Disassembly:
sub esp, 0xb4
mov eax, dword [esp + 0xbc]
push ebx
push esi
xor esi, esi
shr eax, 3
or ebx, 0xffffffff
mov dword [esp + 0x1c], esi
mov dword [esp + 8], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x10], esi
cmp dword [esp + 0xcc], eax
jb 0x489ef3
cmp dword [esp + 0xd0], esi
je 0x489ef3
cmp dword [esp + 0xd4], esi
je 0x489ef3
push ebp
lea ecx, [esp + 0x4c]
push edi
push ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xc4], esi
call fcn.004b18b0
mov ebp, eax
add esp, 4
cmp ebp, esi
jl 0x489dd4
lea edx, [esp + 0x28]
push edx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea eax, [esp + 0x6c]
push eax
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea ecx, [esp + 0x94]
push ecx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea edx, [esp + 0xa4]
push edx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea eax, [esp + 0xb4]
push eax
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
mov ecx, dword [esp + 0xd8]
mov ecx, dword [ecx]
xor edi, edi
cmp ecx, edi
je 0x48969d
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
cmp eax, edi
je 0x489682
cmp dword [esp + 0xd0], edi
je 0x489682
cmp dword [eax + 0x1c], 1
jne 0x489682
cmp dword [eax + 0x18], edi
je 0x489682
cmp dword [eax + 0xc], edi
je 0x489682
cmp dword [eax + 0x10], edi
je 0x489682
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx + 8]
push eax
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.004b1780
mov ebp, eax
add esp, 0xc
cmp ebp, edi
jl 0x489dd4
mov eax, dword [esp + 0xd8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
push ecx
push edx
lea eax, [esp + 0x30]
push eax
call fcn.004b1780
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
movzx ecx, byte [edx]
push ecx
lea ecx, [eax + 8]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x54]
push edx
push eax
mov eax, dword [esp + 0xd8]
call fcn.00487500
push eax
lea edx, [esp + 0x7c]
call fcn.00489160
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x489dd4
lea ecx, [esp + 0x6c]
push ecx
call fcn.004b0840
add esp, 4
test eax, eax
jg 0x489637
lea ebp, [esi - 3]
jmp 0x489dd4
mov esi, dword [esp + 0xd8]
mov ecx, dword [esi]
push eax
mov eax, dword [ecx]
lea edx, [ecx + 0x1c]
push edx
push eax
call fcn.00428f10
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
add esp, 0xc
test ecx, ecx
jne 0x489661
lea ebp, [ecx - 2]
jmp 0x489dd4
mov edx, dword [eax + 0x24]
push edx
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.004b08b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
jmp 0x489dd2
push 0xffffe005
call fcn.004207c0
add esp, 4
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret
push 0x800
call fcn.00420f60
mov esi, eax
add esp, 4
cmp esi, edi
jne 0x4896cb
push 0xffffe013
call fcn.004207c0
add esp, 4
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret
push 0x28
push esi
call fcn.00420900
mov ebp, eax
add esp, 8
mov dword [esp + 0x24], ebp
cmp ebp, edi
jne 0x489703
push 0xffffe013
call fcn.004207c0
push 1
push esi
call fcn.00420960
add esp, 0xc
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret
push 0x800
mov dword [ebp], esi
call fcn.00420f60
mov esi, eax
add esp, 4
cmp esi, edi
jne 0x48972b
push 0xffffe013
call fcn.004207c0
mov ecx, dword [ebp]
push 1
push ecx
jmp 0x4896ed
push 0x20
push esi
call fcn.00420900
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x48976c
push 0xffffe013
call fcn.004207c0
push 1
push esi
call fcn.00420960
mov edx, dword [ebp]
push 1
push edx
call fcn.00420960
add esp, 0x14
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret
mov dword [eax], esi
lea esi, [eax + 8]
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xc4], edi
call fcn.004b18b0
mov ebp, eax
add esp, 4
cmp ebp, edi
jl 0x489dd4
lea ecx, [esp + 0x28]
push ecx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea edx, [esp + 0x6c]
push edx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea eax, [esp + 0x94]
push eax
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea ecx, [esp + 0xa4]
push ecx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
lea edx, [esp + 0xb4]
push edx
call fcn.004b18b0
mov ebp, eax
add esp, 4
test ebp, ebp
jl 0x489dd4
mov eax, dword [esp + 0xcc]
call fcn.00487500
mov edi, eax
push edi
mov dword [esp + 0x24], edi
call fcn.004a9af0
add esp, 4
test eax, eax
jne 0x48984c
xor ecx, ecx
jmp 0x48984e
mov ecx, dword [eax]
mov eax, dword [esp + 0xc8]
add ecx, ecx
add ecx, ecx
dec eax
add ecx, ecx
xor edx, edx
div ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 0x3e8
mov dword [esp + 0x18], eax
jg 0x489a21
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0x10]
mov dword [esi + 8], edx
mov ecx, dword [eax]
mov eax, esi
call fcn.004876f0
mov ebx, eax
test ebx, ebx
jne 0x489dd4
mov eax, dword [esp + 0xd0]
test eax, eax
jne 0x4898be
mov eax, dword [esp + 0xd4]
add eax, eax
lea ecx, [esp + 0x28]
add eax, eax
push ecx
add eax, eax
push eax
call fcn.00487a40
jmp 0x4898db
cmp eax, 1
jne 0x489a33
mov edx, dword [esp + 0xcc]
push edx
push edi
lea ecx, [esp + 0x30]
mov edx, esi
call fcn.00487c00
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x489dd4
mov eax, dword [esp + 0xc8]
call fcn.00487480
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004b6180
add esp, 8
mov ebp, eax
neg eax
sbb eax, eax
mov dword [esp + 0x4c], eax
jne 0x489864
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xc8]
neg edi
sbb edi, edi
add edi, 2
cmp esi, 0x400
jb 0x48993c
lea ecx, [esi*4 - 1]
mov dword [esp + 0x44], ecx
jmp 0x489944
mov dword [esp + 0x44], 0xfff
mov dword [esp + 0x14], 0
lea esp, [esp]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x1c]
add eax, eax
push edx
add eax, eax
add eax, eax
push eax
mov eax, dword [esp + 0x28]
push edi
push esi
push eax
lea edx, [esp + 0x64]
lea ecx, [esp + 0x3c]
call fcn.00488b50
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x489dd4
push 1
lea eax, [esi - 1]
push eax
lea ecx, [esp + 0xac]
push ecx
call fcn.004b5ec0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004b0dc0
add esp, 8
test eax, eax
jl 0x4899de
mov eax, esi
call fcn.00487480
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.004b6180
add esp, 8
mov ebp, eax
neg eax
sbb eax, eax
mov dword [esp + 0x4c], eax
je 0x489a06
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
inc eax
lea edi, [edi + edx + 1]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x44]
jbe 0x489950
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
jmp 0x489864
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x14], eax
jbe 0x489b80
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
jmp 0x489864
push 0xffffe03f
call fcn.004207c0
add esp, 4
jmp 0x489dd4
mov ecx, dword [esi]
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 8]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x44]
push ecx
push edx
push edi
mov dword [esp + 0x60], 0
call fcn.004884b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x489dd4
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, dword [esp + 0xd0]
inc ecx
lea edx, [esp + 0xbc]
push edx
lea eax, [esp + 0x88]
shr ecx, 1
push eax
inc ecx
push ecx
push edi
call fcn.004884b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x489dd4
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0xcc]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xbc]
push ecx
push edx
push edi
lea edx, [esp + 0x64]
lea ecx, [esp + 0x3c]
call fcn.00487d60
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x489dd4
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
add ecx, eax
lea eax, [ecx + edx]
mov dword [esi + 8], eax
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ecx
call fcn.00420900
add esp, 8
mov dword [esi + 4], eax
test eax, eax
je 0x489dd4
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push edx
push ecx
push eax
call fcn.0040dc50
mov edx, dword [esp + 0x74]
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x70]
add ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
call fcn.0040dc50
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x84]
add edx, ecx
add edx, dword [esi + 4]
push eax
push edx
call fcn.0040dc50
mov esi, dword [esp + 0xec]
add esp, 0x24
mov dword [esp + 0x14], ebx
cmp dword [esp + 0xd0], 0
jne 0x489c6f
shr esi, 3
push esi
lea eax, [esp + 0x8c]
push eax
push 0
call fcn.00428f10
add esp, 0xc
cmp dword [esp + 0x8c], 0
je 0x489dd4
jmp 0x489bc0
lea ecx, [esp + 0x94]
push ecx
lea esi, [esp + 0x8c]
call fcn.00487740
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x489dd4
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edi, [esp + 0xa0]
lea ebx, [esp + 0x5c]
call fcn.00488fc0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x489dd4
cmp dword [esp + 0x4c], 1
jne 0x489bc0
mov edx, edi
push edx
call fcn.004b0840
add esp, 4
test eax, eax
jg 0x489c2b
lea ebp, [ebx - 3]
jmp 0x489dd4
mov edi, dword [esp + 0x10]
mov ecx, dword [edi]
push eax
lea eax, [edi + 0x14]
push eax
push ecx
call fcn.00428f10
mov eax, dword [edi + 0x18]
add esp, 0xc
test eax, eax
jne 0x489c4e
lea ebp, [eax - 2]
jmp 0x489dd4
mov edx, dword [edi + 0x1c]
push edx
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.004b08b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
jmp 0x489cc4
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
push 1
push ecx
call fcn.00420900
add esp, 8
mov dword [esi + 0x18], eax
test eax, eax
je 0x489dd4
mov edx, esi
mov dword [edx + 0x1c], 1
mov edx, dword [esp + 0x20]
mov byte [eax], 1
push 1
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea edx, [esp + 0x7c]
call fcn.00489160
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x489dd4
mov edi, esi
lea eax, [esp + 0x50]
push eax
call fcn.004b0840
add esp, 4
test eax, eax
jg 0x489cdf
mov ebp, 0xfffffffd
jmp 0x489dd4
mov esi, dword [esp + 0x24]
mov edx, dword [esi]
push eax
lea ecx, [esi + 4]
push ecx
push edx
call fcn.00428f10
mov eax, dword [esi + 8]
add esp, 0xc
test eax, eax
jne 0x489d02
lea ebp, [eax - 2]
jmp 0x489dd4
mov ecx, dword [esi + 0xc]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
call fcn.004b08b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
lea eax, [esp + 0x28]
push eax
call fcn.004b0840
add esp, 4
test eax, eax
jg 0x489d39
mov ebp, 0xfffffffd
jmp 0x489dd4
mov edx, dword [esi]
push eax
lea ecx, [esi + 0x10]
push ecx
push edx
call fcn.00428f10
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
jne 0x489d55
lea ebp, [eax - 2]
jmp 0x489dd4
mov ecx, dword [esi + 0x18]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
call fcn.004b08b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
lea eax, [esp + 0x6c]
push eax
call fcn.004b0840
add esp, 4
test eax, eax
jg 0x489d85
mov ebp, 0xfffffffd
jmp 0x489dd4
mov edx, dword [esi]
push eax
lea ecx, [esi + 0x1c]
push ecx
push edx
call fcn.00428f10
mov eax, dword [esi + 0x20]
add esp, 0xc
test eax, eax
jne 0x489da1
lea ebp, [eax - 2]
jmp 0x489dd4
mov ecx, dword [esi + 0x24]
push ecx
push eax
lea edx, [esp + 0x74]
push edx
call fcn.004b08b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jl 0x489dd4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [edi + 4], eax
mov dword [ecx], esi
mov dword [edx], edi
xor ebp, ebp
mov eax, dword [esp + 0x64]
test eax, eax
je 0x489de5
push eax
call fcn.00420770
add esp, 4
mov eax, dword [esp + 0x80]
test eax, eax
je 0x489df9
push eax
call fcn.00420770
add esp, 4
lea eax, [esp + 0x50]
push eax
call fcn.004b0c10
lea ecx, [esp + 0x2c]
push ecx
call fcn.004b0c10
lea edx, [esp + 0x74]
push edx
call fcn.004b0c10
lea eax, [esp + 0xa0]
push eax
call fcn.004b0c10
lea ecx, [esp + 0xb4]
push ecx
call fcn.004b0c10
lea edx, [esp + 0xc8]
push edx
call fcn.004b0c10
add esp, 0x18
test ebp, ebp
je 0x489e9c
cmp ebp, 0xfffffffc
je 0x489e8a
cmp ebp, 0xfffffffd
je 0x489e78
cmp ebp, 0xfffffffe
je 0x489e66
push 0xffffe001
call fcn.004207c0
add esp, 4
or ebx, 0xffffffff
jmp 0x489ea0
push 0xffffe013
call fcn.004207c0
add esp, 4
or ebx, 0xffffffff
jmp 0x489ea0
push 0xffffe002
call fcn.004207c0
add esp, 4
or ebx, 0xffffffff
jmp 0x489ea0
push 0xffffe005
call fcn.004207c0
add esp, 4
or ebx, 0xffffffff
jmp 0x489ea0
test ebx, ebx
je 0x489eca
mov eax, dword [esp + 0x24]
test eax, eax
je 0x489eb5
mov eax, dword [eax]
push 1
push eax
call fcn.00420960
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x489eca
mov ecx, dword [eax]
push 1
push ecx
call fcn.00420960
add esp, 8
cmp dword [esp + 0x8c], 0
je 0x489ee6
lea edx, [esp + 0x88]
push 0
push edx
call fcn.00428e40
add esp, 8
pop edi
pop ebp
pop esi
mov eax, ebx
pop ebx
add esp, 0xb4
ret
push 0xffffe005
call fcn.004207c0
add esp, 4
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0xb4
ret