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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb4
push ebx
push esi
push edi
mov edi, eax
mov esi, ecx
mov eax, dword [esi + 0x46c]
and dword [eax + 0x6f0], 0xffffcfbf
mov eax, dword [0x8d6c00]
cmp ax, 0xffff
mov dword [esp + 0x5c], 0
je 0x56ca76
movzx eax, ax
shl eax, 5
mov ecx, dword [eax + 0x8d725c]
mov dword [esp + 0x5c], ecx
mov eax, dword [esi + 0xca8]
mov edx, dword [esi + 0x1014]
xorps xmm0, xmm0
or eax, 8
mov dword [esi + 0xca8], eax
mov eax, dword [esi + 0x1010]
push edx
push eax
mov ecx, 0x8d68e0
movss dword [esi + 0xc6c], xmm0
movss dword [esi + 0xc58], xmm0
call fcn.004013f0
movss xmm0, dword [esi + 0x40]
movss xmm3, dword [edi]
movss xmm1, dword [esi + 0x44]
movss xmm2, dword [esi + 0x48]
subss xmm3, xmm0
movss xmm0, dword [edi + 4]
subss xmm0, xmm1
movss xmm1, dword [edi + 8]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x18]
subss xmm1, xmm2
fmul dword [esp + 0x18]
movss dword [esp + 0x14], xmm1
fld dword [esp + 0x14]
movss dword [esp + 0x40], xmm3
fmul dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
xorps xmm0, xmm0
mov ebx, eax
test ebx, ebx
faddp st(1)
fld dword [esp + 0x40]
movss dword [esp + 0x48], xmm1
fmul dword [esp + 0x40]
mov eax, dword [esp + 0x48]
movss dword [esp + 0x44], xmm0
mov edx, dword [esp + 0x44]
faddp st(1)
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], edx
fsqrt
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
movss dword [esp + 0x1c], xmm0
fstp dword [esp + 0x14]
je 0x56cc21
call fcn.0042ec20
mov edx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x18], eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
cmp eax, edx
je 0x56cb75
mov ecx, dword [eax + 4]
cmp eax, ecx
je 0x56cc21
mov eax, ecx
cmp eax, edx
jne 0x56cb64
movss xmm0, dword [0x738a90]
comiss xmm0, dword [esp + 0x14]
jb 0x56cc21
call fcn.0042fab0
push eax
mov ecx, ebx
call fcn.00401340
test eax, eax
je 0x56cbe8
lea eax, [esp + 0x3c]
push eax
mov eax, dword [ebx + 0x684]
imul eax, eax, 0x5a0
add eax, 0x8cf6f0
lea ecx, [esp + 0x18]
call fcn.00636f60
mov ecx, dword [esp + 0x14]
push ecx
push 0
lea ecx, [esp + 0x88]
call fcn.00403ff0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
jmp 0x56cc46
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x1b0]
push ecx
fstp dword [esp]
push 0
lea ecx, [esp + 0x88]
call fcn.00403ff0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
jmp 0x56cc46
movss xmm0, dword [0x738d00]
movss xmm1, dword [esp + 0x14]
comiss xmm0, xmm1
jbe 0x56cc46
subss xmm0, xmm1
mulss xmm0, dword [0x738e04]
movss dword [esp + 0x1c], xmm0
mov ax, word [esi + 0xcae]
cmp ax, 0xffff
movss xmm0, dword [esp + 0x1c]
mov dword [esp + 0x18], 0xffff
movss dword [esp + 0x1c], xmm0
mov word [esi + 0xcb0], ax
je 0x56d1b0
mov ecx, dword [0x91a330]
movzx eax, ax
dec ecx
cmp eax, ecx
mov edx, eax
cmovge edx, ecx
test edx, edx
jge 0x56cc8b
xor eax, eax
jmp 0x56cc91
cmp eax, ecx
jl 0x56cc91
mov eax, ecx
mov ecx, dword [0x91a36c]
movzx eax, ax
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 4]
mov dl, byte [eax + 0x4c]
xor ecx, ecx
test dl, dl
mov dword [esp + 0x14], ecx
jbe 0x56d1b0
jmp 0x56ccc0
movsx edx, word [eax + 0x48]
mov eax, dword [0x91a324]
add edx, ecx
xor ecx, ecx
mov cx, word [eax + edx*4 + 2]
cmp cx, 0xffff
mov dword [esp + 0x90], ecx
je 0x56cf2f
mov eax, dword [0x91a320]
movzx ecx, cx
dec eax
cmp ecx, eax
mov edx, ecx
cmovge edx, eax
test edx, edx
jge 0x56ccfc
xor eax, eax
jmp 0x56cd02
cmp ecx, eax
jge 0x56cd02
mov eax, ecx
movss xmm1, dword [esi + 0x40]
movss xmm2, dword [esi + 0x48]
movzx ebx, ax
mov eax, dword [0x91a368]
shl ebx, 4
add ebx, eax
mov eax, dword [ebx + 4]
movss xmm0, dword [eax]
subss xmm0, xmm1
movss xmm1, dword [eax + 8]
subss xmm1, xmm2
xorps xmm2, xmm2
movss dword [esp + 0x64], xmm2
movss dword [esp + 0x60], xmm0
movaps xmm2, xmm1
mulss xmm0, xmm0
mulss xmm2, xmm1
addss xmm0, xmm2
comiss xmm0, dword [0x738d48]
movss dword [esp + 0x68], xmm1
movss dword [esp + 0x94], xmm0
jbe 0x56cd94
fld dword [esp + 0x94]
fsqrt
fdivr dword [0x7389bc]
fld dword [esp + 0x60]
fmul st(1)
fstp dword [esp + 0x60]
fld dword [0x738a54]
fmul st(1)
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fmul st(1)
fstp dword [esp + 0x68]
fstp st(0)
mov dx, word [esi + 0xcae]
lea ecx, [esp + 0xa0]
push ecx
push 0x91a318
mov ecx, edi
call fcn.0050d300
movss xmm0, dword [edi]
subss xmm0, dword [eax]
movzx edx, word [esi + 0xcae]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [edi + 4]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x74], xmm0
movss xmm0, dword [edi + 8]
subss xmm0, dword [eax + 8]
mov eax, dword [ebx + 4]
xor ecx, ecx
mov cx, word [eax + 0x14]
movss dword [esp + 0x78], xmm0
mov dword [esp + 0x98], ecx
movsx ecx, cx
cmp ecx, edx
jne 0x56ce01
mov ax, word [eax + 0x16]
jmp 0x56ce08
mov eax, dword [esp + 0x98]
lea edx, [esp + 0xb0]
push edx
push 0x91a318
mov ecx, edi
mov edx, eax
call fcn.0050d300
movss xmm0, dword [edi]
subss xmm0, dword [eax]
movss xmm1, dword [edi + 4]
subss xmm1, dword [eax + 4]
movss xmm2, dword [edi + 8]
subss xmm2, dword [eax + 8]
movss xmm4, dword [esp + 0x74]
movss xmm3, dword [esp + 0x78]
movaps xmm5, xmm0
mulss xmm5, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm1
addss xmm5, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm5, xmm0
movss xmm0, dword [esp + 0x70]
movaps xmm1, xmm0
mulss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
comiss xmm5, xmm1
jb 0x56cf2f
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [esp + 0x60]
movss xmm1, dword [esp + 0x28]
mulss xmm1, dword [esp + 0x68]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x24]
mulss xmm1, dword [esp + 0x64]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x1c]
comiss xmm1, xmm0
movss dword [esp + 0x9c], xmm0
ja 0x56cf1e
movss xmm0, dword [esi + 0x40]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esi + 0x44]
lea eax, [esp + 0x80]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esi + 0x48]
push eax
mov ecx, ebx
movss dword [esp + 0x8c], xmm0
call fcn.0059cfa0
test eax, eax
je 0x56cf2f
cmp word [esp + 0x18], 0xffff
jne 0x56cf2f
movss xmm0, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
movss dword [esp + 0x1c], xmm0
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x14]
movzx edx, byte [eax + 0x4c]
inc ecx
cmp ecx, edx
mov dword [esp + 0x14], ecx
jl 0x56ccc0
mov ecx, dword [esp + 0x18]
cmp cx, 0xffff
je 0x56d1b0
mov eax, dword [0x91a320]
movzx ecx, cx
dec eax
cmp ecx, eax
mov edx, ecx
cmovge edx, eax
test edx, edx
jge 0x56cf72
xor eax, eax
jmp 0x56cf78
cmp ecx, eax
jge 0x56cf78
mov eax, ecx
movzx edx, word [esi + 0xcb0]
movzx ebx, ax
mov eax, dword [0x91a368]
shl ebx, 4
add ebx, eax
mov eax, dword [ebx + 4]
xor ecx, ecx
mov cx, word [eax + 0x14]
mov dword [esp + 0x3c], ecx
movsx ecx, cx
cmp ecx, edx
jne 0x56cfab
mov ax, word [eax + 0x16]
mov word [esp + 0x1c], ax
jmp 0x56cfb3
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
lea eax, [esi + 0x9e0]
call fcn.0050bda0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x24], eax
movss xmm2, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
movss xmm3, dword [esp + 0x28]
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm1, xmm2
mulss xmm1, xmm2
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x4c]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x20]
movaps xmm4, xmm1
mulss xmm4, xmm1
addss xmm0, xmm4
ucomiss xmm0, dword [0x738a54]
lahf
test ah, 0x44
mov dword [esp + 0x2c], edx
movss dword [esp + 0x3c], xmm0
jnp 0x56d063
fld dword [esp + 0x3c]
fsqrt
fdivr dword [0x7389bc]
fmul dword [ebp + 8]
fchs
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
movss xmm2, dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
movss xmm3, dword [esp + 0x28]
fstp st(0)
mov eax, dword [esi + 0x46c]
mov ecx, dword [eax + 0x1d4]
movss xmm0, dword [edi + 8]
addss xmm1, dword [edi]
addss xmm2, dword [edi + 4]
push ecx
mov ecx, dword [esp + 0x20]
addss xmm0, xmm3
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esi + 0x40]
lea edx, [esp + 0x24]
push edx
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esi + 0x44]
xor edx, edx
mov dx, word [esi + 0xcb0]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esi + 0x48]
lea eax, [esp + 0x88]
push eax
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esi + 0x40]
push ecx
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esi + 0x44]
push edx
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esi + 0x48]
push 0x91a318
lea edi, [esp + 0x88]
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0xa0], xmm0
call fcn.0050d7b0
mov ecx, dword [esp + 0x5c]
push 1
push 0
lea eax, [esi + 0x9e0]
push eax
mov eax, edi
push eax
push esi
push ecx
call fcn.00469960
mov ecx, dword [ebx + 4]
mov dx, word [ecx + 0x14]
movzx eax, word [esi + 0xcb0]
movsx edi, dx
cmp edi, eax
jne 0x56d143
mov cx, word [ecx + 0x16]
jmp 0x56d145
mov ecx, edx
mov edx, dword [esi + 0xca8]
mov word [esi + 0xb14], cx
and edx, 0xfffffffe
or edx, 4
mov dword [esi + 0xca8], edx
lea ecx, [esi + 0xb20]
mov edx, dword [ecx]
mov dword [esi + 0xc8c], 0xffffffff
add esi, 0xbe0
mov dword [esi], edx
mov edx, dword [ecx + 4]
mov dword [esi + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
mov ebx, dword [ebx + 4]
mov cx, word [ebx + 0x14]
movsx edx, cx
cmp edx, eax
jne 0x56d1a5
mov ax, word [ebx + 0x16]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0xca8]
and ecx, 0xfffffffe
push edi
mov edi, esi
mov dword [esi + 0xca8], ecx
call fcn.0056d1e0
pop edi
pop esi
or ax, 0xffff
pop ebx
mov esp, ebp
pop ebp
ret 4