Function at 0x14005025c
Capabilities:
Create a process with modified i/o handles and window
Create process on windows
Encode data using xor
Encrypt data using speck
Get common file path
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2e8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x148], r8
mov rsi, rdx
mov qword [rbp + 0x210], rcx
mov eax, 0x50
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1f0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x158], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x10], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xf0], rsp
mov eax, 0x30
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x38], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1c8], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x18], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x108], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x18], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x58], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x50], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xa0], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x88], rsp
mov eax, 0x60
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x120], rsp
mov eax, 0x70
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x90], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x78], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x70], rsp
mov eax, 0x70
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1e0], rsp
mov eax, 0x50
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1c0], rsp
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x200], rsp
mov eax, 0x60
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x98], rsp
mov eax, 0x50
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1b0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov r9, rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1f8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x40], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x118], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xe0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xd8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xc8], rsp
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xc0], rsp
mov eax, 0x50
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1d0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1b8], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x58], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xe8], rsp
mov eax, 0x400
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x48], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x60], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x20], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x190], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x160], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rcx, rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x188], rsp
mov eax, 0x400
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rdx, rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x180], rsp
mov eax, 0x400
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x60], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xb8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x150], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xd0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x28], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x170], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x100], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x198], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xf8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x168], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x48], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x140], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xb0], rsp
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1d8], rsp
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x28], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov r8, rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x208], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x248], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x128], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1a8], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x250], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x220], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x178], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x240], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x260], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov r13, rsp
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x68], rsp
mov eax, 0x70
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x78], rsp
mov eax, 0x70
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x50], rsp
mov eax, 0x30
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x1a0], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x110], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x70], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x218], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x228], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0xa8], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rax, rsp
cmp byte [rsi + 0xa0], 0
mov qword [rbp + 0x230], rsi
mov qword [rbp + 0x1e8], rax
mov qword [rbp + 0x258], r13
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x20], rdx
mov qword [rbp - 0x10], r8
jne 0x140050913
cmp qword [rsi + 0x98], 0
jne 0x140050922
mov qword [rax], 0
mov rdi, rax
add rdi, 8
xor eax, eax
mov qword [rbp + 0x250], rax
jmp 0x14005147e
xor eax, eax
mov qword [r13], rax
mov qword [r13 + 0x10], rax
jmp 0x140050b81
mov qword [rbp + 0x130], r9
xor eax, eax
mov qword [r13], rax
mov qword [r13 + 0x10], rax
sub rsp, 0x20
call qword [sym.imp.kernel32.dll_GetEnvironmentStringsW]
add rsp, 0x20
test rax, rax
je 0x140053ab2
movabs r13, 0x55421be555483146
movabs rbx, 0x4c332f46773c43d2
mov rcx, qword [rbp + 0x178]
add rcx, 0x20
mov qword [rbp - 0x68], rcx
mov rcx, qword [rbp + 0x1f8]
add rcx, 0x20
mov qword [rbp + 0x138], rcx
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x238], rax
mov r8, qword [rbp + 0x238]
cmp word [r8], 0
je 0x140050b5e
mov rdi, r8
xor eax, eax
mov rsi, rax
lea rax, [r13 + 1]
xor rax, r13
add rax, rsi
cmp word [rdi + rsi*2], 0
jne 0x1400509a4
lea r8, [rdi + rax*2]
cmp rsi, 1
je 0x140050994
test rsi, rsi
je 0x140053932
lea rax, [rsi + rsi]
mov ecx, 2
xor r14d, r14d
cmp word [rdi + rcx], 0x3d
je 0x1400509f3
lea rdx, [rbx + 1]
xor rdx, rbx
add r14, rdx
add rcx, 2
cmp rax, rcx
jne 0x1400509d7
jmp 0x140050994
mov qword [rbp + 0x238], r8
cmp r14, rsi
jae 0x140053932
movabs rax, 0x7fe3616c2b4ac046
lea r8, [rax + 1]
xor r8, rax
add r8, r14
sub rsp, 0x20
mov r12, qword [rbp + 0x130]
mov rcx, r12
mov rdx, rdi
call fcn.140059e1e
add rsp, 0x20
movabs rcx, 0x723c89bda174be19
lea rax, [rcx + 2]
xor rax, rcx
add rax, r14
sub rsi, rax
jb 0x140053932
lea rdx, [rdi + rax*2]
sub rsp, 0x20
mov r15, qword [rbp + 0x138]
mov rcx, r15
mov r8, rsi
call fcn.140059e1e
add rsp, 0x20
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
mov rax, qword [rbp + 0x1f8]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov rsi, qword [rax]
mov rdi, qword [rax + 8]
mov r14, qword [rax + 0x10]
mov r12, qword [rax + 0x18]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
mov rax, qword [rbp + 0x260]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
movabs r15, 0x8000000000000000
cmp rsi, r15
je 0x140050b5e
lea rax, [rdi + r14]
mov rdx, qword [rbp + 0x128]
mov qword [rdx], rdi
mov qword [rdx + 8], rax
mov word [rdx + 0x10], 0
sub rsp, 0x20
mov rcx, qword [rbp - 0x68]
call fcn.14005bc8c
add rsp, 0x20
mov r8, qword [rbp + 0x178]
mov qword [r8], rsi
mov qword [r8 + 8], rdi
mov qword [r8 + 0x10], r14
mov qword [r8 + 0x18], r12
sub rsp, 0x20
mov rsi, qword [rbp + 0x240]
mov rcx, rsi
mov rdx, qword [rbp + 0x258]
mov r9, qword [rbp + 0x260]
call fcn.140057ae6
add rsp, 0x20
mov rax, qword [rsi]
cmp rax, r15
je 0x14005098d
test rax, rax
je 0x14005098d
mov rax, qword [rbp + 0x240]
mov r8, qword [rax + 8]
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
jmp 0x14005098d
sub rsp, 0x20
mov rcx, qword [rbp + 0x80]
call qword [sym.imp.kernel32.dll_FreeEnvironmentStringsW]
add rsp, 0x20
mov rsi, qword [rbp + 0x230]
mov r13, qword [rbp + 0x258]
mov rax, qword [rsi + 0x88]
test rax, rax
je 0x140050ba9
mov r15, qword [rsi + 0x90]
mov rdi, qword [rsi + 0x98]
mov ecx, 1
mov qword [rbp + 0x238], rcx
jmp 0x140050bb4
xor eax, eax
mov qword [rbp + 0x238], rax
xor edi, edi
movabs r12, 0x1a6b758319ca7a44
mov rcx, qword [rbp + 0x90]
add rcx, 0x38
mov qword [rbp + 0x128], rcx
mov rcx, qword [rbp + 0x120]
add rcx, 0x38
mov qword [rbp + 0x130], rcx
mov rcx, qword [rbp + 0x1e0]
add rcx, 8
mov qword [rbp + 0x178], rcx
mov rcx, qword [rbp + 0x98]
add rcx, 8
mov qword [rbp + 0x138], rcx
xor ebx, ebx
test rdi, rdi
je 0x1400512c3
cmp qword [rbp + 0x238], 0
je 0x140053932
test rbx, rbx
jne 0x140050c49
mov ecx, 1
mov qword [rbp + 0x238], rcx
mov rbx, rax
test r15, r15
je 0x140050c44
mov rbx, qword [rbx + 0x3d8]
dec r15
jne 0x140050c38
xor r15d, r15d
xor eax, eax
movzx ecx, word [rbx + 0x3d2]
mov r14, rbx
mov r13, r15
cmp r15, rcx
jb 0x140050c8b
mov rcx, qword [r14 + 0x160]
test rcx, rcx
je 0x140053932
lea rdx, [r12 + 1]
xor rdx, r12
add rax, rdx
movzx r13d, word [r14 + 0x3d0]
mov r14, rcx
cmp r13w, word [rcx + 0x3d2]
jae 0x140050c5b
movabs rcx, 0x3f6de613f145c306
lea r15, [rcx + 1]
xor r15, rcx
add r15, r13
test rax, rax
jne 0x140050ca9
mov rbx, r14
jmp 0x140050cc2
mov rbx, qword [r14 + r15*8 + 0x3d8]
dec rax
je 0x140050cbf
mov rbx, qword [rbx + 0x3d8]
jmp 0x140050cb1
xor r15d, r15d
dec rdi
mov qword [rbp + 0x260], rdi
imul rax, r13, 0x38
lea rdi, [r14 + rax]
add rdi, 0x168
shl r13, 5
movabs rax, 0x8000000000000000
cmp qword [r14 + r13], rax
jne 0x140050d48
mov r13, qword [rbp + 0x258]
mov r12, qword [r13]
test r12, r12
je 0x140051230
mov r14, qword [r13 + 8]
mov rsi, r12
mov qword [rbp + 0x240], r14
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x30]
sub rsp, 0x20
mov rcx, rsi
call fcn.14005715f
add rsp, 0x20
test rax, rax
je 0x140050f1f
test r14, r14
je 0x140051230
dec r14
mov rsi, qword [rsi + rdx*8 + 0x3d8]
jmp 0x140050d11
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
sub rsp, 0x20
mov rsi, qword [rbp + 0x248]
mov rcx, rsi
call fcn.1400217c7
add rsp, 0x20
mov al, byte [rdi + 0x18]
mov byte [rsi + 0x18], al
movups xmm0, xmmword [rsi]
mov rcx, qword [rbp + 0x250]
movups xmmword [rcx], xmm0
mov rax, qword [rsi + 0x10]
mov qword [rcx + 0x10], rax
mov al, byte [rsi + 0x18]
mov byte [rcx + 0x18], al
mov eax, dword [rsi + 0x19]
mov dword [rcx + 0x19], eax
movzx eax, word [rsi + 0x1d]
mov word [rcx + 0x1d], ax
mov al, byte [rsi + 0x1f]
mov byte [rcx + 0x1f], al
mov r8, qword [rdi + 0x30]
movabs rax, 0x9e3469f31dda7c44
lea ecx, [rax + 1]
xor ecx, eax
mov rsi, r8
shl rsi, cl
test r8, r8
js 0x140053932
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
ja 0x140053932
mov rdx, qword [rdi + 0x28]
test rsi, rsi
jne 0x140050dee
mov r12d, 2
xor eax, eax
mov qword [rbp + 0x240], rax
mov rdi, r8
jmp 0x140050e2d
mov qword [rbp + 0x1f8], rdx
mov al, byte [0x1400a5058]
sub rsp, 0x20
xor ecx, ecx
mov rdi, r8
mov rdx, rsi
call fcn.14004fc65
add rsp, 0x20
test rax, rax
je 0x140053932
mov r12, rax
mov rax, rdi
mov qword [rbp + 0x240], rdi
mov rdx, qword [rbp + 0x1f8]
add r14, r13
sub rsp, 0x20
mov rcx, r12
mov r8, rsi
call fcn.140084cc0
add rsp, 0x20
mov r13, qword [rbp + 0x250]
mov rax, qword [rbp + 0x240]
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], r12
mov qword [r13 + 0x30], rdi
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
sub rsp, 0x20
mov rsi, qword [rbp + 0x208]
mov rcx, rsi
call fcn.1400217c7
add rsp, 0x20
mov al, byte [r14 + 0x18]
mov byte [rsi + 0x18], al
movups xmm0, xmmword [rsi]
mov r9, qword [rbp + 0x1a8]
movups xmmword [r9], xmm0
mov rax, qword [rsi + 0x10]
mov qword [r9 + 0x10], rax
mov al, byte [rsi + 0x18]
mov byte [r9 + 0x18], al
mov eax, dword [rsi + 0x19]
mov dword [r9 + 0x19], eax
movzx eax, word [rsi + 0x1d]
mov word [r9 + 0x1d], ax
mov al, byte [rsi + 0x1f]
mov byte [r9 + 0x1f], al
sub rsp, 0x20
mov rsi, qword [rbp + 0x220]
mov rcx, rsi
mov rdx, qword [rbp + 0x258]
mov r8, r13
call fcn.140057ae6
add rsp, 0x20
mov rax, qword [rsi]
movabs rcx, 0x8000000000000000
cmp rax, rcx
je 0x140050f11
test rax, rax
je 0x140050f11
mov rax, qword [rbp + 0x220]
mov r8, qword [rax + 8]
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
xor eax, eax
mov r13, qword [rbp + 0x258]
jmp 0x140051232
mov r8, qword [rbp + 0x200]
mov byte [r8], 0
test r14, r14
jne 0x140050f6f
mov rax, qword [rbp - 0x70]
mov qword [rax], rsi
mov qword [rax + 8], 0
mov qword [rax + 0x10], rdx
sub rsp, 0x20
mov rsi, qword [rbp + 0x1e0]
mov rcx, rsi
mov rdx, rax
mov r8, qword [rbp + 0x200]
call fcn.1400571fd
mov r8, qword [rbp + 0x200]
add rsp, 0x20
jmp 0x14005118c
mov rax, qword [rsi + rdx*8 + 0x3d8]
dec r14
jne 0x140050f85
mov rsi, qword [rbp + 0xa0]
jmp 0x140050fa0
mov rsi, qword [rbp + 0xa0]
movzx ecx, word [rax + 0x3d2]
mov rax, qword [rax + rcx*8 + 0x3d8]
dec r14
jne 0x140050f8c
movzx ecx, word [rax + 0x3d2]
dec rcx
mov rdx, qword [rbp - 0x78]
mov qword [rdx], rax
mov qword [rdx + 8], 0
mov qword [rdx + 0x10], rcx
sub rsp, 0x20
mov rdi, qword [rbp + 0x90]
mov rcx, rdi
call fcn.1400571fd
add rsp, 0x20
mov rax, qword [rdi + 0x30]
mov rcx, qword [rbp + 0x88]
mov qword [rcx + 0x30], rax
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmmword [rcx + 0x20], xmm2
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
mov rax, qword [rbp + 0x128]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov r8, qword [rdi + 0x58]
mov rax, qword [rdi + 0x60]
mov rcx, qword [rdi + 0x68]
movzx r9d, word [r8 + 0x3d2]
mov rdx, r8
cmp rcx, r9
movabs r9, 0x16cb82b0d3ec1fa0
jb 0x140051068
mov rdx, qword [r8 + 0x160]
test rdx, rdx
je 0x140051060
lea rcx, [r9 + 1]
xor rcx, r9
add rax, rcx
movzx ecx, word [r8 + 0x3d0]
mov r8, rdx
cmp cx, word [rdx + 0x3d2]
jae 0x140051034
jmp 0x140051068
mov rcx, rax
mov rax, r8
xor edx, edx
imul r8, rcx, 0x38
mov r9, rcx
shl r9, 5
mov r10, qword [rdx + r8 + 0x198]
mov r11, qword [rbp + 0x120]
mov qword [r11 + 0x30], r10
movups xmm0, xmmword [rdx + r8 + 0x168]
movups xmm1, xmmword [rdx + r8 + 0x178]
movups xmm2, xmmword [rdx + r8 + 0x188]
movups xmmword [r11 + 0x20], xmm2
movups xmmword [r11 + 0x10], xmm1
movups xmmword [r11], xmm0
mov r11, qword [rbp + 0x88]
mov r10, qword [r11 + 0x30]
mov qword [rdx + r8 + 0x198], r10
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmm2, xmmword [r11 + 0x20]
movups xmmword [rdx + r8 + 0x188], xmm2
movups xmmword [rdx + r8 + 0x178], xmm1
movups xmmword [rdx + r8 + 0x168], xmm0
movups xmm0, xmmword [rdx + r9]
movups xmm1, xmmword [rdx + r9 + 0x10]
mov r8, qword [rbp + 0x130]
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdx + r9 + 0x10], xmm1
movups xmmword [rdx + r9], xmm0
test rax, rax
jne 0x140051126
mov rdi, qword [rbp + 0x1e0]
jmp 0x14005114e
movabs r9, 0x77a650b5ae971522
lea r8, [r9 + 1]
xor r8, r9
add rcx, r8
mov rdx, qword [rdx + rcx*8 + 0x3d8]
dec rax
mov rdi, qword [rbp + 0x1e0]
jne 0x140051157
mov r8, qword [rbp + 0x200]
jmp 0x14005116a
mov r8, qword [rbp + 0x200]
mov rdx, qword [rdx + 0x3d8]
dec rax
jne 0x14005115e
mov ecx, 0xb
mov rsi, qword [rbp + 0x120]
rep movsq qword [rdi], qword [rsi]
mov rsi, qword [rbp + 0x1e0]
mov qword [rsi + 0x58], rdx
mov qword [rsi + 0x60], 0
mov r14, qword [rsi]
mov ecx, 0xa
mov rax, qword [rbp + 0x1c0]
mov rdi, rax
mov rsi, qword [rbp + 0x178]
rep movsq qword [rdi], qword [rsi]
dec qword [r13 + 0x10]
cmp byte [r8], 0
jne 0x1400511c3
mov ecx, 0xa
mov rdi, qword [rbp + 0x1b0]
mov rsi, rax
jmp 0x14005121e
mov rcx, qword [rbp + 0x240]
test rcx, rcx
je 0x140053932
mov rax, qword [r12 + 0x3d8]
mov qword [r13], rax
dec rcx
mov qword [r13 + 8], rcx
mov qword [rax + 0x160], 0
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
mov ecx, 0xa
mov rdi, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x1c0]
rep movsq qword [rdi], qword [rsi]
movabs rax, 0x8000000000000000
cmp r14, rax
jne 0x140051248
xor eax, eax
mov rdi, qword [rbp + 0x260]
movabs r12, 0x1a6b758319ca7a44
jmp 0x140050c08
mov rax, qword [rbp + 0x98]
mov qword [rax], r14
mov ecx, 0xa
mov rdi, qword [rbp + 0x138]
mov rsi, qword [rbp + 0x1b0]
rep movsq qword [rdi], qword [rsi]
mov rdi, qword [rax + 0x38]
mov rsi, qword [rax + 0x40]
sub rsp, 0x20
mov rcx, rax
call fcn.14004d3f4
add rsp, 0x20
shl rdi, 1
mov eax, 0
test rdi, rdi
mov rdi, qword [rbp + 0x260]
movabs r12, 0x1a6b758319ca7a44
je 0x140050c08
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
xor eax, eax
jmp 0x140050c08
mov rax, qword [r13 + 0x10]
mov rsi, qword [rbp + 0x1e8]
mov qword [rsi + 0x18], rax
movups xmm0, xmmword [r13]
movups xmmword [rsi + 8], xmm0
movabs rax, 0x987920e78dde9f8e
lea rcx, [rax + 1]
xor rcx, rax
mov qword [rsi], rcx
movabs rax, 0xacd87218170aa84a
lea r8, [rax + 4]
xor r8, rax
sub rsp, 0x20
lea rdx, [0x1400943cb]
mov rdi, qword [rbp - 0x50]
mov rcx, rdi
call fcn.140061af8
add rsp, 0x20
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
add rcx, rax
mov rdx, qword [rbp - 0x58]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
mov word [rdx + 0x10], 0
mov rbx, qword [rbp + 0xa8]
mov rcx, rbx
add rcx, 0x20
sub rsp, 0x20
call fcn.14005bc8c
add rsp, 0x20
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x14005144f
movabs r15, 0x21d3cf265c1e9fb6
mov rax, qword [rsi + 0x10]
mov qword [rbp + 0x258], rax
mov rsi, qword [rbx + 0x28]
mov rdi, qword [rbx + 0x30]
xor eax, eax
mov qword [rbp + 0x250], rax
lea rcx, [rdx + 0x168]
mov qword [rbp + 0x260], rdx
movzx eax, word [rdx + 0x3d2]
mov qword [rbp + 0x238], rax
imul r12, rax, 0x38
xor r13d, r13d
test r12, r12
je 0x1400513fb
mov r14, r13
lea r13, [r15 + 1]
xor r13, r15
add r13, r14
lea rbx, [rcx + 0x38]
mov r8, qword [rcx + 0x28]
mov r9, qword [rcx + 0x30]
sub rsp, 0x20
mov rcx, rsi
mov rdx, rdi
call fcn.14004fc87
add rsp, 0x20
add r12, 0xffffffffffffffc8
mov rcx, rbx
cmp al, 1
je 0x1400513b6
movzx eax, al
test eax, eax
jne 0x140051402
jmp 0x14005142c
mov r14, qword [rbp + 0x238]
mov rdx, qword [rbp + 0x260]
mov rax, qword [rbp + 0x258]
test rax, rax
je 0x140051458
dec rax
mov qword [rbp + 0x258], rax
mov rdx, qword [rdx + r14*8 + 0x3d8]
jmp 0x140051393
mov rcx, qword [rbp + 0x260]
test rcx, rcx
je 0x14005144f
shl r14, 5
mov rax, qword [rcx + r14 + 8]
mov qword [rbp + 0x250], rax
mov r15, qword [rcx + r14 + 0x10]
jmp 0x140051458
xor eax, eax
mov qword [rbp + 0x250], rax
mov rsi, qword [rbp + 0x230]
mov rdi, qword [rbp + 0x1e8]
add rdi, 8
sub rsp, 0x20
mov rcx, qword [rbp + 0xa8]
call fcn.14004d3f4
add rsp, 0x20
mov rbx, qword [rsi + 0x10]
lea r14, str.program_path_has_no_file_name
test rbx, rbx
jne 0x1400514fe
mov rsi, qword [rsi + 8]
movabs rax, 0x1376f10f1b23233
lea rcx, [rax + 4]
xor rcx, rax
cmp rbx, rcx
jae 0x140051637
mov cl, byte [rbx + rsi - 1]
sub rsp, 0x20
call fcn.140061b76
add rsp, 0x20
test al, al
jne 0x14005148e
xor eax, eax
cmp rbx, rax
je 0x1400516ae
movzx ecx, byte [rsi + rax]
cmp ecx, 0x2f
je 0x140051551
inc rax
cmp ecx, 0x5c
jne 0x140051537
movabs rax, 0x1dbe7be5f6938a23
lea r8, [rax + 4]
xor r8, rax
sub rsp, 0x20
lea rcx, str.__fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov rdx, rsi
call fcn.140085700
add rsp, 0x20
test eax, eax
lea rax, [0x140061b6f]
lea rdx, [fcn.140061b76]
cmove rdx, rax
mov cl, byte [rbx + rsi - 1]
sub rsp, 0x20
call rdx
add rsp, 0x20
test al, al
jne 0x14005148e
lea rcx, [rsi + rbx]
add rcx, 0xfffffffffffffffc
lea rdx, [rsi + rbx]
sub rdx, rcx
cmp rdx, 4
mov eax, 4
cmovb rax, rdx
test rax, rax
jne 0x140051775
mov dl, byte [rcx]
lea r8d, [rdx - 0x41]
cmp r8b, 0x1a
setb r8b
shl r8b, 5
or r8b, dl
cmp r8b, 0x2e
jne 0x140051ce6
mov r12, rsi
mov r14, rbx
movabs r9, 0x575b5c1e4146b074
xor edx, edx
lea r8, [r9 + 1]
xor r8, r9
lea r9, str..exeprogram_not_found
add rdx, r8
cmp rdx, rax
je 0x14005214a
mov r10b, byte [rcx + rdx]
lea r11d, [r10 - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
or r11b, r10b
mov r10b, byte [rdx + r9]
lea esi, [r10 - 0x41]
cmp sil, 0x1a
setb bl
shl bl, 5
or bl, r10b
cmp r11b, bl
je 0x1400517b4
jmp 0x14005214d
xor eax, eax
cmp rbx, rax
je 0x1400516ae
movzx ecx, byte [rsi + rax]
cmp ecx, 0x2f
je 0x140051551
inc rax
cmp ecx, 0x5c
jne 0x140051ce8
jmp 0x140051551
mov rdx, rax
xor ecx, ecx
sub rsp, 0x20
call sub.kernel32.dll_GetLastError
add rsp, 0x20
ud2