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

Disassembly:
sub esp, 0xc0
mov eax, dword [0x5801d4]
xor eax, esp
mov dword [esp + 0xbc], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0xa4]
mov ecx, dword [eax + 0xc8]
mov dword [eax + 0xc8], 1
cmp dword [esi + 0x1d4], 0
push edi
mov dword [esp + 0x2c], ecx
jne 0x489906
cmp dword [esi + 0x1d8], 0
je 0x489911
push 0
push 1
mov ecx, esi
call fcn.004868d0
cmp dword [esp + 0xd4], 0
mov edx, dword [0x5b3548]
mov dword [0x5b3548], 0
mov eax, dword [esi + 0xa4]
mov ebp, dword [eax + 0x170]
mov ecx, dword [esi + 0x70]
mov ebx, dword [esi + 0x6c]
mov edi, dword [eax + 0x16c]
mov dword [esp + 0x38], ebp
mov ebp, dword [eax + 0x174]
mov dword [esp + 0x3c], ebp
mov ebp, dword [eax + 0x178]
mov dword [esp + 0x40], ebp
mov ebp, dword [eax + 0x17c]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x168]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x44], ebp
je 0x489986
push 0
push 0
push edi
push edx
mov ecx, esi
call fcn.0048ab60
jmp 0x4899cd
mov edx, dword [eax + 0x294]
dec edx
cmp ecx, edx
jge 0x489993
mov edx, ecx
mov dword [esi + 0x70], edx
mov eax, dword [eax + 0x2e0]
mov edi, edx
shl edi, 5
mov eax, dword [eax + edi]
dec eax
cmp ebx, eax
mov edi, ebx
jl 0x4899ad
mov edi, eax
test edi, edi
jge 0x4899b5
xor eax, eax
jmp 0x4899bb
cmp ebx, eax
jge 0x4899bb
mov eax, ebx
mov dword [esi + 0x6c], eax
cmp ecx, edx
jne 0x4899c6
cmp ebx, eax
je 0x4899cd
mov ecx, esi
call fcn.004821e0
push 1
mov ecx, esi
call fcn.004897b0
mov ecx, dword [esi + 0xa4]
test eax, eax
je 0x4899f8
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [ecx + 0xc8], edx
mov dword [0x5b3548], eax
jmp 0x48a087
mov edx, dword [ecx + 0x168]
mov eax, dword [ecx + 0x16c]
mov edi, dword [ecx + 0x178]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x174]
push edx
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x170]
push eax
mov dword [esp + 0x44], edx
lea edx, [esp + 0x18]
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x24]
mov dword [esp + 0x4c], edi
mov edi, dword [ecx + 0x17c]
push eax
mov dword [esp + 0x54], edi
call fcn.0046aaf0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x489a81
cmp dword [esp + 0x10], 0
jne 0x489a81
mov ecx, dword [esi + 0xa4]
push eax
call fcn.00469060
test eax, eax
mov eax, dword [esp + 0x18]
je 0x489a81
mov ecx, dword [esi + 0xa4]
dec eax
push eax
mov dword [esp + 0x1c], eax
call fcn.00483200
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x138]
mov edx, dword [esi + 0x13c]
mov dword [esp + 0x60], ecx
mov ecx, eax
sub ecx, dword [esi + 0x78]
mov dword [esp + 0x64], edx
imul ecx, dword [0x589ccc]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xa4]
push eax
call fcn.00482000
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0xa4]
push edx
call fcn.00483200
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
test edi, edi
jle 0x489dfb
mov eax, dword [esi + 0xa4]
mov ebx, dword [eax + 0xec]
imul ebx, ebx, 0x154
cmp dword [ebx + 0x584d74], 0
jne 0x489c4a
cmp dword [eax + 0xb8], 0
jne 0x489c4a
cmp dword [0x5b35e0], 0
je 0x489beb
cmp dword [esp + 0xdc], 0
je 0x489bc4
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + edi*2]
mov edx, 0x3a
cmp dx, cx
je 0x489bc4
cmp dx, word [eax + edi*2 + 2]
je 0x489bc4
mov edx, 0x40
cmp dx, cx
je 0x489bc4
movzx eax, word [eax + edi*2 - 2]
cmp dx, ax
je 0x489bc4
mov edx, 0x2e
cmp dx, ax
je 0x489bc4
push ecx
call fcn.004739d0
add esp, 4
test eax, eax
je 0x489be7
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xa4]
push eax
call fcn.00483200
mov edi, dword [esp + 0x10]
mov ebp, eax
lea ebx, [edi + 1]
cmp ebx, ebp
jge 0x489beb
mov ecx, dword [esp + 0x14]
lea edi, [ecx + ebx*2]
lea ecx, [ecx]
push edi
call fcn.00473940
add esp, 4
test eax, eax
jne 0x489be7
movzx eax, word [edi]
mov edx, 0x3a
cmp dx, ax
je 0x489bc0
mov ecx, 0x40
cmp cx, ax
je 0x489bc0
inc ebx
add edi, 2
cmp ebx, ebp
jl 0x489b90
jmp 0x489be7
mov edi, dword [esp + 0x10]
dec edi
mov dword [esp + 0x10], edi
test edi, edi
jle 0x489dfb
mov edx, dword [esp + 0x14]
movzx eax, word [edx + edi*2 - 2]
push eax
call fcn.004739d0
add esp, 4
test eax, eax
je 0x489bc0
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x489dfb
cmp dword [0x589cc4], 0
je 0x489dfb
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edi*2]
mov edx, 0x100
cmp ax, dx
jae 0x489dfb
push eax
mov eax, dword [0x5a9d14]
push eax
call fcn.00466870
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
movzx ecx, word [ecx + edx*2]
lea ecx, [ecx + ecx*2]
add esp, 8
cmp eax, dword [ecx*4 + 0x5890c4]
jae 0x489dfb
dec dword [esp + 0x10]
jmp 0x489dfb
cmp dword [ebx + 0x584ccc], 0
lea ebx, [ebx + 0x584c30]
je 0x489c6d
mov ebp, dword [0x57c340]
imul ebp, ebp, 0x154
add ebp, 0x584c30
jmp 0x489c6f
mov ebp, ebx
lea edx, [edi + 1]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + edi*2 - 2]
push ecx
mov ecx, ebp
call fcn.00460770
dec edi
mov dword [esp + 0x10], edi
test eax, eax
jne 0x489c96
test edi, edi
jg 0x489c76
jmp 0x489cb4
test edi, edi
jle 0x489cb4
mov edx, dword [esp + 0x14]
movzx eax, word [edx + edi*2 - 2]
push eax
mov ecx, ebp
call fcn.00460770
test eax, eax
je 0x489cb4
dec edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x20]
movzx ecx, byte [ebx + 0x5a]
mov ebp, eax
sub ebp, edi
cmp ecx, ebp
jle 0x489cfa
sub eax, ecx
js 0x489cfa
mov edx, dword [ebx + 0x90]
push edx
mov edx, dword [esp + 0x20]
sub edx, eax
push edx
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*2]
push eax
push ecx
mov ecx, dword [ebx + 0x3c]
push ecx
call fcn.00466370
add esp, 0x14
test eax, eax
je 0x489cfa
movzx edx, byte [ebx + 0x5a]
sub ebp, edx
jmp 0x489df7
movzx ecx, byte [ebx + 0x58]
cmp ecx, ebp
jle 0x489d3c
mov eax, dword [esp + 0x20]
sub eax, ecx
js 0x489d3c
mov edx, dword [ebx + 0x90]
push edx
mov edx, dword [esp + 0x20]
sub edx, eax
push edx
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*2]
push eax
push ecx
mov ecx, dword [ebx + 0x34]
push ecx
call fcn.00466370
add esp, 0x14
test eax, eax
je 0x489d3c
movzx edx, byte [ebx + 0x58]
sub ebp, edx
jmp 0x489df7
movzx ecx, byte [ebx + 0x5c]
cmp ecx, ebp
jle 0x489d7b
mov eax, dword [esp + 0x20]
sub eax, ecx
js 0x489d7b
mov edx, dword [ebx + 0x90]
push edx
mov edx, dword [esp + 0x20]
sub edx, eax
push edx
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*2]
push eax
push ecx
mov ecx, dword [ebx + 0x44]
push ecx
call fcn.00466370
add esp, 0x14
test eax, eax
je 0x489d7b
movzx edx, byte [ebx + 0x5c]
sub ebp, edx
jmp 0x489df7
movzx ecx, byte [ebx + 0x59]
cmp ecx, ebp
jle 0x489dba
mov eax, dword [esp + 0x20]
sub eax, ecx
js 0x489dba
mov edx, dword [ebx + 0x90]
push edx
mov edx, dword [esp + 0x20]
sub edx, eax
push edx
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*2]
push eax
push ecx
mov ecx, dword [ebx + 0x38]
push ecx
call fcn.00466370
add esp, 0x14
test eax, eax
je 0x489dba
movzx edx, byte [ebx + 0x59]
sub ebp, edx
jmp 0x489df7
movzx eax, byte [ebx + 0x60]
cmp eax, ebp
jle 0x489dfb
mov ecx, dword [esp + 0x20]
sub ecx, eax
js 0x489dfb
mov edx, dword [ebx + 0x90]
push edx
mov edx, dword [esp + 0x20]
sub edx, ecx
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [edx + ecx*2]
mov edx, dword [ebx + 0x54]
push ecx
push eax
push edx
call fcn.00466370
add esp, 0x14
test eax, eax
je 0x489dfb
movzx eax, byte [ebx + 0x60]
sub ebp, eax
add dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
push ecx
mov ecx, dword [esi + 0xa4]
push ebp
call fcn.0046c860
mov edx, dword [esi + 0xa4]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x14]
add edx, 0x108
push edx
mov edx, dword [0x5a9d14]
push eax
push ecx
push edx
call fcn.004668d0
mov edi, eax
mov eax, dword [esi + 0x7c]
imul eax, dword [0x589ce0]
sub edi, eax
mov eax, dword [esp + 0x54]
add esp, 0x14
cmp eax, 0xffffffff
je 0x489e90
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + 0xa4]
push eax
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.0046aaf0
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x18]
jle 0x489e98
cmp dword [esp + 0x54], 0
jne 0x489e98
mov ecx, dword [esi + 0xa4]
push eax
call fcn.00469060
test eax, eax
je 0x489e98
dec dword [esp + 0x24]
jmp 0x489e98
mov dword [esp + 0x24], 0xffffffff
mov ecx, dword [0x589ccc]
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
add ecx, ebx
push ecx
push edx
push ebx
push edi
mov ecx, esi
call fcn.00487d30
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x18], eax
je 0x489ef6
cmp eax, 0xffffffff
jne 0x489ed7
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [0x589ccc]
push eax
push ecx
add edx, ebx
push edx
jmp 0x489eed
sub eax, dword [esi + 0x78]
mov ecx, dword [0x589ccc]
inc eax
imul eax, ecx
push eax
mov eax, dword [esp + 0x64]
push eax
add ecx, ebx
push ecx
push 0
mov ecx, esi
call fcn.00487d30
mov eax, dword [esi + 0xa4]
cmp dword [eax + 0x84], 0
je 0x489fb4
test ebp, ebp
jle 0x489fb4
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x489f51
mov eax, dword [eax + 0x2e0]
mov ecx, ebp
shl ecx, 5
mov edi, dword [eax + ecx + 8]
xor eax, eax
test edx, edx
jle 0x489f4d
mov edi, edi
movzx ecx, word [edi + eax*2]
mov ebx, 9
cmp bx, cx
je 0x489f48
mov ebx, 0x20
cmp bx, cx
jne 0x489f4d
inc eax
cmp eax, edx
jl 0x489f30
cmp eax, edx
jne 0x489fb4
dec ebp
test ebp, ebp
jle 0x489f75
jmp 0x489f60
mov ecx, dword [esi + 0xa4]
push ebp
call fcn.00468ca0
test eax, eax
je 0x489f75
dec ebp
test ebp, ebp
jg 0x489f60
push 0
push ebp
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esi + 0xa4]
lea edx, [esp + 0x24]
push edx
call fcn.0046aaf0
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0x78]
mov edx, dword [0x589ccc]
mov ecx, dword [esi + 0x60]
imul eax, edx
add edx, eax
push edx
mov edx, dword [esi + 0x68]
sub edx, ecx
push edx
neg ecx
push eax
push ecx
mov ecx, esi
call fcn.00487d30
cmp dword [esp + 0xd8], 0
jne 0x489fce
mov ecx, dword [esi + 0xa4]
push 0
push 0
push esi
call fcn.004f1a6c
mov eax, dword [esi + 0x70]
cmp dword [esp + 0x48], eax
jne 0x489fe4
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esi + 0x6c]
je 0x48a062
mov edx, dword [0x5b2f68]
cmp dword [edx + 0x1678], 1
jne 0x48a062
mov ecx, dword [esi + 0xa4]
mov edx, dword [ecx + 0x2e0]
mov ecx, dword [esi + 0x6c]
shl eax, 5
mov edx, dword [eax + edx + 8]
movzx eax, word [edx + ecx*2]
cmp eax, dword [0x5b3090]
je 0x48a062
cmp dword [esi + 0xf4], 0
je 0x48a062
test eax, eax
jl 0x48a062
mov dword [0x5b3090], eax
mov ecx, 0x54dd78
test eax, 0xff00
jne 0x48a038
mov ecx, 0x5481e4
push eax
push ecx
lea eax, [esp + 0x70]
push eax
call dword [0x53d764]
add esp, 0xc
push 1
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [0x5b2f68]
push 4
add ecx, 0xec
call fcn.004eb82e
mov edx, dword [esi + 0xa4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [edx + 0xc8], eax
push 0
mov dword [0x5b3548], ecx
push 0
mov ecx, esi
call fcn.004868d0
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0051767d
add esp, 0xc0
ret 0xc