Function at 0x140040100
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov dword [rax + 0x18], r8d
push rbx
push rdi
push r12
sub rsp, 0x140
mov rdi, rcx
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
xor r12d, r12d
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov qword [rax + 0x10], rbp
mov ebp, dword [rsp + 0x180]
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], r13
mov r13, qword [0x14005dc10]
mov qword [rax - 0x30], r14
movabs rax, 0x4024000000000000
mov qword [rcx + 0x10], rax
mov r14, 0xffffffffffffffff
movabs rcx, 0x3ff0000000000000
movsxd rsi, r9d
movabs rax, 0x4023666666666666
mov qword [rdi + 0x18], rcx
mov qword [rdi + 0x20], rax
movabs rax, 0x3fe999999999999a
mov qword [rdi + 0x28], rax
movabs rax, 0x3fd3333333333333
mov qword [rdi + 0x38], rax
movabs rax, 0x3f747ae147ae147b
mov qword [rdi + 0x40], rax
movabs rax, 0x3fe0000000000000
mov qword [rdi + 0x48], rax
movabs rax, 0x4010000000000000
mov qword [rdi + 0x50], rax
movabs rax, 0x3fef851eb851eb85
mov qword [rdi + 0x58], rax
movabs rax, 0x3fb999999999999a
mov qword [rdi + 0xf0], rax
movabs rax, 0x3fc999999999999a
mov qword [rdi + 0xf8], rax
mov eax, esi
imul eax, ebp
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x68], rcx
mov qword [rsp + 0x28], r13
mov qword [rdi + 0x60], r12
movsxd rbx, eax
mov eax, 0x48
mul rbx
mov dword [rdi + 0xd0], 1
mov byte [rdi + 0xe0], r12b
cmovo rax, r14
mov dword [rdi + 0xe4], 0x3f800000
mov rcx, rax
mov dword [rdi + 0xe8], 0x3c23d70a
mov dword [rdi + 0x100], 0x3c23d70a
mov qword [rdi + 0x104], 0x3e19999a
mov dword [rdi + 0xd4], esi
mov dword [rdi + 0xd8], ebp
mov qword [rdi + 0x70], r13
call fcn.140044ce8
mov qword [rdi + 0x78], rax
mov eax, 4
mul rbx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
mov qword [rdi + 8], rax
mov r10d, r12d
mov dword [rsp + 0x170], r12d
xorps xmm10, xmm10
test esi, esi
jle 0x14004050b
mov qword [rsp + 0x120], r15
mov r14d, r12d
mov r15, rsi
mov qword [rsp + 0x160], r12
mov ebx, r12d
cmp ebp, 4
jl 0x140040466
lea eax, [rsi*4]
mov r11, r14
movsxd rcx, eax
lea rax, [rcx*8]
mov qword [rsp + 0x20], rax
lea r12, [rcx + rcx*8]
lea eax, [r10 + rsi*2]
shl r12, 3
movsxd rdx, eax
lea ecx, [r10 + rsi*2]
sub r11, rdx
add ecx, esi
mov rsi, qword [rsp + 0x20]
movsxd r9, ecx
sub r9, rdx
lea rax, [rdx*8]
add rax, r13
lea r8, [rdx + rdx*8]
mov qword [rsp + 0x188], rax
lea r10, [r11 + r11*8]
mov r13, r15
shl r8, 3
mov r15, qword [rsp + 0x188]
lea eax, [rbp - 4]
sub r13, rdx
shr eax, 2
add r13, r14
lea r14, [r9 + r9*8]
lea rdx, [r13*8]
add rdx, r13
inc eax
mov ebp, eax
lea ebx, [rax*4]
nop dword [rax]
movsd xmm1, qword [rdi + 0x68]
lea rcx, [r8 + r10*8]
movsd xmm0, qword [r15 + r11*8]
xorps xmm2, xmm2
mov rax, qword [rdi + 0x78]
xorps xmm3, xmm3
unpcklpd xmm0, xmm1
xorps xmm4, xmm4
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm2
movups xmmword [rcx + rax + 0x20], xmm3
movups xmmword [rcx + rax + 0x30], xmm4
movsd qword [rcx + rax + 0x40], xmm10
lea rcx, [r8 + rdx*8]
movsd xmm1, qword [rdi + 0x68]
movsd xmm0, qword [r15 + r13*8]
mov rax, qword [rdi + 0x78]
unpcklpd xmm0, xmm1
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm2
movups xmmword [rcx + rax + 0x20], xmm3
movups xmmword [rcx + rax + 0x30], xmm4
movsd qword [rcx + rax + 0x40], xmm10
lea rcx, [r8 + r14*8]
movsd xmm1, qword [rdi + 0x68]
movsd xmm0, qword [r15]
mov rax, qword [rdi + 0x78]
unpcklpd xmm0, xmm1
movups xmmword [r8 + rax], xmm0
movups xmmword [r8 + rax + 0x10], xmm2
movups xmmword [r8 + rax + 0x20], xmm3
movups xmmword [r8 + rax + 0x30], xmm4
movsd qword [r8 + rax + 0x40], xmm10
add r8, r12
movsd xmm0, qword [r15 + r9*8]
add r15, rsi
movsd xmm1, qword [rdi + 0x68]
mov rax, qword [rdi + 0x78]
unpcklpd xmm0, xmm1
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm2
movups xmmword [rcx + rax + 0x20], xmm3
movups xmmword [rcx + rax + 0x30], xmm4
movsd qword [rcx + rax + 0x40], xmm10
sub rbp, 1
jne 0x140040360
movsxd rsi, dword [rsp + 0x178]
xor r12d, r12d
mov r10d, dword [rsp + 0x170]
mov r15, rsi
mov ebp, dword [rsp + 0x180]
mov r14, qword [rsp + 0x160]
mov r13, qword [rsp + 0x28]
cmp ebx, ebp
jge 0x1400404dd
mov eax, ebx
lea r9, [r15 + r15*8]
imul eax, esi
lea r11, [r15*8]
shl r9, 3
add eax, r10d
movsxd rcx, eax
lea rdx, [rcx + rcx*8]
lea r8, [rcx*8]
shl rdx, 3
add r8, r13
mov ecx, ebp
sub ecx, ebx
movsd xmm0, qword [r8]
xorps xmm2, xmm2
movsd xmm1, qword [rdi + 0x68]
xorps xmm3, xmm3
mov rax, qword [rdi + 0x78]
xorps xmm4, xmm4
unpcklpd xmm0, xmm1
add r8, r11
movups xmmword [rdx + rax], xmm0
movups xmmword [rdx + rax + 0x10], xmm2
movups xmmword [rdx + rax + 0x20], xmm3
movups xmmword [rdx + rax + 0x30], xmm4
movsd qword [rdx + rax + 0x40], xmm10
add rdx, r9
sub rcx, 1
jne 0x14004049c
inc r10d
inc r14
mov dword [rsp + 0x170], r10d
mov qword [rsp + 0x160], r14
cmp r10d, esi
jl 0x1400402c4
mov r15, qword [rsp + 0x120]
mov r14, 0xffffffffffffffff
movabs rax, 0x4012000000000000
mov dword [rdi + 0xdc], 0x100
mov ecx, 0x288
mov qword [rdi + 0xc0], rax
mov dword [rdi + 0xb8], 9
mov dword [rdi], 0x51
call fcn.140044ce8
movsxd rcx, dword [rdi]
mov qword [rdi + 0x88], rax
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
movsxd rcx, dword [rdi]
mov qword [rdi + 0x90], rax
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
movsxd rcx, dword [rdi]
mov qword [rdi + 0xa0], rax
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
movsxd rcx, dword [rdi]
mov qword [rdi + 0xa8], rax
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
movsxd rcx, dword [rdi]
mov qword [rdi + 0xb0], rax
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140044ce8
cmp dword [rdi], 0
mov edx, r12d
mov r14, qword [rsp + 0x128]
mov r13, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x138]
mov rbp, qword [rsp + 0x168]
mov qword [rdi + 0x98], rax
jle 0x140040662
mov rcx, r12
nop dword [rax + rax]
mov rax, qword [rdi + 0x88]
lea rcx, [rcx + 8]
inc edx
mov qword [rcx + rax - 8], r12
mov rax, qword [rdi + 0x90]
mov qword [rcx + rax - 8], r12
mov rax, qword [rdi + 0xa0]
mov qword [rcx + rax - 8], r12
mov rax, qword [rdi + 0xa8]
mov qword [rcx + rax - 8], r12
mov rax, qword [rdi + 0xb0]
mov qword [rcx + rax - 8], r12
mov rax, qword [rdi + 0x98]
mov qword [rcx + rax - 8], r12
cmp edx, dword [rdi]
jl 0x140040610
mov eax, dword [rdi + 0xb8]
movaps xmm13, xmm10
movd xmm0, dword [rdi + 0xdc]
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm10
movaps xmm11, xmm1
movaps xmm14, xmm1
mulsd xmm11, qword [0x140053a68]
divsd xmm14, xmm0
jbe 0x140040885
movaps xmmword [rsp + 0x110], xmm6
mov rbx, r12
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm8
movsd xmm8, qword [0x140053a80]
movaps xmmword [rsp + 0xe0], xmm9
movaps xmmword [rsp + 0xb0], xmm12
movaps xmmword [rsp + 0x80], xmm15
movsd xmm15, qword [0x140053aa0]
nop word [rax + rax]
movd xmm0, eax
movaps xmm9, xmm10
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm10
jbe 0x140040839
movaps xmm12, xmm13
addsd xmm12, xmm13
xorps xmm0, xmm0
movaps xmm6, xmm9
cvtsi2sd xmm0, eax
addsd xmm6, xmm9
movaps xmm7, xmm12
movaps xmm2, xmm15
subsd xmm0, xmm8
divsd xmm7, xmm0
divsd xmm6, xmm0
subsd xmm7, xmm8
subsd xmm6, xmm8
movaps xmm1, xmm7
movaps xmm0, xmm6
mulsd xmm1, xmm7
mulsd xmm0, xmm6
subsd xmm2, xmm0
subsd xmm2, xmm1
comisd xmm2, xmm8
jbe 0x1400407e1
xorps xmm0, xmm0
ucomisd xmm0, xmm2
ja 0x140040772
xorps xmm0, xmm0
sqrtsd xmm0, xmm2
jmp 0x14004077a
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov rax, qword [rdi + 0xa0]
movaps xmm1, xmm0
movaps xmm2, xmm0
mulsd xmm1, xmm6
mulsd xmm2, xmm0
mulsd xmm0, xmm7
mulsd xmm1, xmm11
subsd xmm2, xmm8
mulsd xmm0, xmm11
movsd qword [rax + rbx*8], xmm1
mov rax, qword [rdi + 0xa8]
movsd qword [rax + rbx*8], xmm0
movaps xmm0, xmm2
mov rax, qword [rdi + 0xb0]
xorps xmm0, xmmword [0x140053cd0]
mulsd xmm0, xmm11
mulsd xmm0, xmm14
movsd qword [rax + rbx*8], xmm0
mov rax, qword [rdi + 0x88]
movsd qword [rax + rbx*8], xmm2
jmp 0x140040818
mov rax, qword [rdi + 0x88]
mov qword [rax + rbx*8], r12
mov rax, qword [rdi + 0xa0]
mov qword [rax + rbx*8], r12
mov rax, qword [rdi + 0xa8]
mov qword [rax + rbx*8], r12
mov rax, qword [rdi + 0xb0]
mov qword [rax + rbx*8], r12
mov rax, qword [rdi + 0x98]
mov qword [rax + rbx*8], r12
mov eax, dword [rdi + 0xb8]
addsd xmm9, xmm8
inc rbx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm9
ja 0x140040710
movd xmm0, eax
addsd xmm13, xmm8
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm13
ja 0x1400406f0
movaps xmm15, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm6, xmmword [rsp + 0x110]
lea rcx, str.__dbg_dump___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, str._kernel:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [rdi]
mov rcx, qword [rdi + 0x88]
call fcn.140040cf0
lea rcx, str._kMem:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [rdi]
mov rcx, qword [rdi + 0x90]
call fcn.140040cf0
lea rcx, str._kX:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [rdi]
mov rcx, qword [rdi + 0xa0]
call fcn.140040cf0
lea rcx, str._kY:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [rdi]
mov rcx, qword [rdi + 0xa8]
call fcn.140040cf0
lea rcx, str._kZ:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [rdi]
mov rcx, qword [rdi + 0xb0]
call fcn.140040cf0
lea rcx, str.__end___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, 0x18
call fcn.140044ce8
lea r11, [rsp + 0x140]
mov qword [rdi + 0x80], rax
movaps xmm10, xmmword [r11 - 0x70]
mov rax, rdi
movaps xmm11, xmmword [r11 - 0x80]
movaps xmm13, xmmword [r11 - 0xa0]
movaps xmm14, xmmword [r11 - 0xb0]
mov rsp, r11
pop r12
pop rdi
pop rbx
ret