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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x60
movd xmm1, dword [rcx + 0x68]
mov edi, r9d
mov r10d, dword [rcx + 0x44]
mov r11, rcx
movaps xmmword [rsp + 0x20], xmm6
mov rbx, rdx
movss xmm6, dword [rcx]
movaps xmm0, xmm6
movaps xmmword [rsp + 0x10], xmm7
movss xmm7, dword [rcx + 0xc]
movaps xmmword [rsp], xmm8
movaps xmm8, xmm7
cvtdq2ps xmm1, xmm1
movd xmm2, r8d
addss xmm1, dword [rcx + 0x40]
cvtdq2ps xmm2, xmm2
movaps xmm4, xmm1
movd xmm5, edi
addss xmm2, dword [rcx + 0x40]
mulss xmm1, dword [rcx + 0x10]
mulss xmm4, dword [rcx + 4]
mulss xmm0, xmm2
mulss xmm8, xmm2
addss xmm0, xmm4
cvtdq2ps xmm5, xmm5
addss xmm0, dword [rcx + 8]
addss xmm5, xmm2
addss xmm8, xmm1
mulss xmm6, xmm5
addss xmm8, dword [rcx + 0x14]
mulss xmm7, xmm5
addss xmm6, xmm4
addss xmm7, xmm1
movss xmm1, dword [0x1403a8d50]
mulss xmm0, xmm1
addss xmm7, dword [rcx + 0x14]
mov dword [rcx + 0x1c], edi
addss xmm6, dword [rcx + 8]
cvttss2si r9d, xmm0
movss xmm0, dword [0x1403a8e38]
mulss xmm6, xmm0
mov r8d, r9d
neg r8d
cvttss2si ecx, xmm6
movaps xmm6, xmmword [rsp + 0x20]
sub r8d, ecx
lea ecx, [r10 + r9]
mov eax, r8d
mov dword [r11 + 0x18], ecx
cdq
idiv edi
mov esi, eax
mov dword [r11 + 0x20], eax
mov eax, r8d
cdq
idiv edi
mov dword [r11 + 0x28], edx
test edx, edx
jg 0x14005552c
add edx, edi
lea eax, [rsi - 1]
mov dword [r11 + 0x28], edx
mov dword [r11 + 0x20], eax
sub edx, edi
mulss xmm8, xmm1
mov dword [r11 + 0x24], edx
mulss xmm7, xmm0
mov dword [r11 + 0x30], edi
cvttss2si r8d, xmm8
movaps xmm8, xmmword [rsp]
cvttss2si ecx, xmm7
mov eax, r8d
neg eax
movaps xmm7, xmmword [rsp + 0x10]
sub eax, ecx
lea ecx, [r8 + r10]
cdq
mov dword [r11 + 0x2c], ecx
idiv edi
mov dword [r11 + 0x34], eax
mov dword [r11 + 0x3c], edx
test edx, edx
jg 0x14005557c
add edx, edi
dec eax
mov dword [r11 + 0x3c], edx
mov dword [r11 + 0x34], eax
mov qword [rsp + 0x58], rbp
sub edx, edi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r15
mov dword [r11 + 0x38], edx
nop dword [rax + rax]
mov r9d, dword [r11 + 0x18]
mov eax, dword [r11 + 0x28]
add dword [r11 + 0x24], eax
mov eax, r9d
add eax, dword [r11 + 0x20]
mov edx, dword [r11 + 0x24]
mov dword [r11 + 0x18], eax
test edx, edx
jle 0x1400555cd
sub edx, dword [r11 + 0x1c]
inc eax
mov dword [r11 + 0x24], edx
mov dword [r11 + 0x18], eax
mov r8d, dword [r11 + 0x2c]
mov eax, dword [r11 + 0x3c]
add dword [r11 + 0x38], eax
mov eax, r8d
add eax, dword [r11 + 0x34]
mov edx, dword [r11 + 0x38]
mov dword [r11 + 0x2c], eax
test edx, edx
jle 0x1400555fa
sub edx, dword [r11 + 0x30]
inc eax
mov dword [r11 + 0x38], edx
mov dword [r11 + 0x2c], eax
mov edi, r9d
mov r10d, r8d
sar edi, 8
sar r10d, 8
cmp dword [r11 + 0x5c], 0
je 0x140055873
mov edx, dword [r11 + 0x60]
mov ecx, dword [r11 + 0x64]
cmp edi, edx
jae 0x14005582c
movzx esi, r9b
mov r9, qword [r11 + 0x50]
mov dword [rsp + 0x90], esi
cmp r10d, ecx
jae 0x140055749
movsxd rcx, dword [r9 + 0x10]
mov edx, 0x100
mov eax, ecx
movzx r15d, r8b
movsxd r8, dword [r9 + 0xc]
sub edx, r15d
imul eax, edi
mov r12d, 0x100
sub r12d, esi
movsxd r13, eax
mov eax, r8d
imul eax, r10d
mov r10, rcx
cdqe
add r13, rax
mov eax, edx
add r13, qword [r9]
imul edx, dword [rsp + 0x90]
imul eax, r12d
imul r12d, r15d
movzx esi, byte [r13]
movzx ebp, byte [r13 + 1]
movzx r14d, byte [r13 + 2]
add r13, rcx
imul ebp, eax
imul esi, eax
imul r14d, eax
movzx ebx, byte [r13]
movzx r11d, byte [r13 + 1]
movzx edi, byte [r13 + 2]
add r13, r8
mov eax, dword [rsp + 0x90]
imul eax, r15d
imul r11d, edx
movzx ecx, byte [r13]
movzx r8d, byte [r13 + 1]
movzx r9d, byte [r13 + 2]
sub r13, r10
imul ecx, eax
imul r8d, eax
add r11d, 0x8000
imul r9d, eax
movzx eax, byte [r13]
imul eax, r12d
imul ebx, edx
imul edi, edx
add eax, esi
add eax, ecx
movzx ecx, byte [r13 + 1]
imul ecx, r12d
lea edx, [rbx + 0x8000]
mov rbx, qword [rsp + 0x88]
add edx, eax
movzx eax, byte [r13 + 2]
imul eax, r12d
add ecx, r11d
mov r11, qword [rsp + 0x80]
add ecx, ebp
add ecx, r8d
shr ecx, 0x10
add eax, 0x8000
mov byte [rbx + 1], cl
add eax, r9d
add eax, edi
add eax, r14d
shr eax, 0x10
shr edx, 0x10
mov byte [rbx], dl
jmp 0x1400558c3
test r10d, r10d
jns 0x1400557a1
movsxd rdx, dword [r9 + 0x10]
mov eax, edx
imul eax, edi
movsxd r10, eax
add r10, qword [r9]
movzx edi, byte [r10]
lea r8, [r10 + 1]
lea r9, [r10 + 2]
mov r11d, 0x100
add r10, rdx
sub r11d, esi
movzx edx, byte [r8]
movzx r8d, byte [r9]
imul edx, r11d
movzx ecx, byte [r10 + 1]
movzx eax, byte [r10]
imul ecx, esi
imul edi, r11d
sub ecx, 0xffffff80
add edx, ecx
movzx ecx, byte [r10 + 2]
imul r8d, r11d
jmp 0x1400557f9
mov eax, dword [r9 + 0xc]
movsxd r8, dword [r9 + 0x10]
imul eax, ecx
movsxd r11, eax
mov eax, r8d
imul eax, edi
cdqe
add r11, rax
add r11, qword [r9]
movzx ecx, byte [r11 + r8 + 1]
mov r10d, 0x100
movzx eax, byte [r11 + r8]
sub r10d, esi
movzx edx, byte [r11 + 1]
movzx edi, byte [r11]
imul ecx, esi
imul edx, r10d
imul edi, r10d
sub ecx, 0xffffff80
add edx, ecx
movzx ecx, byte [r11 + r8 + 2]
movzx r8d, byte [r11 + 2]
imul r8d, r10d
sub edi, 0xffffff80
imul eax, esi
imul ecx, esi
sub r8d, 0xffffff80
shr edx, 8
add edi, eax
shr edi, 8
add r8d, ecx
shr r8d, 8
mov byte [rbx + 2], r8b
mov byte [rbx + 1], dl
mov byte [rbx], dil
mov r11, qword [rsp + 0x80]
jmp 0x1400558c6
cmp r10d, ecx
jae 0x140055873
mov rcx, qword [r11 + 0x50]
movzx esi, r8b
test edi, edi
jns 0x140055852
movsxd rdx, dword [rcx + 0xc]
mov eax, edx
imul eax, r10d
movsxd r10, eax
add r10, qword [rcx]
jmp 0x14005575d
mov eax, dword [rcx + 0x10]
movsxd r8, dword [rcx + 0xc]
imul eax, edx
movsxd r11, eax
mov eax, r8d
imul eax, r10d
cdqe
add r11, rax
add r11, qword [rcx]
jmp 0x1400557bd
mov eax, dword [r11 + 0x64]
xor r9d, r9d
mov r8, qword [r11 + 0x50]
test edi, edi
mov edx, dword [r11 + 0x60]
cmovns r9d, edi
xor ecx, ecx
test r10d, r10d
cmovns ecx, r10d
cmp ecx, eax
cmovle eax, ecx
imul eax, dword [r8 + 0xc]
cmp r9d, edx
cmovle edx, r9d
imul edx, dword [r8 + 0x10]
movsxd rcx, eax
movsxd rax, edx
add rcx, rax
add rcx, qword [r8]
movzx eax, byte [rcx]
mov byte [rbx], al
movzx eax, byte [rcx + 1]
mov byte [rbx + 1], al
movzx eax, byte [rcx + 2]
mov byte [rbx + 2], al
mov edi, dword [rsp + 0x98]
add rbx, 3
dec edi
mov qword [rsp + 0x88], rbx
mov dword [rsp + 0x98], edi
test edi, edi
jg 0x1400555a0
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret