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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x110
mov eax, dword [esp + 0x14c]
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xcc], ebx
mov eax, dword [esp + 0x134]
fldz
fldz
fldz
fld dword [esp + 0xcc]
fmul st(0)
fld dword [esp + 0x134]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x13c]
fmul st(0)
faddp st(1)
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x148]
fld dword [esp + 0xc8]
fmul st(0)
faddp st(1)
fsqrt
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x154]
mov edi, dword [esp + 0x158]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x140]
mov eax, edx
mov dword [esp + 0xdc], edi
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xd4], esi
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x15c]
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0x150]
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], esi
fstp dword [esp + 0xe0]
fld dword [esp + 0xe0]
fstp st(3)
fld st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0xc4]
fmul st(0)
fld dword [esp + 0x140]
fmul st(0)
faddp st(1)
fld dword [esp + 0xc0]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0xe0]
fld dword [esp + 0xe0]
fstp st(2)
fld st(1)
fstp dword [esp + 0x30]
fld dword [0x5fd8c8]
fadd st(3)
fstp st(1)
fld dword [0x5fd8c4]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x502c22
fld dword [0x5fd8c4]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp qword [esp + 0xe0]
fldcw word [esp + 0x14]
fld dword [0x5fd8c8]
fadd st(2)
fstp st(1)
fld dword [0x5fd8c4]
fcomp st(1)
fnstsw ax
mov esi, dword [esp + 0xe0]
test ah, 0x45
jne 0x502c6c
fld dword [0x5fd8c4]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
cmp esi, 3
fistp qword [esp + 0xe0]
fldcw word [esp + 0x14]
mov eax, dword [esp + 0xe0]
jbe 0x502c9f
mov esi, 3
cmp eax, 3
mov dword [esp + 4], esi
jbe 0x502cad
mov eax, 3
cmp byte [esp + 0x16c], 0
mov dword [esp + 0xc], eax
je 0x502cd7
cmp esi, 1
jbe 0x502cc5
mov esi, 1
cmp eax, 1
mov dword [esp + 4], esi
jbe 0x502cd3
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 0xc]
lea ebx, [esp + 0x103]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fdivr st(3)
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x130]
mov dword [esp + 0xb8], eax
push ebx
push eax
mov eax, dword [esp + 0x134]
push eax
mov dword [esp + 0xc8], eax
push dword [esp + 0x134]
fstp dword [esp + 0x2c]
fild qword [esp + 0xf0]
fdivr st(2)
fstp dword [esp + 0x30]
fcompp
fstp st(0)
call fcn.004b3ae0
add esp, 0x10
cmp byte [esp + 0x103], 0
fstp dword [esp + 0x18]
jne 0x502d83
fld dword [esp + 0xb8]
fsub dword [0x5fd8cc]
fstp dword [esp + 0x18]
cmp dword [esp + 4], 0
mov dword [esp + 0x10], 0
jbe 0x5033d6
fld dword [esp + 0x140]
fmul dword [esp + 0x20]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], edx
fstp dword [esp + 0x98]
fld dword [esp + 0xc4]
fmul dword [esp + 0x20]
fstp dword [esp + 0x9c]
fld dword [esp + 0xc0]
fmul dword [esp + 0x20]
fstp dword [esp + 0xa0]
fld dword [esp + 0x134]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xa4]
fld dword [esp + 0xcc]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xa8]
fld dword [esp + 0xc8]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xac]
mov eax, eax
cmp dword [esp + 0xc], 0
mov dword [esp + 8], 0
jbe 0x5033c4
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa4]
fmul dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x78], ebp
fstp dword [esp + 0x74]
mov dword [esp + 0x94], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x90], esi
mov dword [esp + 0x88], ecx
lea eax, [eax]
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 8]
xor ebx, ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fdivr dword [esp + 0x74]
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], ebp
fstp dword [esp + 0x24]
fild qword [esp + 0xe0]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x7c]
fmul dword [esp + 0x30]
fild qword [esp + 0xe0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x8c]
fdivp st(1)
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x94]
fstp dword [esp + 0x28]
mov dword [esp + 0x70], eax
call fcn.00502490
mov esi, eax
test esi, esi
je 0x5033a8
mov byte [esi + 0x6c], bl
fld dword [esp + 0x54]
fdiv dword [esp + 0x30]
fstp dword [esi]
fld dword [esp + 0x58]
fdiv dword [esp + 0x30]
fstp dword [esi + 4]
fld dword [esp + 0x5c]
fdiv dword [esp + 0x30]
fstp dword [esi + 8]
fld dword [esp + 0x60]
fdiv dword [esp + 0x30]
fstp dword [esi + 0x20]
fld dword [esp + 0x64]
fdiv dword [esp + 0x30]
fstp dword [esi + 0x24]
fld dword [esp + 0x68]
fdiv dword [esp + 0x30]
fstp dword [esi + 0x28]
lea eax, [esi + 0x20]
push eax
lea eax, [esp + 0x108]
push esi
push eax
call fcn.004ba350
mov eax, dword [esp + 0x110]
add esp, 0xc
mov edx, dword [esp + 0x108]
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xe8]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], edx
call fcn.004ba560
fld dword [esp + 0xe8]
fstp dword [esi + 0x10]
fld dword [esp + 0xec]
fstp dword [esi + 0x14]
fld dword [esp + 0xf0]
fstp dword [esi + 0x18]
fld dword [esp + 0xd4]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x86af50]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0xd0]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x86af54]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x128]
faddp st(1)
fstp dword [esi + 0x30]
fld dword [esp + 0x3c]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x86af50]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0x34]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x86af54]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x6c]
faddp st(1)
fstp dword [esi + 0x34]
fld dword [esp + 0x40]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x86af50]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0x38]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x86af54]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x70]
faddp st(1)
fstp dword [esi + 0x38]
call fcn.005a41d0
mov edi, eax
call fcn.005a41d0
movzx eax, ax
fldz
fldz
and eax, 0x7f
add eax, 0xffffffc0
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
movzx eax, di
fmul dword [0x5fd8d0]
and eax, 0x7f
add eax, 0xffffffc0
fadd dword [esp + 0xd8]
fstp dword [esi + 0x48]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
fmul dword [0x5fd8d0]
fadd dword [esp + 0x48]
fstp dword [esi + 0x4c]
fld dword [esp + 0x44]
fadd dword [0x5fd8d4]
fstp dword [esi + 0x50]
fld dword [esp + 0x164]
fcomp dword [0x5fd8d4]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x503226
lea eax, [esi + 0x30]
fld dword [eax + 8]
fsub dword [esp + 0x4c]
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0x50]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0xdc]
fstp dword [esp + 0xf4]
fld st(1)
fstp dword [esp + 0xf8]
fst dword [esp + 0xfc]
fcompp
lea ecx, [esp + 0xf4]
call fcn.004ba560
fldz
fldz
fld dword [esp + 0x164]
fmul dword [esp + 0xfc]
fstp st(1)
fld dword [esp + 0x164]
fmul dword [esp + 0xf8]
fstp st(2)
fld dword [esp + 0x164]
fmul dword [esp + 0xf4]
fadd dword [esi + 0x48]
fstp dword [esi + 0x48]
fld dword [esi + 0x4c]
fadd st(2)
fstp dword [esi + 0x4c]
fld dword [esi + 0x50]
fadd st(1)
fstp dword [esi + 0x50]
fcompp
call fcn.005a41d0
mov ebp, eax
call fcn.005a41d0
mov edi, eax
call fcn.005a41d0
movzx eax, ax
fldz
fldz
and eax, 0x7f
add eax, 0xffffffc0
mov dword [esp + 0xe0], eax
fldz
fild dword [esp + 0xe0]
movzx eax, di
fmul dword [0x5fd8b4]
and eax, 0x7f
add eax, 0xffffffc0
fstp dword [esi + 0x54]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
movzx eax, bp
fmul dword [0x5fd8b4]
and eax, 0x7f
add eax, 0xffffffc0
fstp dword [esi + 0x58]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
fmul dword [0x5fd8b4]
fstp dword [esi + 0x5c]
mov ecx, dword [esp + 0x124]
mov eax, ecx
cmp eax, 1
ja case.default.0x5032b3
jmp dword [eax*4 + 0x5fd910]
mov eax, dword [0x885b48]
jmp 0x503361
lea eax, [esi + 0x30]
fld dword [eax + 8]
fsub dword [esp + 0x4c]
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0x50]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0xdc]
fstp st(3)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0xe0]
fld dword [esp + 0xe0]
fstp st(3)
mov eax, dword [0x885b48]
mov dword [esp + 0xe4], 0
fld dword [0x5fd8d8]
mov dword [esp + 0xe0], eax
fmul st(3)
fild qword [esp + 0xe0]
faddp st(1)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp qword [esp + 0xe0]
fldcw word [esp + 0x14]
mov eax, dword [esp + 0xe0]
mov dword [esi + 0x60], eax
fld dword [esp + 0x18]
fstp dword [esi + 0x64]
mov al, byte [esp + 0x168]
mov byte [esi + 0x6e], al
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
fdivr dword [esp + 0x2c]
fstp dword [esi + 0x68]
fcompp
fstp st(0)
mov byte [esi + 0x6d], 1
inc ebx
cmp ebx, 5
jb 0x502fa2
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0xc]
jb 0x502ed0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 4]
jb 0x502e20
add esp, 0x110
pop ebp
pop edi
pop esi
pop ebx
ret