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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
cmp dword [0x54fc2c], 0
push ebx
push esi
push edi
mov dword [esp + 0x3c], 0
jle 0x401f38
movss xmm4, dword [0x4e2d90]
mov edi, 0x54fc44
movss xmm3, dword [0x4e2ad0]
mov esi, 0x4f42e8
mov dword [esp + 0x1c], edi
mov ebx, 0x4f42ec
mov dword [esp + 0x20], esi
xorps xmm2, xmm2
nop dword [eax + eax]
mov dl, byte [edi]
mov byte [esp + 0x13], dl
mov byte [edi + 1], dl
test dl, dl
je 0x401f12
mov byte [edi], 0
test dl, 1
je 0x401bca
movss xmm0, dword [edi + 0x58]
movss dword [esi + 4], xmm0
mulss xmm0, dword [0x4e2c60]
addss xmm0, dword [0x4e2a70]
cvttss2si eax, xmm0
mov byte [esi - 0x41], al
test dl, 8
je 0x401bd5
mov al, byte [edi + 0x2d]
mov byte [esi - 0x43], al
test dl, 9
je 0x401d33
movzx ecx, byte [ebx - 0x47]
mov eax, 0x4f4280
shl ecx, 2
sub eax, ecx
cmp byte [0x789f66], 0
movss xmm0, dword [eax]
mulss xmm0, dword [ebx]
movss dword [ebx + 0x14], xmm0
movss xmm0, dword [ecx + 0x4f3e80]
mulss xmm0, dword [ebx]
movss dword [ebx + 0x18], xmm0
jne 0x401c2b
mov eax, dword [ebx + 0x14]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 8], eax
mov dword [ebx - 0x30], 0
jmp 0x401d33
mov al, dl
and al, 4
je 0x401cc2
movss xmm0, dword [ebx + 4]
comiss xmm0, xmm2
ja 0x401c49
movss xmm0, dword [ebx + 8]
comiss xmm0, xmm2
jbe 0x401cb4
lea esi, [ebx - 0x5c]
mov ecx, 0x1e
lea edi, [ebx + 0xea4]
movaps xmm1, xmm3
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x789f7c]
mov dword [ebx + 0xed0], ecx
movd xmm0, dword [ebx + 0xed0]
cvtdq2ps xmm0, xmm0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov byte [ebx + 0xeb6], 1
divss xmm1, xmm0
movss xmm0, dword [ebx + 0xf04]
mulss xmm0, xmm1
xorps xmm0, xmm4
movss dword [ebx + 0xf0c], xmm0
movss xmm0, dword [ebx + 0xf08]
mulss xmm0, xmm1
xorps xmm0, xmm4
movss dword [ebx + 0xf10], xmm0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
test al, al
jne 0x401ced
movss xmm0, dword [ebx + 0x14]
ucomiss xmm0, dword [ebx + 4]
lahf
test ah, 0x44
jp 0x401ced
movss xmm0, dword [ebx + 0x18]
ucomiss xmm0, dword [ebx + 8]
lahf
test ah, 0x44
jp 0x401ced
mov dword [ebx - 0x30], 0
jmp 0x401d33
mov eax, dword [0x789f88]
test dl, 0x10
movaps xmm1, xmm3
cmovne eax, dword [0x789f7c]
mov dword [ebx - 0x30], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [ebx + 0x14]
subss xmm0, dword [ebx + 4]
mulss xmm0, xmm1
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [ebx + 0x18]
subss xmm0, dword [ebx + 8]
mulss xmm0, xmm1
movss dword [ebx + 0x10], xmm0
test dl, 2
je 0x401e13
movzx ecx, word [edi + 0x34]
cmp ecx, dword [edi + 0x50]
je 0x401e07
mov dword [edi + 0x50], ecx
call fcn.00432b60
movaps xmm1, xmm0
movsd xmm0, qword [0x78b4c8]
mulsd xmm0, xmm1
movsd qword [esp + 0x28], xmm1
addsd xmm0, qword [0x4e2b10]
call fcn.004a73ef
cmp byte [0x789f69], 0
mov ecx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esi - 0x18], eax
mov dword [esi - 0x14], ecx
je 0x401dc5
cmp ecx, dword [0x54e364]
ja 0x401da5
jb 0x401d9e
cmp eax, dword [0x54e360]
ja 0x401da5
mov eax, dword [0x4edf4c]
jmp 0x401dc3
cmp ecx, dword [0x54e36c]
ja 0x401dbe
jb 0x401db7
cmp eax, dword [0x54e368]
ja 0x401dbe
mov eax, dword [0x4edf60]
jmp 0x401dc3
mov eax, dword [0x4edf68]
mov dword [esi], eax
movsd xmm0, qword [esp + 0x28]
mulsd xmm0, qword [0x4e2c28]
addsd xmm0, qword [0x4e2b10]
call fcn.004a73ef
movss xmm3, dword [0x4e2ad0]
xorps xmm2, xmm2
movss xmm4, dword [0x4e2d90]
mov ecx, dword [esp + 0x34]
mov dword [esi - 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esi - 0xc], edx
mov dl, byte [esp + 0x13]
jmp 0x401e0d
mov eax, dword [esi - 0x18]
mov ecx, dword [esi - 0x14]
mov dword [esi - 0x20], eax
mov dword [esi - 0x1c], ecx
test dl, 4
je 0x401f12
mov ecx, dword [edi + 0x6c]
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], eax
add eax, edx
mov dl, byte [ecx + 0x25]
mov dh, dl
mov dword [esp + 0x14], eax
shr dl, 4
and dh, 3
and dl, 1
cmp dword [ecx + 0x1c], 0
je 0x401f0e
cmp dword [esp + 0x28], 1
jl 0x401f0e
cmp dword [esp + 0x34], 1
mov esi, 0
movzx eax, dh
cmovge esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov esi, dword [ecx + 0x1c]
test dl, dl
je 0x401e95
add eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov dword [ebx - 0x54], esi
lea eax, [esi + eax*2]
mov dword [ebx - 0x50], eax
lea eax, [ecx + 0x62]
mov dword [ebx - 8], eax
jmp 0x401ea7
add eax, esi
mov dword [ebx - 0x5c], esi
add eax, dword [esp + 0x18]
mov dword [ebx - 0x58], eax
lea eax, [ecx + 0x3b]
mov dword [ebx - 0xc], eax
mov eax, dword [esp + 0x38]
test al, al
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov byte [ebx - 0x46], al
mov eax, dword [esp + 0x14]
cmove eax, dword [esp + 0x28]
mov dword [ebx - 0x3c], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx - 0x38], ecx
mov ecx, dword [edi + 0x54]
mov byte [ebx - 0x49], 0
mov byte [ebx - 0x4b], 0
mov dword [ebx - 0x40], eax
mov dword [ebx - 0x44], ecx
mov dword [ebx - 0x2c], 0
mov dword [ebx - 0x28], 0
cmp ecx, eax
jge 0x401f0e
mov cl, dl
shl dl, 2
add cl, dl
add cl, byte [0x789f6a]
mov al, cl
mov byte [ebx - 0x4c], 1
add cl, cl
add al, cl
add al, byte [esp + 0x38]
mov byte [ebx - 0x48], al
jmp 0x401f12
mov byte [ebx - 0x4c], 0
mov edx, dword [esp + 0x3c]
add edi, 0x78
inc edx
mov dword [esp + 0x1c], edi
add esi, 0x78
mov dword [esp + 0x3c], edx
add ebx, 0x78
mov dword [esp + 0x20], esi
cmp edx, dword [0x54fc2c]
jl 0x401b90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret