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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x244
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
xor esi, esi
mov eax, 0x1000
push esi
mov word [esp + 0x186], ax
mov word [esp + 0x1ac], ax
mov word [esp + 0x1ae], ax
mov word [esp + 0x1d4], ax
mov eax, dword [0xf91614]
push esi
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0xc4], 0x3f800000
mov dword [esp + 0xb0], 0x3f800000
mov dword [esp + 0x9c], 0x3f800000
mov dword [esp + 0x88], 0x3f800000
mov edx, dword [eax + 8]
lea ecx, [edx + 0x20]
push esi
push edx
mov edi, edx
mov dword [esp + 0x170], edx
mov dword [eax + 8], ecx
lea edx, [esp + 0x17c]
push edx
xor eax, eax
mov ecx, 8
push 1
mov edx, 0x54
mov word [esp + 0x198], si
mov word [esp + 0x1ea], si
mov word [esp + 0x210], si
mov word [esp + 0x212], si
rep stosd dword es:[edi], eax
call fcn.00515c30
mov eax, dword [esp + 0x178]
mov byte [eax + 0x15], 4
mov eax, dword [0xf9b658]
add esp, 0x18
test eax, 0x2000000
mov byte [esp + 0x164], 1
je 0x50de0c
cmp ebx, esi
jle 0x50e26d
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xc0]
lea eax, [esp + 0x4c]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x154], edx
mov dword [esp + 0x150], eax
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xc0]
lea eax, [esp + 0x3c]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x108], edx
mov dword [esp + 0x158], eax
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xc0]
lea eax, [esp + 0x2c]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edx
mov dword [esp + 0x15c], eax
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xc0]
lea eax, [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x18], eax
add esi, 0x18
lea esp, [esp]
mov ecx, dword [esi - 8]
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x14], edx
jbe 0x50da1f
mov eax, 0xff
shl eax, 8
mov edi, edx
and edi, 0xff
or eax, edi
movzx edi, byte [esp + 0x16]
shl eax, 0x10
or eax, edi
and edx, 0xff00
or eax, edx
mov dword [esp + 0x188], eax
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x14], edx
jbe 0x50da61
mov eax, 0xff
shl eax, 8
mov edi, edx
and edi, 0xff
or eax, edi
movzx edi, byte [esp + 0x16]
shl eax, 0x10
or eax, edi
and edx, 0xff00
or eax, edx
mov dword [esp + 0x1b0], eax
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x14], edx
jbe 0x50daa3
mov eax, 0xff
shl eax, 8
mov edi, edx
and edi, 0xff
or edi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
movzx eax, al
shl edi, 0x10
or edi, eax
mov eax, ecx
shr eax, 0x17
and edx, 0xff00
or edi, edx
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x1d8], edi
mov dword [esp + 0x14], ecx
jbe 0x50dae8
mov eax, 0xff
mov edx, ecx
and edx, 0xff
shl eax, 8
or edx, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
movzx eax, al
shl edx, 0x10
and ecx, 0xff00
or edx, eax
or edx, ecx
mov ecx, dword [esi - 4]
mov dword [esp + 0x200], edx
mov dword [esp + 0x74], ecx
fld dword [esp + 0x74]
fsin
fstp dword [esp + 0x70]
mov edx, dword [esi - 4]
mov dword [esp + 0x12c], edx
fld dword [esp + 0x12c]
fcos
fstp dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
fld dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
fchs
mov edx, eax
fstp dword [esp + 0x84]
mov dword [esp + 0x80], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x90], ecx
mov ecx, dword [ebp + 8]
push eax
mov dword [esp + 0x98], edx
push ecx
lea edx, [esp + 0x88]
push edx
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
call fcn.00401680
fld dword [esi - 0x14]
mov eax, dword [esi - 0x18]
fstp dword [esp + 0x100]
fld dword [esi - 0x10]
add esp, 0xc
fstp dword [esp + 0xf8]
fld dword [esi]
mov dword [esp + 0xf0], eax
fchs
mov dword [esp + 0xfc], 0x3f800000
fst dword [esp + 0x1c]
mov dword [esp + 0x24], 0
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
mov eax, dword [esp + 0x14c]
movups xmm4, xmmword [ecx]
movss xmm0, dword [eax]
movups xmm5, xmmword [ecx + 0x10]
shufps xmm0, xmm0, 0
movss xmm1, dword [eax + 4]
movups xmm6, xmmword [ecx + 0x20]
movss xmm2, dword [eax + 8]
shufps xmm1, xmm1, 0
movups xmm7, xmmword [ecx + 0x30]
shufps xmm2, xmm2, 0
mulps xmm0, xmm4
mulps xmm1, xmm5
mulps xmm2, xmm6
addps xmm0, xmm1
addps xmm0, xmm2
addps xmm0, xmm7
movups xmmword [edx], xmm0
fld dword [esi]
mov ecx, dword [esi]
fchs
mov dword [esp + 0x1c], ecx
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x158]
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x148]
movups xmm4, xmmword [ecx]
movss xmm0, dword [eax]
movups xmm5, xmmword [ecx + 0x10]
shufps xmm0, xmm0, 0
movss xmm1, dword [eax + 4]
movups xmm6, xmmword [ecx + 0x20]
movss xmm2, dword [eax + 8]
shufps xmm1, xmm1, 0
movups xmm7, xmmword [ecx + 0x30]
shufps xmm2, xmm2, 0
mulps xmm0, xmm4
mulps xmm1, xmm5
mulps xmm2, xmm6
addps xmm0, xmm1
addps xmm0, xmm2
addps xmm0, xmm7
movups xmmword [edx], xmm0
mov edx, dword [esi]
mov eax, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x140]
movups xmm4, xmmword [ecx]
movss xmm0, dword [eax]
movups xmm5, xmmword [ecx + 0x10]
shufps xmm0, xmm0, 0
movss xmm1, dword [eax + 4]
movups xmm6, xmmword [ecx + 0x20]
movss xmm2, dword [eax + 8]
shufps xmm1, xmm1, 0
movups xmm7, xmmword [ecx + 0x30]
shufps xmm2, xmm2, 0
mulps xmm0, xmm4
mulps xmm1, xmm5
mulps xmm2, xmm6
addps xmm0, xmm1
addps xmm0, xmm2
addps xmm0, xmm7
movups xmmword [edx], xmm0
fld dword [esi]
mov ecx, dword [esi]
fchs
fstp dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
movups xmm4, xmmword [ecx]
movss xmm0, dword [eax]
movups xmm5, xmmword [ecx + 0x10]
shufps xmm0, xmm0, 0
movss xmm1, dword [eax + 4]
movups xmm6, xmmword [ecx + 0x20]
movss xmm2, dword [eax + 8]
shufps xmm1, xmm1, 0
movups xmm7, xmmword [ecx + 0x30]
shufps xmm2, xmm2, 0
mulps xmm0, xmm4
mulps xmm1, xmm5
mulps xmm2, xmm6
addps xmm0, xmm1
addps xmm0, xmm2
addps xmm0, xmm7
movups xmmword [edx], xmm0
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x170], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x198], edx
mov dword [esp + 0x19c], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x160]
mov dword [esp + 0x1ec], eax
push edx
lea eax, [esp + 0x174]
mov dword [esp + 0x1f4], ecx
call fcn.0050b810
add esi, 0x20
dec ebx
jne 0x50da00
call fcn.00515d10
mov eax, dword [esp + 0x160]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, esi
jle 0x50e26d
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
add esi, 0x18
mov dword [esp + 0x14], ebx
mov ecx, dword [esi - 8]
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x18], edx
jbe 0x50de93
mov eax, 0xff
shl eax, 8
mov ebx, edx
and ebx, 0xff
or ebx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
movzx eax, al
shl ebx, 0x10
or ebx, eax
and edx, 0xff00
or ebx, edx
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18], edx
jbe 0x50deda
mov eax, 0xff
shl eax, 8
mov ebx, edx
and ebx, 0xff
or ebx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
movzx eax, al
shl ebx, 0x10
or ebx, eax
and edx, 0xff00
or ebx, edx
mov edx, ecx
mov eax, edx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x18], edx
jbe 0x50df21
mov eax, 0xff
shl eax, 8
mov ebx, edx
and ebx, 0xff
or eax, ebx
mov ebx, dword [esp + 0x18]
shl eax, 0x10
shr ebx, 0x10
movzx ebx, bl
or eax, ebx
and edx, 0xff00
or eax, edx
mov dword [esp + 0x1d8], eax
mov eax, ecx
shr eax, 0x17
and eax, 0x1fe
cmp eax, 0xff
mov dword [esp + 0x18], ecx
jbe 0x50df66
mov eax, 0xff
shl eax, 8
mov edx, ecx
and edx, 0xff
or eax, edx
mov edx, dword [esp + 0x18]
shr edx, 0x10
shl eax, 0x10
movzx edx, dl
or eax, edx
and ecx, 0xff00
or eax, ecx
mov dword [esp + 0x200], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x7c], eax
fld dword [esp + 0x7c]
fsin
fstp dword [esp + 0x6c]
mov ecx, dword [esi - 4]
mov dword [esp + 0x78], ecx
fld dword [esp + 0x78]
fcos
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fld dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
fchs
mov ecx, edx
fstp dword [esp + 0x84]
mov dword [esp + 0x80], edx
lea edx, [esp + 0xc0]
mov dword [esp + 0x90], eax
mov eax, dword [ebp + 8]
push edx
mov dword [esp + 0x98], ecx
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
call fcn.00401680
fld dword [esi - 0x14]
mov edx, dword [esi - 0x18]
fstp dword [esp + 0x100]
fld dword [esi - 0x10]
push ecx
fstp dword [esp + 0x108]
fld dword [esi]
mov eax, esp
fchs
mov dword [esp + 0x100], edx
fst dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
fst dword [esp + 0x84]
mov ecx, dword [esp + 0x38]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
lea eax, [esp + 0x220]
lea ecx, [esp + 0xd0]
mov dword [esp + 0x10c], 0x3f800000
call fcn.00460320
mov edx, dword [eax]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x4c], edx
fld dword [eax + 4]
fstp dword [esp + 0x50]
fld dword [eax + 8]
sub esp, 0x10
fstp dword [esp + 0x64]
fld dword [eax + 0xc]
mov eax, dword [esi]
fstp dword [esp + 0x68]
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x148]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x14c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea eax, [esp + 0x230]
lea ecx, [esp + 0xd0]
call fcn.00460320
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
fld dword [eax + 4]
fstp dword [esp + 0x40]
fld dword [eax + 8]
sub esp, 0x10
fstp dword [esp + 0x54]
fld dword [eax + 0xc]
mov eax, dword [esi]
mov ecx, eax
mov edx, esp
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x128]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
fstp dword [esp + 0x58]
lea eax, [esp + 0x240]
lea ecx, [esp + 0xd0]
call fcn.00460320
mov edx, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
fld dword [eax + 4]
fstp dword [esp + 0x30]
fld dword [eax + 8]
sub esp, 0x10
fstp dword [esp + 0x44]
fld dword [eax + 0xc]
mov eax, dword [esp + 0x84]
mov edx, esp
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x138]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
fstp dword [esp + 0x48]
lea eax, [esp + 0x250]
lea ecx, [esp + 0xd0]
call fcn.00460320
fld dword [eax]
mov edx, dword [esp + 0x4c]
fst dword [esp + 0x5c]
fld dword [eax + 4]
mov ecx, dword [esp + 0x54]
fst dword [esp + 0x60]
mov dword [esp + 0x170], edx
fld dword [eax + 8]
mov edx, dword [esp + 0x3c]
fstp dword [esp + 0x64]
fld dword [eax + 0xc]
mov eax, dword [esp + 0x50]
fstp dword [esp + 0x68]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x198], edx
mov ecx, dword [esp + 0x44]
fxch st(1)
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x1e8]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x30]
fstp dword [esp + 0x1ec]
mov dword [esp + 0x1c4], eax
lea eax, [esp + 0x160]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x64]
push eax
lea eax, [esp + 0x174]
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1f4], edx
call fcn.0050b810
mov eax, dword [esp + 0x14]
add esi, 0x20
dec eax
mov dword [esp + 0x14], eax
jne 0x50de74
call fcn.00515d10
mov eax, dword [esp + 0x160]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret