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

Disassembly:
sub esp, 0x188
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x90]
test eax, eax
je 0x577cef
push eax
call fcn.0054b660
add esp, 4
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + 0x18]
test ch, 4
je 0x577e79
mov ecx, dword [esp + 0x19c]
call fcn.005b6de0
mov ecx, dword [esp + 0x1a0]
push 0
push ecx
call fcn.0054a510
mov eax, dword [0x830728]
add esp, 8
test eax, 0x40000
jne 0x577dd9
or eax, 0x40001
mov dword [0x831294], 0x3f800000
mov dword [0x831298], 0
mov dword [0x83129c], 0
mov dword [0x8312a0], 0
mov dword [0x8312a4], 0
mov dword [0x8312a8], 0x3f800000
mov dword [0x8312ac], 0
mov dword [0x8312b0], 0
mov dword [0x8312b4], 0
mov dword [0x8312b8], 0
mov dword [0x8312bc], 0x3f800000
mov dword [0x8312c0], 0
mov dword [0x8312c4], 0
mov dword [0x8312c8], 0
mov dword [0x8312cc], 0
mov dword [0x8312d0], 0x3f800000
mov dword [0x830728], eax
lea edx, [esi + 0xa8]
lea ecx, [esp + 0x2c]
push edx
call fcn.0051a980
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 4]
mov eax, dword [esp + 0x30]
cmp eax, ecx
je 0x578773
mov edx, dword [esi + 0x94]
mov edi, dword [eax + 0xc]
push edx
call fcn.00578780
mov al, byte [edi + 0x24]
add esp, 4
test al, al
je 0x577e34
mov ax, word [edi + 0x20]
mov dx, word [edi + 0x18]
mov cx, word [edi + 0x1c]
push eax
mov ax, word [edi + 0x10]
sub dx, 2
push ecx
push edx
push eax
call fcn.0054aaa0
jmp 0x577e53
mov cx, word [edi + 0x20]
mov dx, word [edi + 0x1c]
push ecx
mov eax, 0xaaaaaaab
push edx
mul dword [edi + 0x18]
mov ax, word [edi + 0x10]
shr edx, 1
push edx
push eax
call fcn.0054aa80
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
add edx, 4
add esp, 0x10
mov eax, dword [ecx + 4]
cmp eax, edx
mov dword [esp + 0x30], eax
jne 0x577dfc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8
mov ebx, dword [esp + 0x19c]
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x5784ee
mov al, byte [0x8095c0]
test al, al
je 0x5784ee
push 0x430560
push 3
lea eax, [esp + 0xf4]
push 0x10
push eax
mov dword [0x836884], 0
call fcn.00401000
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x4c]
lea edi, [esi + 0x1c]
lea eax, [esp + 0xec]
push eax
mov ecx, edi
call fcn.005f5dc0
push 0x5546e0
push 3
lea ecx, [esp + 0x124]
push 0xc
push ecx
call fcn.00401000
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x14c], edx
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x150], eax
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x154], edx
lea eax, [ecx + 0x24]
lea edx, [esp + 0x140]
cmp edx, eax
jne 0x577f2e
mov edx, dword [eax]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x18]
fld dword [esp + 0xf4]
fmul dword [eax + 8]
fld dword [esp + 0xf0]
fmul dword [eax + 4]
lea edx, [esp + 0x11c]
push edx
push ecx
faddp st(1)
fld dword [esp + 0xf4]
fmul dword [eax]
faddp st(1)
fadd dword [esp + 0x100]
fstp dword [esp + 0x148]
fld dword [esp + 0x10c]
fmul dword [eax + 8]
fld dword [esp + 0x108]
fmul dword [eax + 4]
faddp st(1)
fld dword [esp + 0x104]
fmul dword [eax]
faddp st(1)
fadd dword [esp + 0x110]
fstp dword [esp + 0x14c]
fld dword [esp + 0x11c]
fmul dword [eax + 8]
fld dword [esp + 0x118]
fmul dword [eax + 4]
faddp st(1)
fld dword [esp + 0x114]
fmul dword [eax]
lea eax, [esp + 0xf4]
push eax
faddp st(1)
fadd dword [esp + 0x124]
fstp dword [esp + 0x154]
call fcn.005ff340
fld dword [esp + 0x130]
fld dword [esp + 0x13c]
fstp dword [esp + 0x54]
fld dword [esp + 0x148]
fstp dword [esp + 0x58]
add esp, 0xc
fchs
fld dword [esp + 0x48]
fchs
fstp dword [esp + 0x1c]
fld dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
push 0x836878
fchs
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x50], edx
fstp dword [esp + 0x48]
mov eax, dword [ecx + 0x70]
test eax, eax
lea eax, [esp + 0x48]
push eax
je 0x578041
lea edx, [esp + 0x124]
push edx
call fcn.00591870
jmp 0x578046
call fcn.00591690
mov eax, dword [0x836884]
test eax, eax
jle 0x578773
mov ecx, dword [esi + 0x88]
mov edx, 2
test byte [ecx + 0x18], 0x10
je 0x578073
mov bl, byte [0x7fd64c]
test bl, bl
je 0x578073
mov edx, 3
mov ebp, dword [ecx + 0x28]
lea ecx, [eax + eax*2]
xor ebx, ebx
push ecx
push edx
lea ecx, [esp + 0xac]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
call fcn.00552210
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x18]
push edx
call fcn.00552320
mov eax, dword [esi + 0x88]
mov dword [esp + 0x3c], ebx
mov ecx, dword [eax + 0x2c]
mov eax, dword [0x836884]
test eax, eax
mov edx, dword [ecx + 8]
mov dword [esp + 0xe0], edx
jle 0x57827d
mov eax, dword [esp + 0x1c]
lea edx, [eax + 4]
mov dword [esp + 0x40], edx
jmp 0x5780d7
mov edx, dword [esp + 0x40]
mov ecx, dword [0x83687c]
mov eax, dword [esp + 0x3c]
fild dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xb8], 0
xor ebp, ebp
xor ebx, ebx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0xe0]
lea ecx, [eax + ecx*2]
xor eax, eax
mov ax, word [ecx]
mov bp, word [ecx + 2]
mov dword [esp + 0xb4], eax
mov bx, word [ecx + 4]
fild qword [esp + 0xb4]
mov word [edx - 4], ax
mov word [edx - 2], bp
mov word [edx], bx
fstp dword [esp + 0x28]
fcom dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xdc], ecx
fnstsw ax
test ah, 0x41
jne 0x57814d
fstp st(0)
fld dword [esp + 0xdc]
call fcn.0078c320
mov dword [esp + 0x10], eax
mov dword [esp + 0xc4], ebp
fild dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0xc8], ebp
fild qword [esp + 0xc4]
fstp dword [esp + 0x34]
fcom dword [esp + 0x34]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xd8], edx
fnstsw ax
test ah, 0x41
jne 0x578194
fstp st(0)
fld dword [esp + 0xd8]
call fcn.0078c320
mov dword [esp + 0x10], eax
mov dword [esp + 0x54], ebx
fild dword [esp + 0x10]
mov dword [esp + 0x58], ebp
fild qword [esp + 0x54]
fstp dword [esp + 0x38]
fcom dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xe4], eax
fnstsw ax
test ah, 0x41
jne 0x5781d0
fstp st(0)
fld dword [esp + 0xe4]
call fcn.0078c320
fild dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov ebp, eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xd4], ecx
fcom dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x5781fe
fstp st(0)
fld dword [esp + 0xd4]
call fcn.0078c320
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x34]
fild dword [esp + 0x14]
mov dword [esp + 0xe8], edx
fcom dword [esp + 0x34]
fnstsw ax
test ah, 1
je 0x57822a
fstp st(0)
fld dword [esp + 0xe8]
call fcn.0078c320
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 0x14]
mov dword [esp + 0x2c], eax
fcom dword [esp + 0x38]
fnstsw ax
test ah, 1
je 0x578250
fstp st(0)
fld dword [esp + 0x2c]
call fcn.0078c320
mov edx, dword [esp + 0x40]
mov ecx, dword [0x836884]
mov ebx, eax
mov eax, dword [esp + 0x3c]
inc eax
add edx, 6
cmp eax, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
jl 0x5780d3
lea ecx, [esp + 0x18]
call fcn.005523c0
mov eax, dword [esi + 0xb0]
lea ecx, [esi + 0xac]
cmp eax, ecx
jne 0x57829a
xor eax, eax
jmp 0x57829d
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x14]
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0x2c], edx
call fcn.005b6de0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x4c]
push 0x430560
push 4
lea ecx, [esp + 0x6c]
push 0x10
push ecx
call fcn.00401000
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x64], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x70], edx
fld dword [esp + 0x70]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x1c]
fstp dword [esp + 0xb4]
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
fld dword [esp + 0x80]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 0x18]
fstp dword [esp + 0xb8]
mov dword [esp + 0x90], ecx
mov eax, dword [edi + 0x28]
fld dword [esp + 0x90]
fstp dword [esp + 0xbc]
fld dword [esp + 0x6c]
fstp dword [esp + 0xc4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x8c], eax
fld dword [esp + 0x7c]
fstp dword [esp + 0xc8]
fld dword [esp + 0x8c]
fstp dword [esp + 0xcc]
fld dword [esp + 0x68]
mov edx, dword [edi + 0x24]
push 0x430560
fstp dword [esp + 0x58]
fld dword [esp + 0x7c]
fstp dword [esp + 0x5c]
mov dword [esp + 0x8c], edx
push 4
fld dword [esp + 0x90]
fstp dword [esp + 0x64]
fld dword [esp + 0x6c]
fstp dword [esp + 0x20]
fld dword [esp + 0x7c]
fstp dword [esp + 0x24]
fld dword [esp + 0x8c]
fstp dword [esp + 0x28]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0x3f800000
push 0x10
lea edx, [esp + 0x164]
push edx
call fcn.00401000
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [0x831294], eax
mov eax, dword [esp + 0x54]
mov dword [0x831298], ecx
mov ecx, dword [esp + 0x58]
mov dword [0x83129c], edx
mov edx, dword [esp + 0x5c]
mov dword [0x8312a4], eax
mov eax, dword [esp + 0xc4]
mov dword [0x8312a8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [0x8312ac], edx
mov edx, dword [esp + 0xcc]
mov dword [0x8312b4], eax
mov eax, dword [esp + 0xb4]
mov dword [0x8312b8], ecx
mov ecx, dword [esp + 0xb8]
mov dword [0x8312bc], edx
mov edx, dword [esp + 0xbc]
mov dword [0x8312c4], eax
mov eax, dword [0x830728]
mov dword [0x8312c8], ecx
mov ecx, dword [esp + 0x2c]
mov dword [0x8312cc], edx
and eax, 0xfffbffff
lea edx, [esp + 0xa4]
or al, 1
push ecx
push edx
mov dword [0x8312a0], 0
mov dword [0x8312b0], 0
mov dword [0x8312c0], 0
mov dword [0x8312d0], 0x3f800000
mov dword [0x830728], eax
call fcn.0054a630
mov eax, dword [0x836884]
sub ebx, ebp
inc ebx
push ebx
push ebp
push eax
push 0
call fcn.0054aa80
add esp, 0x18
lea ecx, [esp + 0xa4]
call fcn.00552250
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8
mov ecx, ebx
call fcn.005b6de0
mov ecx, dword [esp + 0x1a0]
push 0
push ecx
call fcn.0054a510
add esp, 8
lea edx, [esp + 0x64]
push 0x430560
push 4
push 0x10
push edx
call fcn.00401000
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x70], eax
fld dword [esp + 0x70]
mov dword [esp + 0x6c], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0x38]
fstp dword [esp + 0x54]
mov dword [esp + 0x78], edx
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
fld dword [esp + 0x80]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x34]
fstp dword [esp + 0x58]
mov dword [esp + 0x90], edx
mov ecx, dword [esi + 0x44]
fld dword [esp + 0x90]
fstp dword [esp + 0x5c]
fld dword [esp + 0x6c]
fstp dword [esp + 0x18]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x8c], ecx
fld dword [esp + 0x7c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x8c]
fstp dword [esp + 0x20]
fld dword [esp + 0x68]
mov eax, dword [esi + 0x40]
push 0x430560
fstp dword [esp + 0x48]
fld dword [esp + 0x7c]
fstp dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
push 4
fld dword [esp + 0x90]
fstp dword [esp + 0x54]
fld dword [esp + 0x6c]
fstp dword [esp + 0xac]
fld dword [esp + 0x7c]
fstp dword [esp + 0xb0]
fld dword [esp + 0x8c]
fstp dword [esp + 0xb4]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0x3f800000
push 0x10
lea eax, [esp + 0x164]
push eax
call fcn.00401000
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [0x83129c], eax
mov eax, dword [esp + 0x4c]
mov dword [0x831294], ecx
mov ecx, dword [esp + 0x44]
mov dword [0x8312ac], eax
mov eax, dword [esp + 0x20]
mov dword [0x831298], edx
mov edx, dword [esp + 0x48]
mov dword [0x8312bc], eax
mov eax, dword [esp + 0x5c]
mov dword [0x8312a4], ecx
mov ecx, dword [esp + 0x18]
mov dword [0x8312cc], eax
mov eax, dword [0x830728]
mov dword [0x8312a8], edx
mov edx, dword [esp + 0x1c]
and eax, 0xfffbffff
mov dword [0x8312b4], ecx
mov ecx, dword [esp + 0x54]
mov dword [0x8312b8], edx
mov edx, dword [esp + 0x58]
or al, 1
mov dword [0x8312a0], 0
mov dword [0x8312b0], 0
mov dword [0x8312c0], 0
mov dword [0x8312c4], ecx
mov dword [0x8312c8], edx
mov dword [0x8312d0], 0x3f800000
mov dword [0x830728], eax
mov edi, dword [esi + 0xb0]
lea ebx, [esi + 0xac]
cmp edi, ebx
je 0x578773
jmp 0x578704
mov eax, dword [0x830728]
mov ebp, dword [0x83132c]
mov edx, dword [esi + 0x94]
mov ecx, dword [edi + 0xc]
and ebp, 0xffff
cmp ebp, edx
je 0x57872e
or eax, 0x20000
mov word [0x83132c], dx
mov dword [0x830728], eax
mov al, byte [ecx + 0x24]
mov dx, word [ecx + 0x20]
test al, al
mov ax, word [ecx + 0x1c]
push edx
push eax
je 0x578754
mov dx, word [ecx + 0x18]
mov ax, word [ecx + 0x10]
sub dx, 2
push edx
push eax
call fcn.0054aaa0
jmp 0x578769
mov eax, 0xaaaaaaab
mul dword [ecx + 0x18]
mov cx, word [ecx + 0x10]
shr edx, 1
push edx
push ecx
call fcn.0054aa80
mov edi, dword [edi + 4]
add esp, 0x10
cmp edi, ebx
jne 0x5786ff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8