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

Disassembly:
mov eax, dword fs:[0]
mov ecx, dword [0x8303b4]
push 0xffffffffffffffff
push 0x71768c
push eax
mov dword fs:[0], esp
sub esp, 0x98
test cl, 1
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb4]
push edi
jne 0x4875b8
movsx eax, word [esi + 0x180]
or ecx, 1
mov dword [0x8303b4], ecx
mov dword [0x8303b0], eax
jmp 0x4875bd
mov eax, dword [0x8303b0]
or edi, 0xffffffff
test cl, 2
jne 0x48760a
or ecx, 2
mov dword [0x8303b4], ecx
push 0x8303ac
push 0
lea eax, [eax + eax*2]
shl eax, 2
push 0x42
push eax
push 0
mov dword [esp + 0xc4], 0
call fcn.00423ee0
mov ecx, dword [0x8303b4]
mov dword [0x8303ac], eax
mov eax, dword [0x8303b0]
add esp, 0x14
mov dword [esp + 0xb0], edi
test cl, 4
jne 0x48764e
or ecx, 4
mov dword [0x8303b4], ecx
push 0x8303a8
push 0
lea eax, [eax + eax*2]
shl eax, 2
push 0x42
push eax
push 0
mov dword [esp + 0xc4], 1
call fcn.00423ee0
mov dword [0x8303a8], eax
mov eax, dword [0x8303b0]
add esp, 0x14
mov dword [esp + 0xb0], edi
movsx ecx, word [esi + 0x180]
cmp ecx, eax
jbe 0x48768c
lea eax, [ecx + ecx*2]
shl eax, 2
mov dword [0x8303b0], ecx
mov ecx, dword [0x8303ac]
push eax
push ecx
call fcn.00423f70
mov eax, dword [0x8303b0]
lea edx, [eax + eax*2]
mov eax, dword [0x8303a8]
shl edx, 2
push edx
push eax
call fcn.00423f70
add esp, 0x10
mov ecx, dword [0x8303ac]
push 1
push 0
push 0
push ecx
call fcn.00423f10
mov edx, dword [0x8303a8]
push 1
push 0
push 0
push edx
mov dword [esp + 0x78], eax
call fcn.00423f10
mov ecx, dword [esi + 8]
add esp, 0x20
mov dword [esp + 0x5c], eax
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
push 0x10
push 0
push 0
push eax
call fcn.00423f10
mov edi, dword [esp + 0xd4]
mov ebx, eax
mov eax, dword [edi + 4]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov ecx, dword [eax + 0x11c]
xor ebp, ebp
add esp, 0x10
test ecx, ecx
mov dword [esp + 0x28], ebp
jle 0x4879fa
jmp 0x487760
mov eax, dword [eax + 0x118]
mov eax, dword [eax + ebp*4]
push 8
push 0
push 0
push eax
call fcn.00423f10
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x100]
mov ecx, dword [edx + ebp*4]
mov dword [esp + 0x4c], eax
xor eax, eax
add esp, 0x10
test ecx, ecx
mov dword [esp + 0x38], eax
jle 0x4879cf
jmp 0x4877a0
mov ecx, dword [esp + 0x3c]
movzx edi, word [ecx + eax*2]
mov edx, dword [esi + 0x14c]
mov eax, dword [esi + 0x194]
imul edx, edi
lea ecx, [edx + eax]
mov eax, dword [esi + 0x154]
mov edx, dword [esi + 0x158]
add eax, ecx
add eax, ebx
add ecx, ebx
add ecx, edx
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
mov edx, dword [ecx]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
mov edx, dword [esi + 0x14c]
mov ebp, dword [esi + 0x1a8]
imul edx, edi
mov edi, dword [esi + 0x194]
lea eax, [ecx + edi]
add eax, edx
add eax, ebx
fld dword [eax + ebp]
fst dword [esp + 0x10]
fcomp dword [0x73d700]
fnstsw ax
test ah, 0x44
jnp 0x487950
mov eax, dword [esi + 0x1ac]
add eax, ecx
add eax, edi
add eax, edx
fld dword [eax + ebx]
call fcn.006fae8c
movsx eax, word [esi + eax*2 + 0x1dc]
mov edx, dword [esp + 0xbc]
mov edx, dword [edx]
lea ecx, [eax + eax*2]
lea ebp, [edx + ecx*4]
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx]
lea edi, [eax + eax*8]
lea eax, [esp + 0x40]
push eax
shl edi, 2
add edx, edi
push edx
lea eax, [esp + 0x98]
push eax
call fcn.004a9a60
add esp, 0xc
fld dword [eax]
lea ecx, [esp + 0x6c]
fadd dword [ebp]
push ecx
fld dword [eax + 4]
lea ecx, [esp + 0x30]
fadd dword [ebp + 4]
fld dword [eax + 8]
fadd dword [ebp + 8]
fstp dword [esp + 0x84]
fxch st(1)
fmul dword [esp + 0x14]
fstp dword [esp + 0x70]
fmul dword [esp + 0x14]
fstp dword [esp + 0x74]
fld dword [esp + 0x84]
fmul dword [esp + 0x14]
fstp dword [esp + 0x78]
call fcn.004a9740
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
add ecx, edi
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.004a9a60
fld dword [esp + 0x1c]
fmul dword [eax + 8]
add esp, 0xc
fld dword [esp + 0x10]
lea ecx, [esp + 0x1c]
fmul dword [eax + 4]
fld dword [esp + 0x10]
fmul dword [eax]
lea eax, [esp + 0x60]
push eax
fstp dword [esp + 0x64]
fstp dword [esp + 0x68]
fstp dword [esp + 0x6c]
call fcn.004a9740
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add ecx, 4
cmp ecx, 0x10
mov dword [esp + 0x14], ecx
jl 0x487830
fld dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
lea eax, [edi + edi*2]
shl eax, 2
fstp dword [eax + ecx]
fld dword [esp + 0x30]
fstp dword [eax + ecx + 4]
fld dword [esp + 0x34]
fstp dword [eax + ecx + 8]
mov ecx, dword [esp + 0x5c]
fld dword [esp + 0x1c]
fstp dword [eax + ecx]
fld dword [esp + 0x20]
fstp dword [eax + ecx + 4]
fld dword [esp + 0x24]
fstp dword [eax + ecx + 8]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x38]
mov ecx, dword [edx + 0x100]
mov edx, dword [ecx + ebp*4]
inc eax
cmp eax, edx
mov dword [esp + 0x38], eax
jl 0x4877a0
mov edi, dword [esp + 0xc4]
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x118]
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.00423f30
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x11c]
add esp, 4
inc ebp
cmp ebp, ecx
mov dword [esp + 0x28], ebp
jl 0x487760
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x128]
push 8
push 0
push 0
push eax
call fcn.00423f10
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x12c]
xor ebp, ebp
add esp, 0x10
cmp ecx, ebp
mov dword [esp + 0x18], ebp
jbe 0x487cc8
lea ecx, [ecx]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
movzx ebp, word [ecx + edx*2]
mov eax, dword [esi + 0x14c]
mov ecx, dword [esi + 0x194]
imul eax, ebp
mov edx, dword [esi + 0x158]
add ecx, eax
mov eax, dword [esi + 0x154]
add eax, ecx
add eax, ebx
add ecx, ebx
add ecx, edx
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
mov edx, dword [ecx]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + 8]
xor edi, edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], edi
jmp 0x487ad0
mov ecx, dword [esi + 0x14c]
mov edx, dword [esi + 0x194]
imul ecx, ebp
mov ebp, dword [esi + 0x1a8]
lea eax, [edi + ecx]
add eax, edx
add eax, ebx
fld dword [eax + ebp]
fst dword [esp + 0x10]
fcomp dword [0x73d700]
fnstsw ax
test ah, 0x44
jnp 0x487bee
mov eax, dword [esi + 0x1ac]
add eax, dword [esp + 0x14]
add eax, ecx
add eax, edx
movzx ecx, word [eax + ebx]
movsx eax, word [esi + ecx*2 + 0x1dc]
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
lea edx, [eax + eax*2]
lea ebp, [ecx + edx*4]
lea edi, [eax + eax*8]
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
shl edi, 2
add ecx, edi
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.004a9a60
add esp, 0xc
fld dword [ebp]
lea ecx, [esp + 0x2c]
fadd dword [eax]
fld dword [ebp + 4]
fadd dword [eax + 4]
fld dword [ebp + 8]
fadd dword [eax + 8]
lea eax, [esp + 0x60]
push eax
fstp dword [esp + 0x84]
fxch st(1)
fmul dword [esp + 0x14]
fstp dword [esp + 0x64]
fmul dword [esp + 0x14]
fstp dword [esp + 0x68]
fld dword [esp + 0x84]
fmul dword [esp + 0x14]
fstp dword [esp + 0x6c]
call fcn.004a9740
mov edx, dword [esp + 0xc0]
mov eax, dword [edx]
lea ecx, [esp + 0x4c]
push ecx
add eax, edi
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.004a9a60
fld dword [esp + 0x1c]
fmul dword [eax + 8]
add esp, 0xc
fld dword [esp + 0x10]
lea edx, [esp + 0x6c]
fmul dword [eax + 4]
push edx
fld dword [esp + 0x14]
lea ecx, [esp + 0x20]
fmul dword [eax]
fstp dword [esp + 0x70]
fstp dword [esp + 0x74]
fstp dword [esp + 0x78]
call fcn.004a9740
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
add edi, 4
add ecx, 2
cmp edi, 0x10
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], ecx
jl 0x487ad0
mov al, byte [esp + 0xc8]
test al, al
je 0x487c61
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x40]
fld dword [edx + 0x11c]
lea eax, [esp + 0x84]
fld dword [esp + 0x1c]
push eax
fmul st(1)
lea ecx, [esp + 0x30]
fstp dword [esp + 0x88]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x8c]
fmul dword [esp + 0x28]
fstp dword [esp + 0x90]
call fcn.004a9740
fld dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
lea eax, [ebp + ebp*2]
shl eax, 2
fstp dword [eax + ecx]
fld dword [esp + 0x30]
fstp dword [eax + ecx + 4]
fld dword [esp + 0x34]
fstp dword [eax + ecx + 8]
mov ecx, dword [esp + 0x5c]
fld dword [esp + 0x1c]
fstp dword [eax + ecx]
fld dword [esp + 0x20]
fstp dword [eax + ecx + 4]
fld dword [esp + 0x24]
fstp dword [eax + ecx + 8]
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x12c]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x487a30
mov edi, dword [esp + 0xc4]
xor ebp, ebp
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x128]
push ecx
call fcn.00423f30
mov edx, dword [0x8303ac]
push edx
call fcn.00423f30
mov eax, dword [0x8303a8]
push eax
call fcn.00423f30
mov ecx, dword [esi + 8]
add esp, 0xc
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
push eax
call fcn.00423f30
add esp, 4
call fcn.0045f710
test eax, eax
je 0x487d1c
push 0x84c0
call dword [0x7bb6b0]
mov dword [0x7a6898], ebp
cmp word [esi + 0x182], bp
jle 0x487d3a
mov ecx, dword [0x73f398]
push ecx
call dword [0x73d260]
jmp 0x487d47
mov edx, dword [0x73f398]
push edx
call dword [0x73d264]
movsx eax, word [esi + 0x182]
dec eax
cmp eax, 3
ja case.default.0x487d58
jmp dword [eax*4 + 0x4880b8]
call fcn.0045f710
test eax, eax
je 0x487d73
push 0x84c3
call dword [0x7bb6b0]
mov dword [0x7a6898], 3
mov ecx, dword [esi + 8]
movsx ebx, word [esi + 0x180]
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
mov ecx, dword [esi + 0x16c]
push ebx
push eax
mov eax, dword [esi + 0x194]
add eax, ecx
mov ecx, dword [esi + 0x14c]
push eax
push ecx
call fcn.00425a40
add esp, 0x10
call fcn.0045f710
test eax, eax
je 0x487dc6
push 0x84c2
call dword [0x7bb6b0]
mov dword [0x7a6898], 2
mov ecx, dword [esi + 8]
movsx ebx, word [esi + 0x180]
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
mov edx, dword [esi + 0x194]
push ebx
push eax
add edx, dword [esi + 0x168]
mov eax, dword [esi + 0x14c]
push edx
push eax
call fcn.00425a40
add esp, 0x10
call fcn.0045f710
test eax, eax
je 0x487e17
push 0x84c1
call dword [0x7bb6b0]
mov dword [0x7a6898], 1
mov ecx, dword [esi + 8]
movsx ebx, word [esi + 0x180]
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
mov ecx, dword [esi + 0x194]
mov edx, dword [esi + 0x14c]
push ebx
mov ebx, dword [esi + 0x164]
push eax
add ecx, ebx
push ecx
push edx
call fcn.00425a40
add esp, 0x10
call fcn.0045f710
test eax, eax
je 0x487e6a
push 0x84c0
call dword [0x7bb6b0]
mov dword [0x7a6898], ebp
mov ecx, dword [esi + 8]
movsx ebx, word [esi + 0x180]
call fcn.0043e1c0
mov eax, dword [eax + 0xac]
mov ecx, dword [esi + 0x160]
push ebx
push eax
mov eax, dword [esi + 0x194]
add eax, ecx
mov ecx, dword [esi + 0x14c]
push eax
push ecx
call fcn.00425a40
add esp, 0x10
movsx edx, word [esi + 0x180]
mov eax, dword [0x8303a8]
push edx
push eax
push ebp
push 0xc
call fcn.004259e0
movsx ecx, word [esi + 0x180]
mov edx, dword [0x8303ac]
push ecx
push edx
push ebp
push 0xc
call fcn.00425900
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
add esp, 0x20
call dword [eax + 0x50]
mov ebx, eax
mov al, byte [esp + 0xc8]
test al, al
je 0x487f54
mov dword [0x7a6898], ebp
call fcn.0045f710
test eax, eax
je 0x487f0c
mov ecx, dword [0x7a6898]
add ecx, 0x84c0
push ecx
call dword [0x7bb80c]
mov edx, dword [ebx + 0x44]
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx]
call dword [eax + 0xb4]
mov ecx, dword [ebx + 0x44]
cmp dword [ecx + 0x2c], 1
jle 0x487f2a
push 1
call fcn.0047af70
push edi
call fcn.0046f900
mov ecx, dword [ebx + 0x44]
add esp, 4
call fcn.0047adf0
mov ecx, dword [0x73f274]
mov edx, dword [0x73f270]
push ecx
push edx
call dword [0x73d38c]
jmp 0x48809f
mov eax, dword [ebx + 0x40]
cmp eax, ebp
je 0x487f63
cmp dword [eax + 0x1a8], ebp
jne 0x487f6f
mov ecx, dword [ebx + 0x44]
call fcn.0047b0e0
test al, al
je 0x487f7f
push ebp
push ebp
push edi
call fcn.0046ff70
add esp, 0xc
jmp 0x48809f
mov ecx, dword [ebx + 0x44]
call fcn.0047b8f0
test al, al
je 0x488014
mov ecx, esi
call fcn.0043e410
test al, al
je 0x488014
call fcn.0045fb90
test al, al
je 0x487fc8
push ebp
push ebp
push ebp
push ebp
push 0x17
call dword [0x7a47e0]
push edi
call fcn.0046f900
push ebp
push ebp
push ebp
push ebp
push ebp
call dword [0x7a47e0]
add esp, 0x2c
jmp 0x48809f
mov eax, dword [0x78d44c]
push eax
call dword [0x73d22c]
mov ecx, dword [0x73f27c]
mov edx, dword [0x73f278]
mov esi, dword [0x73d38c]
push ecx
push edx
call esi
push edi
call fcn.0046f900
mov eax, dword [0x73f274]
mov ecx, dword [0x73f270]
add esp, 4
push eax
push ecx
call esi
mov edx, dword [0x78d44c]
push edx
call dword [0x73d390]
jmp 0x48809f
call fcn.0045fb90
test al, al
jne 0x488096
call fcn.0045fbd0
test al, al
jne 0x488096
call fcn.0045f710
test eax, eax
je 0x488096
call fcn.0045f740
test eax, eax
je 0x488096
mov dword [0x7a6898], 1
call fcn.0045f710
test eax, eax
je 0x48805c
mov eax, dword [0x7a6898]
add eax, 0x84c0
push eax
call dword [0x7bb80c]
mov ecx, dword [0x78d458]
push ecx
call dword [0x73d390]
push ebp
push 4
call fcn.00420440
add esp, 8
mov dword [0x7a6898], ebp
call fcn.0045f710
test eax, eax
je 0x488096
mov edx, dword [0x7a6898]
add edx, 0x84c0
push edx
call dword [0x7bb80c]
push edi
call fcn.0046f900
add esp, 4
mov ecx, dword [esp + 0xa8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa4
ret