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

Disassembly:
sub esp, 0x40
push edi
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x437383
xor al, al
pop edi
add esp, 0x40
ret
cvtss2sd xmm1, dword [esp + 0x5c]
movsd xmm0, qword [0x6dc238]
comisd xmm0, xmm1
ja 0x43737c
cvtss2sd xmm1, dword [esp + 0x60]
comisd xmm0, xmm1
ja 0x43737c
movsx eax, word [edi + 0x14]
test eax, eax
jl 0x43737c
cmp eax, dword [0x7f0be8]
jge 0x43737c
mov ecx, dword [0x7f0be4]
mov edx, dword [ecx + eax*4]
cmp byte [edx + 0x10], 0
je 0x43737c
cmp byte [0xa18efa], 0
push ebx
je 0x4373ef
mov ecx, 0x7f0390
call fcn.0042e630
test eax, eax
je 0x4373ef
mov ecx, 0x7f0390
call fcn.0042e630
mov ecx, eax
call fcn.0042d960
test al, al
je 0x4373ff
mov cl, byte [esp + 0x68]
mov bl, byte [esp + 0x6c]
test cl, cl
jne 0x437464
test bl, bl
jne 0x437464
fld dword [esp + 0x84]
mov eax, dword [esp + 0x80]
push ecx
fstp dword [esp]
push eax
fldz
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [esp + 0x88]
fstp dword [esp + 0x14]
fld dword [esp + 0x84]
fstp dword [esp + 0x10]
fld dword [esp + 0x80]
fstp dword [esp + 0xc]
fld dword [esp + 0x7c]
fstp dword [esp + 8]
fld dword [esp + 0x78]
fstp dword [esp + 4]
fld dword [esp + 0x74]
fstp dword [esp]
push edi
call fcn.00435450
add esp, 0x28
pop ebx
mov al, 1
pop edi
add esp, 0x40
ret
movsx edx, word [edi + 0x10]
movsx eax, word [edi + 0x12]
cvtss2sd xmm1, dword [esp + 0x60]
cvtsi2sd xmm0, edx
mov edx, dword [0x808800]
mulsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x64]
cvtsi2sd xmm2, eax
mov eax, dword [0x808804]
mulsd xmm1, xmm2
push ebp
push esi
mov esi, dword [0x80880c]
cvtsi2ss xmm2, edx
movss dword [esp + 0x78], xmm2
cvtsi2ss xmm2, eax
sub esi, eax
cvtsd2ss xmm0, xmm0
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x7c], xmm2
cvtsi2ss xmm2, esi
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x84], xmm2
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm1
test cl, cl
je 0x437557
mov ecx, dword [0x808808]
fld dword [esp + 0x60]
fsub dword [esp + 0x78]
sub ecx, edx
cvtss2sd xmm2, xmm0
subsd xmm2, qword [0x6d8a40]
cvtsi2ss xmm1, ecx
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
cvtss2sd xmm1, xmm1
fld dword [esp + 0x10]
addsd xmm1, xmm2
cvtss2sd xmm2, xmm0
divsd xmm1, xmm2
addsd xmm1, qword [0x6d9dc0]
cvtss2sd xmm0, xmm0
mulsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp + 0x14], xmm0
call fcn.0069833a
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
movss xmm1, dword [esp + 0x54]
fadd dword [esp + 0x78]
fsub dword [esp + 0x10]
fstp dword [esp + 0x60]
test bl, bl
je 0x4375c3
fld dword [esp + 0x64]
cvtss2sd xmm2, dword [esp + 0x84]
fsub dword [esp + 0x7c]
cvtss2sd xmm0, xmm1
subsd xmm0, qword [0x6d8a40]
addsd xmm0, xmm2
cvtss2sd xmm2, xmm1
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
divsd xmm0, xmm2
addsd xmm0, qword [0x6d9dc0]
fld dword [esp + 0x54]
cvtss2sd xmm1, xmm1
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x18], xmm0
call fcn.0069833a
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fadd dword [esp + 0x7c]
fsub dword [esp + 0x54]
fstp dword [esp + 0x64]
fld dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
push ecx
fstp dword [esp]
push edx
call fcn.0040f150
add esp, 8
cmp byte [0x7e58d0], 0
mov ebp, eax
mov dword [esp + 0x28], eax
mov ebx, eax
mov dword [esp + 0x2c], eax
je 0x43761a
mov ecx, eax
and ecx, 0xfffeffff
and ebx, 0xfffffffe
or ecx, 1
and ebp, 0xfffefffe
or ebx, 0x10000
or eax, 0x10001
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
movsx eax, word [edi + 0x14]
mov ecx, dword [0x7f0be4]
mov eax, dword [ecx + eax*4]
movsx ecx, word [edi]
movss xmm0, dword [eax + 8]
movsx edx, word [edi + 4]
cvtps2pd xmm2, xmm0
cvtps2pd xmm0, xmm0
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x1c], xmm1
add edx, ecx
movsx ecx, word [edi + 6]
cvtsi2ss xmm1, edx
movsx edx, word [edi + 0xc]
cvtss2sd xmm1, xmm1
mulsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0xc]
cvtps2pd xmm2, xmm0
mov dword [esp + 0x3c], eax
movsx eax, word [edi + 2]
cvtps2pd xmm0, xmm0
cvtsi2sd xmm1, eax
mulsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x24], xmm1
add ecx, eax
movsx eax, word [edi + 0xe]
cvtsi2ss xmm1, ecx
cvtss2sd xmm1, xmm1
mulsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x68]
movss dword [esp + 0x4c], xmm0
cvtsi2sd xmm0, edx
mulsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x6c]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x48], xmm0
cvtsi2sd xmm0, eax
mulsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x34], xmm0
cvtss2sd xmm0, dword [esp + 0x14]
divsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x54]
cvttsd2si esi, xmm0
cvtss2sd xmm0, dword [esp + 0x18]
divsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov dword [esp + 0x30], esi
mov dword [esp + 0x54], ecx
call fcn.004d2810
movsx edx, word [edi + 0xa]
cvtss2sd xmm1, dword [esp + 0x6c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
imul eax, esi
cvtsi2sd xmm0, edx
mov edx, dword [esp + 0x54]
mulsd xmm0, xmm1
movss xmm1, dword [esp + 0x64]
lea ecx, [eax + eax*2]
cvtps2pd xmm1, xmm1
add ecx, ecx
xor esi, esi
xor eax, eax
addsd xmm0, xmm1
cvtsd2ss xmm2, xmm0
movss dword [esp + 0x14], xmm2
test edx, edx
jle 0x43798e
movss xmm4, dword [esp + 0x1c]
movss xmm5, dword [esp + 0x20]
movss xmm6, dword [esp + 0x24]
mov dword [esp + 0x10], edx
movsx edx, word [edi + 8]
cvtss2sd xmm1, dword [esp + 0x68]
cvtsi2sd xmm0, edx
mov edx, dword [esp + 0x30]
mulsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x60]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x54], xmm0
test edx, edx
jle 0x43795c
cvtss2sd xmm3, dword [esp + 0x34]
cvtss2sd xmm1, xmm2
addsd xmm1, xmm3
cvtsd2ss xmm3, xmm1
movss dword [esp + 0x40], xmm3
mov dword [esp + 0x18], edx
mov edi, edi
test esi, esi
jne 0x437828
mov esi, dword [esp + 0x38]
cmp ecx, esi
jge 0x4377ce
mov esi, ecx
cmp esi, 6
jle 0x4377e6
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*2]
add esi, esi
mov eax, dword [esp + 0x3c]
sub ecx, esi
push esi
mov dword [esp + 0x48], ecx
mov ecx, dword [eax]
push 0x18
push ecx
push 4
call fcn.004d2cd0
movss xmm4, dword [esp + 0x2c]
movss xmm5, dword [esp + 0x30]
movss xmm6, dword [esp + 0x34]
movss xmm2, dword [esp + 0x24]
movss xmm0, dword [esp + 0x64]
movss xmm3, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add esp, 0x10
cvtss2sd xmm7, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
cvtss2sd xmm1, xmm0
addsd xmm1, xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 0x80], xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 0x68], xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 0x50], xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 0x38], xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 0x20], xmm7
movss xmm7, dword [0x7e65b4]
movss dword [eax + 8], xmm7
movss xmm7, dword [esp + 0x4c]
mov dword [eax + 0x24], edx
mov edx, dword [esp + 0x2c]
movss dword [eax], xmm0
movss dword [eax + 0x18], xmm0
movss dword [eax + 0x14], xmm7
mov dword [eax + 0x84], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x54], ebx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x6c], edx
movss dword [eax + 4], xmm3
movss dword [eax + 0x10], xmm4
movss dword [eax + 0x1c], xmm2
movss dword [eax + 0x28], xmm4
movss dword [eax + 0x2c], xmm6
movss dword [eax + 0x34], xmm2
movss dword [eax + 0x40], xmm5
movss dword [eax + 0x44], xmm6
add eax, 0x48
cvtsd2ss xmm1, xmm1
movss dword [eax - 0x18], xmm1
movss dword [eax], xmm1
movss dword [eax + 0x18], xmm1
movss dword [eax + 0x30], xmm0
movss dword [eax + 0x2c], xmm7
movss dword [eax + 0x44], xmm7
cvtss2sd xmm7, dword [esp + 0x68]
movss dword [eax + 4], xmm2
movss dword [eax + 0x10], xmm5
movss dword [eax + 0x14], xmm6
movss dword [eax + 0x1c], xmm3
movss dword [eax + 0x28], xmm5
movss dword [eax + 0x34], xmm3
movss dword [eax + 0x40], xmm4
movsx edx, word [edi + 0x10]
cvtsi2sd xmm1, edx
cvtss2sd xmm0, xmm0
mulsd xmm1, xmm7
add eax, 0x48
addsd xmm1, xmm0
sub esi, 6
sub dword [esp + 0x18], 1
cvtsd2ss xmm0, xmm1
movss dword [esp + 0x54], xmm0
jne 0x4377c0
sub dword [esp + 0x10], 1
movsx edx, word [edi + 0x12]
cvtss2sd xmm0, dword [esp + 0x6c]
cvtsi2sd xmm1, edx
mulsd xmm0, xmm1
cvtss2sd xmm1, xmm2
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movaps xmm2, xmm0
movss dword [esp + 0x14], xmm2
jne 0x437770
pop esi
pop ebp
pop ebx
mov al, 1
pop edi
add esp, 0x40
ret