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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [ebp + 0x18]
xorps xmm2, xmm2
push ebx
mov ebx, dword [ebp + 0x24]
add eax, 3
push esi
mov esi, dword [ebp + 0x30]
push edi
mov dword [esp + 0x48], edx
mov edi, ecx
xor edx, edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x44], edx
movss dword [esp + 0x40], xmm2
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
cmp eax, dword [ebp + 0x14]
jg 0x542340
mov eax, dword [ebx + 0x1c]
mov ecx, eax
shr ecx, 3
sub eax, ecx
test esi, esi
je 0x542331
add dword [ebx + 0x20], eax
test esi, esi
cmovne eax, ecx
mov ecx, ebx
mov dword [ebx + 0x1c], eax
call fcn.00537a70
xor edx, edx
test esi, esi
je 0x54234e
movss xmm0, dword [0x5f7af0]
jmp 0x542369
mov eax, dword [ebp + 0x2c]
movss xmm2, dword [eax*4 + 0x5e8cf0]
movss xmm0, dword [eax*4 + 0x5e8d00]
movss dword [esp + 0x40], xmm2
mov eax, dword [esp + 0x48]
mov ecx, eax
movss dword [esp + 0x60], xmm0
mov dword [esp + 0x3c], ecx
cmp eax, dword [ebp + 8]
jge 0x542712
fld dword [0x5f7b2c]
mov esi, dword [ebp + 0x28]
movss xmm1, dword [0x5f7cfc]
movss xmm0, dword [0x5f7d04]
mov eax, dword [ebp + 8]
fst dword [esp + 0x64]
mov dword [esp + 0x54], 1
sub eax, ecx
xor edx, edx
imul eax, esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
lea eax, [eax + eax*2]
sub esi, eax
mov dword [esp + 0x68], esi
mov esi, dword [edi + 8]
mov eax, dword [ebp + 0x10]
imul esi, edx
add esi, ecx
movss xmm0, dword [eax + esi*4]
comiss xmm1, xmm0
movss dword [esp + 0x50], xmm0
jbe 0x5423df
movaps xmm0, xmm1
mov eax, dword [ebp + 0xc]
sub esp, 8
mulss xmm0, xmm2
movss xmm2, dword [esp + edx*4 + 0x80]
movss xmm1, dword [eax + esi*4]
subss xmm1, xmm0
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x78], xmm2
subss xmm1, xmm2
movss dword [esp + 0x60], xmm1
fadd dword [esp + 0x60]
fstp qword [esp]
call fcn.005b4420
add esp, 8
call fcn.0056fcf0
movss xmm0, dword [esp + 0x50]
mov edi, eax
movss xmm3, dword [0x5f7d04]
comiss xmm3, xmm0
jbe 0x54243d
movaps xmm0, xmm3
subss xmm0, dword [ebp + 0x34]
test edi, edi
jns 0x542464
mov eax, dword [ebp + 0xc]
movss xmm1, dword [eax + esi*4]
comiss xmm0, xmm1
jbe 0x542464
subss xmm0, xmm1
cvttss2si eax, xmm0
add edi, eax
xor eax, eax
test edi, edi
cmovg edi, eax
mov edx, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x3c]
bsr eax, edx
mov dword [esp + 0x6c], edi
sub eax, dword [ebx + 0x14]
inc eax
add ecx, eax
cmp esi, dword [esp + 0x48]
je 0x5424a4
cmp ecx, 0x1e
jge 0x5424a4
cmp ecx, 0x18
jge 0x542494
cmp edi, 1
cmovg edi, dword [esp + 0x54]
cmp ecx, 0x10
jge 0x5424a4
cmp edi, 0xffffffff
mov ecx, 0xffffffff
cmovl edi, ecx
add eax, dword [ebp + 0x14]
cmp eax, 0xf
jl 0x5425b3
mov ebx, dword [ebp + 0x1c]
mov eax, 0x14
cmp esi, eax
cmovl eax, esi
movzx ecx, byte [ebx + eax*2 + 1]
movzx eax, byte [ebx + eax*2]
xor ebx, ebx
shl ecx, 6
shl eax, 7
mov dword [esp + 0x4c], ecx
test edi, edi
je 0x54256e
mov esi, edi
mov ebx, eax
shr esi, 0x1f
neg esi
lea ecx, [esi + edi]
xor ecx, esi
mov dword [esp + 0x50], ecx
mov ecx, 0x7fe0
sub ecx, eax
mov eax, 0x4000
sub eax, dword [esp + 0x4c]
imul eax, ecx
mov ecx, 1
shr eax, 0xf
test eax, eax
je 0x54252e
jmp 0x542510
cmp ecx, dword [esp + 0x50]
jge 0x54252a
add eax, eax
add ebx, 2
add ebx, eax
inc ecx
imul eax, dword [esp + 0x4c]
shr eax, 0xf
test eax, eax
jne 0x542510
test eax, eax
jne 0x542567
mov edi, dword [esp + 0x50]
mov eax, 0x8000
sub eax, esi
sub edi, ecx
sub eax, ebx
sar eax, 1
dec eax
cmp edi, eax
cmovge edi, eax
lea eax, [edi*2 + 1]
add eax, esi
add ebx, eax
mov eax, 0x8000
sub eax, ebx
cmp eax, 1
cmova eax, dword [esp + 0x54]
add edi, ecx
add edi, esi
xor edi, esi
jmp 0x54256e
inc eax
not esi
and esi, eax
add ebx, esi
mov esi, edx
mov ecx, 0x8000
sub ecx, ebx
shr esi, 0xf
test ebx, ebx
mov ebx, dword [ebp + 0x24]
je 0x54259b
imul ecx, esi
imul esi, eax
sub edx, ecx
mov ecx, ebx
add dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], esi
call fcn.00537a70
jmp 0x542657
sub ecx, eax
imul ecx, esi
mov esi, edx
sub esi, ecx
mov ecx, ebx
mov dword [ebx + 0x1c], esi
call fcn.00537a70
jmp 0x542657
cmp eax, 2
jl 0x54262a
mov eax, 1
mov esi, edx
cmp edi, eax
cmovl eax, edi
mov edi, eax
mov eax, 0xffffffff
cmp edi, 0xffffffff
cmovl edi, eax
shr esi, 2
mov ecx, edi
shr ecx, 0x1f
neg ecx
lea eax, [edi + edi]
xor ecx, eax
test ecx, ecx
jle 0x542612
movzx eax, byte [ecx + 0x5e8ca7]
imul eax, esi
sub edx, eax
add dword [ebx + 0x20], edx
movzx edx, byte [ecx + 0x5e8ca7]
movzx eax, byte [ecx + 0x5e8ca8]
mov ecx, ebx
sub edx, eax
imul edx, esi
mov dword [ebx + 0x1c], edx
call fcn.00537a70
jmp 0x542657
movzx eax, byte [ecx + 0x5e8ca8]
mov ecx, ebx
imul eax, esi
sub edx, eax
mov dword [ebx + 0x1c], edx
call fcn.00537a70
jmp 0x542657
cmp eax, 1
jl 0x542654
xor eax, eax
test edi, edi
cmovg edi, eax
mov eax, edx
shr eax, 1
sub edx, eax
test edi, edi
je 0x542645
add dword [ebx + 0x20], edx
test edi, edi
cmovne edx, eax
mov ecx, ebx
mov dword [ebx + 0x1c], edx
call fcn.00537a70
jmp 0x542657
or edi, 0xffffffff
mov eax, dword [esp + 0x5c]
movss xmm0, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x20]
mov eax, dword [eax + 8]
imul eax, dword [esp + 0x38]
movss xmm2, dword [esp + 0x70]
cvtsi2ss xmm1, edi
mov esi, dword [ebp + 0x10]
add eax, ecx
fld dword [esp + 0x64]
subss xmm0, xmm1
movss dword [edx + eax*4], xmm0
movaps xmm0, xmm2
mov eax, dword [esp + 0x6c]
addss xmm2, xmm1
addss xmm0, dword [esp + 0x74]
sub eax, edi
mov edi, dword [esp + 0x5c]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x38]
add dword [esp + 0x44], eax
addss xmm0, xmm1
mov eax, dword [edi + 8]
mulss xmm1, dword [esp + 0x60]
imul eax, edx
subss xmm2, xmm1
movss xmm1, dword [0x5f7cfc]
add eax, ecx
movss dword [esp + edx*4 + 0x78], xmm2
inc edx
movss xmm2, dword [esp + 0x40]
movss dword [esi + eax*4], xmm0
mov esi, dword [ebp + 0x28]
mov dword [esp + 0x38], edx
cmp edx, esi
jl 0x5423c1
mov eax, dword [ebp + 8]
inc ecx
mov dword [esp + 0x3c], ecx
fstp st(0)
fld dword [esp + 0x64]
cmp ecx, eax
jl 0x5423aa
mov eax, dword [esp + 0x44]
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret