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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x178
push ebx
push ebp
push esi
push edi
mov ebx, ecx
call fcn.0057acc0
test eax, eax
je 0x57bcb9
mov edi, dword [ebx + 0x68]
xor ebp, ebp
mov ecx, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebp
call fcn.00572560
test eax, eax
jbe 0x57bcb9
mov dword [esp + 0x34], ebp
nop
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x57b3b2
call fcn.005c5aaf
mov esi, dword [ebx + 0x5c]
add esi, dword [esp + 0x34]
lea ecx, [ebx + 0x2c]
mov dword [esp + 0x18], esi
call fcn.0046d100
movzx ecx, al
push ecx
mov ecx, esi
call fcn.00586820
test eax, eax
je 0x57bca0
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.00572660
fldz
sub eax, 1
fst dword [esp + 0xa8]
fst dword [esp + 0xa4]
fst dword [esp + 0xa0]
fst dword [esp + 0x9c]
fst dword [esp + 0x94]
fst dword [esp + 0x90]
fst dword [esp + 0x8c]
fst dword [esp + 0x88]
fst dword [esp + 0x80]
fst dword [esp + 0x7c]
fst dword [esp + 0x78]
fst dword [esp + 0x74]
fld1
fst dword [esp + 0xac]
fst dword [esp + 0x98]
fst dword [esp + 0x84]
fst dword [esp + 0x70]
je 0x57b62b
sub eax, 1
je 0x57b570
sub eax, 1
fstp st(1)
fstp st(0)
jne 0x57b684
fld dword [ebx + 0xc]
lea edx, [esp + 0x38]
push edx
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp]
call fcn.00583d80
fld dword [ebx + 0xc]
mov ecx, dword [0x6b47a4]
fstp qword [esp + 0x28]
lea eax, [esp + 0x108]
push eax
call fcn.0053d150
fsubr qword [esp + 0x2c]
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00583d80
fld dword [esp + 0x38]
fsub dword [esp + 0x108]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fsub dword [esp + 0x10c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fsub dword [esp + 0x110]
fstp dword [esp + 0x40]
fld dword [esp + 0x3c]
fld dword [esp + 0x38]
fld dword [esp + 0x40]
fld st(2)
fmulp st(3)
fld st(1)
fmulp st(2)
fxch st(2)
faddp st(1)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x633eb8]
fnstsw ax
test ah, 0x41
jne 0x57b684
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call fcn.0058df9f
fldz
fst dword [esp + 0xfc]
lea eax, [esp + 0x38]
fld dword [0x622478]
push eax
lea ecx, [esp + 0x100]
fstp dword [esp + 0x104]
push ecx
lea edx, [esp + 0x138]
push edx
fstp dword [esp + 0x110]
call fcn.00506f20
add esp, 0xc
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x74]
push ecx
call fcn.0058f57f
jmp 0x57b684
fxch st(1)
fst dword [esp + 0xf0]
fst dword [esp + 0xec]
fst dword [esp + 0xe8]
fst dword [esp + 0xe4]
fst dword [esp + 0xdc]
fst dword [esp + 0xd8]
fst dword [esp + 0xd4]
fst dword [esp + 0xd0]
fst dword [esp + 0xc8]
fst dword [esp + 0xc4]
fst dword [esp + 0xc0]
fstp dword [esp + 0xbc]
fst dword [esp + 0xf4]
fst dword [esp + 0xe0]
fst dword [esp + 0xcc]
fstp dword [esp + 0xb8]
call fcn.005138f0
push eax
push 0
lea edx, [esp + 0xc0]
push edx
call fcn.0058edc6
fld dword [esp + 0xb8]
fstp dword [esp + 0x70]
fld dword [esp + 0xbc]
fstp dword [esp + 0x74]
fld dword [esp + 0xc8]
fstp dword [esp + 0x80]
fld dword [esp + 0xcc]
fstp dword [esp + 0x84]
jmp 0x57b684
fstp st(1)
push ecx
fstp st(0)
lea eax, [esp + 0xbc]
fld dword [0x626fc4]
fstp dword [esp]
push eax
call fcn.0058f295
call fcn.005138f0
push eax
push 0
lea ecx, [esp + 0x78]
push ecx
call fcn.0058edc6
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x150]
push ecx
call fcn.0058e8ba
mov ecx, 0x10
lea esi, [esp + 0x148]
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.005726b0
test eax, eax
jne 0x57b696
push eax
push 0x1b
jmp 0x57b6ce
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.00572700
mov ecx, dword [ebx + 0x24]
push ebp
movzx esi, al
call fcn.00572750
mov ecx, dword [0x6b1ff8]
push 1
push 0x1b
movzx edi, al
call fcn.0050e910
mov ecx, dword [0x6b1ff8]
push esi
push 0x13
call fcn.0050e910
push edi
push 0x14
mov ecx, dword [0x6b1ff8]
call fcn.0050e910
fld dword [ebx + 0xc]
lea edx, [esp + 0x114]
push edx
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp]
call fcn.00583d80
fld dword [esp + 0x114]
mov eax, dword [ebx + 4]
fstp dword [esp + 0xa0]
fld dword [esp + 0x118]
push eax
lea ecx, [esp + 0x74]
fstp dword [esp + 0xa8]
fld dword [esp + 0x120]
push ecx
lea edx, [esp + 0x150]
fstp dword [esp + 0xb0]
push edx
call fcn.0058e8ba
lea eax, [esp + 0x70]
mov ecx, 0x10
lea esi, [esp + 0x148]
lea edi, [esp + 0x70]
push eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x6b1ff8]
push 0x100
call fcn.0050f120
lea ecx, [esp + 0x27]
fld1
push ecx
mov ecx, dword [ebx + 0x24]
fst dword [esp + 0x60]
fst dword [esp + 0x64]
push ebp
fst dword [esp + 0x6c]
fstp dword [esp + 0x70]
call fcn.005727a0
test eax, eax
je 0x57b790
movzx edx, byte [esp + 0x27]
mov ecx, dword [0x6b1ff8]
push edx
push 1
push 0
call fcn.0050e990
mov ecx, dword [ebx + 0x24]
lea eax, [esp + 0x5c]
push eax
push ebp
call fcn.00572800
fld1
lea ecx, [esp + 0x6c]
fstp dword [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.00572870
test eax, eax
je 0x57b9c4
mov esi, dword [esp + 0x6c]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], ecx
sub ecx, eax
test ecx, 0xfffffff8
je 0x57b9c4
fld dword [ebx + 0xc]
fstp dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jbe 0x57b7e8
call fcn.005c5aaf
mov ebp, dword [esi + 0xc]
mov edx, dword [esi]
mov dword [esp + 0x120], edx
cmp ebp, dword [esi + 0x10]
jbe 0x57b7fe
call fcn.005c5aaf
mov edi, dword [esi]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebp
test edi, edi
jne 0x57b829
call fcn.005c5aaf
xor eax, eax
add ebp, 8
cmp ebp, dword [eax + 0x10]
ja 0x57b834
test edi, edi
je 0x57b82d
mov edi, dword [edi]
jmp 0x57b82f
mov eax, dword [edi]
jmp 0x57b819
xor edi, edi
cmp ebp, dword [edi + 0xc]
jae 0x57b839
call fcn.005c5aaf
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x57b84d
cmp eax, dword [esp + 0x120]
je 0x57b852
call fcn.005c5aaf
mov edi, dword [esi + 0xc]
cmp ebp, dword [esp + 0x28]
jne 0x57b886
cmp edi, dword [esi + 0x10]
jbe 0x57b865
call fcn.005c5aaf
mov esi, dword [esi]
test esi, esi
jne 0x57b882
call fcn.005c5aaf
cmp edi, dword [esi + 0x10]
jb 0x57b87a
call fcn.005c5aaf
fld dword [edi + 4]
jmp 0x57b9c0
mov esi, dword [esi]
jmp 0x57b870
cmp edi, dword [esi + 0x10]
jbe 0x57b890
call fcn.005c5aaf
mov eax, dword [esi]
test eax, eax
jne 0x57b8c5
call fcn.005c5aaf
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x57b8a7
call fcn.005c5aaf
fld dword [esp + 0x10]
mov ecx, esi
fld dword [edi]
fcompp
fnstsw ax
test ah, 0x41
jne 0x57b8c9
call fcn.00578d10
fld dword [eax + 4]
jmp 0x57b9c0
mov eax, dword [eax]
jmp 0x57b89d
call fcn.0057b0a0
fld dword [esp + 0x10]
fld dword [eax]
mov ecx, esi
fcompp
fnstsw ax
test ah, 5
jp 0x57b8ec
call fcn.0057b0a0
fld dword [eax + 4]
jmp 0x57b9c0
lea eax, [esp + 0x128]
push eax
call fcn.004511f0
lea ecx, [esp + 0x140]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00583ce0
mov ecx, dword [edi + 4]
lea edx, [esp + 0x10]
push edx
mov edx, dword [edi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x60]
push eax
call fcn.0057b2c0
add esp, 0x18
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x50]
call fcn.0047cf70
lea ecx, [esp + 0x4c]
test al, al
je 0x57b94a
call fcn.00583be0
fld dword [eax + 4]
jmp 0x57b9c0
call fcn.0057ae70
lea ecx, [esp + 0x54]
call fcn.00583be0
fld dword [eax]
fsub dword [esp + 0x10]
lea ecx, [esp + 0x54]
fstp qword [esp + 0x10]
call fcn.00583be0
fld dword [eax]
lea ecx, [esp + 0x4c]
fstp qword [esp + 0x28]
call fcn.00583be0
fld dword [eax]
lea ecx, [esp + 0x4c]
fsubr qword [esp + 0x28]
fdivr qword [esp + 0x10]
fstp dword [esp + 0x28]
call fcn.00583be0
fld dword [eax + 4]
lea ecx, [esp + 0x54]
fstp qword [esp + 0x10]
call fcn.00583be0
fld dword [eax + 4]
fsubr qword [esp + 0x10]
lea ecx, [esp + 0x54]
fmul dword [esp + 0x28]
fstp qword [esp + 0x28]
call fcn.00583be0
fld dword [eax + 4]
fadd qword [esp + 0x28]
fstp dword [esp + 0x10]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push ebp
call fcn.00572570
lea ecx, [ebx + 0x2c]
mov edi, eax
call fcn.0046d100
mov ecx, dword [edi + 0xb0]
sub ecx, dword [edi + 0xac]
movzx esi, al
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x57ba05
call fcn.005c5aaf
mov ecx, dword [esp + 0x18]
imul esi, esi, 0x2c
add esi, dword [edi + 0xac]
call fcn.0046d100
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
movzx edi, al
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x57ba3c
call fcn.005c5aaf
mov edx, dword [ebx + 0x5c]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edx + 0x34]
sub ecx, dword [eax + edx + 0x30]
lea eax, [eax + edx + 0x24]
sar ecx, 2
cmp edi, ecx
jae 0x57baba
mov ecx, dword [ebx + 0x60]
sub ecx, edx
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x57ba77
call fcn.005c5aaf
mov ecx, dword [ebx + 0x5c]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + ecx + 0x34]
sub eax, dword [edx + ecx + 0x30]
lea ebp, [edx + ecx + 0x24]
sar eax, 2
cmp edi, eax
jb 0x57ba96
call fcn.005c5aaf
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + edi*4]
mov ebp, dword [0x6b1ff8]
mov ecx, edi
call fcn.0051c420
mov ecx, eax
call fcn.004e59a0
push eax
push 0
mov ecx, ebp
call fcn.0050e950
fld dword [esi + 4]
fmul dword [esp + 0x10]
fstp dword [esp + 0x68]
fld1
fld dword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x57baeb
fstp st(0)
mov edi, 0xff
fld qword [0x6221e0]
fld qword [0x6221e8]
fldz
jmp 0x57bb42
fldz
fcom st(1)
fnstsw ax
test ah, 1
jne 0x57bb0c
fstp st(1)
xor edi, edi
fld qword [0x6221e0]
fld qword [0x6221e8]
fxch st(1)
fxch st(2)
jmp 0x57bb42
fld qword [0x6221e8]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2), st(0)
or eax, 0xc00
fld qword [0x6221e0]
mov dword [esp + 0x18], eax
fadd st(3), st(0)
fldcw word [esp + 0x18]
fxch st(3)
fistp qword [esp + 0x18]
mov edi, dword [esp + 0x18]
fldcw word [esp + 0x10]
fxch st(1)
fld dword [esp + 0x60]
fcom st(4)
fnstsw ax
test ah, 1
jne 0x57bb58
fstp st(0)
mov edx, 0xff
jmp 0x57bb8d
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x57bb67
fstp st(0)
xor edx, edx
jmp 0x57bb8d
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
fadd st(3)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov edx, dword [esp + 0x18]
fldcw word [esp + 0x10]
fld dword [esp + 0x64]
fcom st(4)
fnstsw ax
test ah, 1
jne 0x57bba3
fstp st(0)
mov ecx, 0xff
jmp 0x57bbd8
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x57bbb2
fstp st(0)
xor ecx, ecx
jmp 0x57bbd8
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
fadd st(3)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fldcw word [esp + 0x10]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fstp st(4)
test ah, 1
jne 0x57bbf6
fstp st(3)
mov eax, 0xff
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x57bc2f
fcomp st(3)
fnstsw ax
test ah, 1
jne 0x57bc09
fstp st(2)
xor eax, eax
fstp st(1)
fstp st(0)
jmp 0x57bc2f
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmulp st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
faddp st(1)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
fldcw word [esp + 0x10]
shl eax, 8
or eax, edi
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov ecx, dword [0x6b1ff8]
push eax
push 0x3c
call fcn.0050e910
mov ecx, dword [0x6b1ff8]
push 0x102
call fcn.0050e9e0
mov ecx, dword [esi + 0x24]
sub ecx, dword [esi + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x57bc7a
call fcn.005c5aaf
mov ecx, dword [esi + 0x20]
mov eax, 0xaaaaaaab
mul dword [esi + 0x10]
push 0x14
push ecx
mov ecx, dword [0x6b1ff8]
shr edx, 1
push edx
push 4
call fcn.0050ebf0
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
add dword [esp + 0x34], 0x3c
inc ebp
mov ecx, edi
mov dword [esp + 0x44], ebp
call fcn.00572560
cmp ebp, eax
jb 0x57b390
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret