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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
mov eax, dword [0xee37e4]
xor eax, esp
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 8]
push esi
mov dword [esp + 0x38], eax
lea esi, [ebp + 0x18]
mov eax, dword [ebp + 0xc]
push edi
mov dword [esp + 0x58], eax
lea edi, [esp + 0x60]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x14]
push 6
pop ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x56d0b3
movss xmm3, dword [esp + 0x64]
movss xmm1, dword [0xed1480]
movaps xmm0, xmm3
movss xmm2, dword [0xed02c0]
andps xmm0, xmm1
comiss xmm2, xmm0
movss xmm4, dword [esp + 0x60]
jbe 0x56c8db
movss xmm0, dword [esp + 0x68]
andps xmm0, xmm1
comiss xmm2, xmm0
ja 0x56c8f4
movaps xmm0, xmm4
andps xmm0, xmm1
comiss xmm2, xmm0
movss xmm0, dword [esp + 0x6c]
jbe 0x56c8fe
andps xmm0, xmm1
comiss xmm2, xmm0
jbe 0x56c8fe
mov dword [esp + 0x34], 1
jmp 0x56c903
and dword [esp + 0x34], 0
movaps xmm0, xmm4
mulss xmm3, xmm3
mulss xmm0, xmm4
addss xmm0, xmm3
cvtps2pd xmm0, xmm0
call fcn.00726ea0
mov edi, dword [esp + 0xc]
xor eax, eax
cmp dword [esp + 0x34], eax
mov esi, dword [ebp + 0x38]
cvtsd2ss xmm0, xmm0
mov edi, dword [edi + 0x10]
cmovne esi, eax
mov dword [esp + 0x30], edi
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x18], xmm0
comiss xmm0, xmm1
movss xmm0, dword [esp + 0x68]
movss xmm1, dword [esp + 0x6c]
cmova esi, dword [ebp + 0x38]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.00726ea0
mov eax, dword [esp + 0xc]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x28], ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
cmova esi, dword [ebp + 0x38]
test byte [eax + 0x1b], 1
mov dword [esp + 0x10], esi
jne 0x56c9c1
movss xmm1, dword [esp + 0x18]
lea eax, [edi + edi]
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
cmova esi, eax
lea eax, [ecx + ecx]
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
cmova esi, eax
mov dword [esp + 0x10], esi
sub esp, 0x18
lea esi, [esp + 0x78]
lea eax, [esp + 0xb8]
push 6
pop ecx
mov edi, esp
sub esp, 0x10
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov esi, 0xd061f4
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0050bf11
add esp, 0x1c
mov esi, eax
mov edi, esp
lea eax, [esp + 0xa0]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0050b8d9
mov esi, dword [esp + 0x50]
add esp, 4
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
mov edi, esp
lea eax, [esp + 0xb0]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0050bcea
mov esi, eax
lea edi, [esp + 0xc4]
add esp, 0x24
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xa0]
mov ecx, eax
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], eax
test edi, edi
je 0x56ca57
cmp dword [edi + 8], ecx
cmovg eax, dword [edi + 8]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x40]
test esi, esi
je 0x56ca6a
cmp dword [esi + 8], eax
cmovg eax, dword [esi + 8]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xa4]
mov eax, edx
test edi, edi
je 0x56ca7e
cmp dword [edi + 0xc], eax
cmovg edx, dword [edi + 0xc]
test esi, esi
je 0x56ca89
cmp dword [esi + 0xc], edx
cmovg edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], ecx
test edi, edi
je 0x56caab
mov eax, dword [edi + 8]
add eax, dword [edi + 0x10]
cmp eax, ecx
cmovl ecx, eax
mov dword [esp + 0x44], ecx
test esi, esi
je 0x56cabe
mov eax, dword [esi + 8]
add eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [esp + 0x14]
cmp ecx, eax
jle 0x56d0b3
sub ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], ecx
test edi, edi
je 0x56caf2
mov eax, dword [edi + 0xc]
add eax, dword [edi + 0x14]
cmp eax, ecx
cmovl ecx, eax
mov dword [esp + 0x2c], ecx
test esi, esi
je 0x56cb05
mov eax, dword [esi + 0xc]
add eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
cmovl ecx, eax
cmp ecx, edx
jle 0x56d0b3
movd xmm0, dword [esp + 0x30]
lea esi, [esp + 0x60]
movss xmm2, dword [0xed0468]
lea edi, [esp + 0xa0]
cvtdq2ps xmm0, xmm0
lea eax, [esp + 0xa0]
sub ecx, edx
mov dword [esp + 0x2c], ecx
push 6
pop ecx
movaps xmm1, xmm2
sub esp, 0x18
divss xmm1, xmm0
push 6
movd xmm0, dword [esp + 0x44]
cvtdq2ps xmm0, xmm0
rep movsd dword es:[edi], dword [esi]
divss xmm2, xmm0
lea esi, [esp + 0xbc]
pop ecx
mov edi, esp
push eax
movss xmm0, dword [esp + 0x7c]
mulss xmm0, xmm1
movss dword [esp + 0xbc], xmm0
movss xmm0, dword [esp + 0xc0]
mulss xmm0, xmm1
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm2
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [esp + 0xc8]
mulss xmm0, xmm2
movss dword [esp + 0xc8], xmm0
rep movsd dword es:[edi], dword [esi]
call fcn.0050b703
movss xmm0, dword [0xed09dc]
lea edi, [esp + 0x7c]
add esp, 0x1c
movd xmm5, edx
mov esi, eax
cvtdq2ps xmm5, xmm5
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
movss xmm2, dword [esp + 0x60]
movaps xmm1, xmm5
mov ecx, dword [esp + 0x14]
movss xmm7, dword [esp + 0x64]
movss xmm4, dword [esp + 0x68]
movss xmm6, dword [esp + 0x6c]
mulss xmm2, xmm0
mulss xmm7, xmm0
cvttss2si eax, xmm2
mulss xmm4, xmm0
mov dword [esp + 0x48], eax
movd xmm3, ecx
cvtdq2ps xmm3, xmm3
mulss xmm6, xmm0
cvttss2si eax, xmm7
mulss xmm1, xmm4
movaps xmm0, xmm3
mov dword [esp + 0x78], eax
mulss xmm0, xmm2
cvttss2si eax, xmm4
addss xmm4, xmm2
mulss xmm5, xmm6
mov dword [esp + 0x84], eax
addss xmm1, xmm0
mulss xmm3, xmm7
movss xmm0, dword [esp + 0x70]
mulss xmm0, dword [0xed09dc]
mulss xmm4, dword [0xed03c0]
addss xmm5, xmm3
addss xmm1, xmm0
movss xmm0, dword [esp + 0x74]
cvttss2si eax, xmm6
addss xmm1, xmm4
mov dword [esp + 0x88], eax
cvttss2si eax, xmm1
mov dword [esp + 0x50], eax
mulss xmm0, dword [0xed09dc]
addss xmm6, xmm7
mov esi, ecx
mov ecx, dword [esp + 0x4c]
addss xmm5, xmm0
mulss xmm6, dword [0xed03c0]
addss xmm5, xmm6
cvttss2si eax, xmm5
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
sub esi, dword [eax + 8]
movzx edi, byte [eax + 0x18]
mov eax, edx
sub eax, dword [ecx + 0xc]
imul eax, dword [ecx + 0x1c]
imul esi, edi
add esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x14]
add esi, dword [eax + 0x30]
mov dword [esp + 0x3c], esi
movzx esi, byte [eax + 0x1a]
sub edi, esi
mov dword [esp + 8], esi
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x80], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x7c], eax
movzx eax, byte [edi + 0x1a]
movzx edi, byte [edi + 0x18]
mov dword [esp + 0x18], edi
sub edi, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], edi
test eax, eax
je 0x56cd2f
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x34], edi
mov edi, edx
sub edi, dword [eax + 0xc]
imul edi, dword [esp + 0x34]
sub edi, dword [eax + 8]
add edi, dword [eax + 0x30]
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x56cd39
and dword [esp + 0x34], 0
and dword [esp + 0x14], 0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x56cd5e
sub edx, dword [eax + 0xc]
mov edi, dword [eax + 0x1c]
imul edx, edi
mov dword [esp + 0x40], edi
sub edx, dword [eax + 8]
add edx, dword [eax + 0x30]
add edx, ecx
mov dword [esp + 0x58], edx
mov edi, edx
jmp 0x56cd65
and dword [esp + 0x40], 0
xor edi, edi
mov eax, dword [esp + 0x30]
mov edx, 0x20000
mov ecx, dword [esp + 0x28]
cmp eax, edx
jge 0x56d09d
cmp ecx, edx
jge 0x56d09d
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], edx
jne 0x56cda2
test ecx, ecx
je 0x56cda2
xor edx, edx
mov dword [esp + 0x5c], 1
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x24]
cmp eax, 3
jne 0x56ce28
lea eax, [edx + 1]
cmp dword [esp + 0x18], eax
jne 0x56cdf4
test ecx, ecx
mov ecx, dword [esp + 0x38]
jne 0x56cdf8
call fcn.0055980d
test eax, eax
jne 0x56cdf8
push dword [esp + 0x20]
cmp dword [esp + 0x14], eax
je 0x56cde1
sub esp, 0xc
mov ecx, esi
call fcn.005602b3
add esp, 0x10
jmp 0x56cfa8
cvttss2si eax, xmm7
push ecx
mov ecx, esi
push eax
push dword [esp + 0x54]
call fcn.0056a049
jmp 0x56cdd9
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x5c], eax
je 0x56cea2
test edx, edx
je 0x56ce55
cmp dword [esp + 0x1c], 0
je 0x56ce3a
call fcn.0055980d
test eax, eax
je 0x56ce2e
mov esi, 0x56b504
jmp 0x56cfbe
mov ecx, dword [esp + 0x38]
jmp 0x56cdfc
mov esi, 0x56b2e2
mov eax, 0x56b08b
jmp 0x56ce6f
mov edx, dword [esp + 0xc]
push ecx
push dword [esp + 0x24]
mov ecx, esi
sub esp, 0x10
call fcn.0055efa7
add esp, 0x18
jmp 0x56cfa8
cmp dword [esp + 0x1c], 0
je 0x56ce85
call fcn.0055980d
test eax, eax
je 0x56ce79
mov esi, 0x56c2b0
mov eax, 0x56c140
cmp dword [esp + 8], 0
jmp 0x56cf86
mov esi, 0x56c027
mov eax, 0x56bed2
jmp 0x56ce6f
mov edx, dword [esp + 0xc]
push ecx
push dword [esp + 0x24]
cvttss2si eax, xmm7
push ecx
push ecx
mov ecx, esi
push eax
push dword [esp + 0x5c]
call fcn.005683ca
jmp 0x56ce4d
test edx, edx
je 0x56cf1d
cmp dword [esp + 0x1c], 0
je 0x56cf05
call fcn.0055980d
test eax, eax
jne 0x56ce1e
mov eax, dword [esp + 0x24]
sub eax, 0
je 0x56cefe
sub eax, 1
je 0x56ceef
dec eax
sub eax, 1
je 0x56cee3
sub eax, 1
jne 0x56ce2e
mov esi, 0x56ae7e
mov eax, 0x56ac42
jmp 0x56ce6f
mov esi, 0x56a7f9
mov eax, 0x56aa06
jmp 0x56ce6f
mov esi, 0x56a602
mov eax, 0x56a3f8
jmp 0x56ce6f
mov eax, 0x56a20a
jmp 0x56cf80
mov edx, dword [esp + 0xc]
push ecx
push dword [esp + 0x24]
push eax
push ecx
push ecx
mov ecx, esi
call fcn.0055ec7b
jmp 0x56cfa5
cmp dword [esp + 0x1c], 0
je 0x56cf8b
call fcn.0055980d
test eax, eax
jne 0x56ce65
mov eax, dword [esp + 0x24]
sub eax, 0
je 0x56cf7b
sub eax, 1
je 0x56cf6c
dec eax
sub eax, 1
je 0x56cf5d
sub eax, 1
jne 0x56ce79
mov esi, 0x56bdbe
mov eax, 0x56bc88
jmp 0x56ce6f
mov esi, 0x56bb74
mov eax, 0x56ba3e
jmp 0x56ce6f
mov esi, 0x56b961
mov eax, 0x56b859
jmp 0x56ce6f
mov eax, 0x56b77e
xor esi, esi
cmp dword [esp + 8], esi
cmovne esi, eax
jmp 0x56cfae
mov edx, dword [esp + 0xc]
push ecx
push dword [esp + 0x24]
mov ecx, esi
push eax
cvttss2si eax, xmm7
push eax
push dword [esp + 0x58]
call fcn.00567d7f
add esp, 0x14
mov edx, dword [esp + 0x10]
mov esi, eax
test esi, esi
je 0x56d0b3
test edx, edx
je 0x56d087
mov ecx, dword [esp + 0x30]
mov edx, 0x2000
cvttss2si eax, xmm1
shl ecx, 0xe
add ecx, edx
mov dword [esp + 0x30], ecx
sub eax, edx
mov dword [esp + 0x50], eax
cvttss2si eax, xmm5
sub eax, edx
mov edx, dword [esp + 0x28]
shl edx, 0xe
add edx, 0x2000
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], edx
jmp 0x56d08f
push dword [esp + 0x38]
dec eax
push edi
push dword [esp + 0x1c]
mov dword [esp + 0x38], eax
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x70]
push dword [esp + 0x3c]
push dword [esp + 0x60]
push dword [esp + 0x98]
push dword [esp + 0x6c]
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [esp + 0x3c]
push dword [esp + 0xb0]
push edx
push ecx
push dword [esp + 0xc0]
push dword [esp + 0x4c]
push dword [esp + 0x84]
call esi
mov ecx, dword [esp + 0x98]
add esp, 0x4c
mov eax, dword [esp + 0x3c]
add edi, dword [esp + 0x40]
add eax, dword [ecx + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x84]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x88]
add dword [esp + 0x54], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x56cffa
jmp 0x56d0b3
push ecx
push eax
push str.image_too_large_for_fixed_point_math:__d_x__d
push dword [esp + 0x98]
call fcn.004f6fc4
add esp, 0x10
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
xor ecx, esp
call fcn.006f3e28
mov esp, ebp
pop ebp
ret