Function at 0x140002ae0
Capabilities:
Execute command
Get common file path
Set console window title

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x220]
sub rsp, 0x320
mov rax, qword [0x14009c040]
xor rax, rsp
mov qword [rbp + 0x210], rax
xor edi, edi
lea rcx, str.color_B
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
lea rcx, str.Horizon
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov dword [rsp + 0x30], 3
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
mov rbx, 0xffffffffffffffff
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.USER32.dll_SetWindowPos]
lea rax, [rbp]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rdi + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xorps xmm0, xmm0
test eax, eax
js 0x140002c39
movups xmmword [rbp - 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x10], xmm1
lea rax, [rbp]
nop dword [rax + rax]
inc rbx
cmp word [rax + rbx*2], di
jne 0x140002ba0
mov r8, rbx
lea rdx, [rbp]
lea rcx, [rbp - 0x20]
call fcn.140003c20
nop
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 7
cmova rdx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x10]
lea r8, [rdx + rax*2]
lea rdx, [rbp - 0x20]
cmova rdx, qword [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.1400039b0
nop
mov rdx, qword [rbp - 8]
cmp rdx, 7
jbe 0x140002c26
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002c21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002c21
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
movdqa xmm0, xmmword [0x14008d100]
movdqu xmmword [rbp - 0x10], xmm0
mov word [rbp - 0x20], di
jmp 0x140002c59
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x28], rdi
xor r8d, r8d
lea rdx, [0x14007de27]
lea rcx, [rbp - 0x40]
call fcn.140004020
nop
movabs rcx, 0x7fffffffffffffff
mov r12, rcx
mov rax, qword [rbp - 0x30]
sub r12, rax
cmp r12, 5
jb 0x14000355b
lea r13, [rbp - 0x40]
mov r14, qword [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova r13, r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
lea r15, [rax + 5]
mov esi, 0xf
mov ebx, esi
lea rdi, [rsp + 0x40]
movabs rdx, 0x8000000000000000
lea r8d, [rsi + 7]
cmp r15, rbx
jbe 0x140002d2f
mov rbx, r15
or rbx, rsi
cmp rbx, rcx
jbe 0x140002cf1
mov rbx, rcx
lea rax, [rdx + 0x27]
mov rcx, rax
call fcn.140077730
test rax, rax
je 0x140002e6e
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
mov rax, qword [rbp - 0x30]
jmp 0x140002d2a
cmp rbx, r8
cmovb rbx, r8
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140002d14
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140003519
jmp 0x140002cce
test rcx, rcx
je 0x140002d27
call fcn.140077730
mov rdi, rax
mov rax, qword [rbp - 0x30]
jmp 0x140002d2a
mov rdi, rcx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rbx
mov r8, rax
mov rdx, r13
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [str._test]
mov rcx, qword [rbp - 0x30]
mov dword [rdi + rcx], eax
movzx eax, byte [0x14007de6c]
mov byte [rdi + rcx + 4], al
mov byte [rdi + r15], 0
mov rdi, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rbx, qword [rsp + 0x40]
call fcn.1400785f8
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rdi
lea r8, [rsp + 0x60]
mov edx, eax
lea rcx, [rbp - 0x70]
call fcn.140001ff0
nop
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x60]
call fcn.140002a00
movsd xmm0, qword [rax]
movsd qword [rbp - 0x80], xmm0
mov ecx, dword [rax + 8]
mov dword [rbp - 0x50], ecx
lea rax, [0x14009c0c8]
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x140002e16
cmp eax, 1
sete bl
mov rdx, qword [rbp - 0x58]
cmp rdx, 7
jbe 0x140002e27
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002e22
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002e22
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov bl, 1
test ecx, ecx
jne 0x14000351f
jmp 0x140002dd8
call fcn.140077774
movdqa xmm0, xmmword [0x14008d100]
movdqu xmmword [rbp - 0x60], xmm0
xor eax, eax
mov word [rbp - 0x70], ax
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x140002e7c
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002e75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002e75
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
xor eax, eax
test bl, bl
je 0x14000305e
lea r13, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova r13, r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
mov rbx, rsi
lea rdi, [rsp + 0x40]
cmp r15, rbx
jbe 0x140002f34
mov rbx, r15
or rbx, 0xf
movabs rcx, 0x7fffffffffffffff
cmp rbx, rcx
jbe 0x140002ef9
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140077730
test rax, rax
je 0x140003052
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140002f2f
cmp rbx, 0x16
mov ecx, 0x16
cmovb rbx, rcx
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140002f22
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140003534
jmp 0x140002eda
test rcx, rcx
je 0x140002f2c
call fcn.140077730
mov rdi, rax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rbx
mov rbx, qword [rbp - 0x30]
mov r8, rbx
mov rdx, r13
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [str._test]
mov dword [rdi + rbx], eax
movzx eax, byte [0x14007de6c]
mov byte [rdi + rbx + 4], al
mov byte [rdi + r15], 0
mov rdi, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rbx, qword [rsp + 0x40]
call fcn.1400785f8
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rdi
lea r8, [rbp - 0x50]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.140001ff0
nop
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 7
cmova rcx, qword [rsp + 0x60]
call fcn.140078858
mov rdx, rax
shr rax, 0x20
test eax, eax
jne 0x140003561
mov rdx, qword [rsp + 0x78]
cmp rdx, 7
jbe 0x140003007
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003002
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003002
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
movdqa xmm0, xmmword [0x14008d100]
movdqu xmmword [rsp + 0x70], xmm0
xor r8d, r8d
mov word [rsp + 0x60], r8w
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x140003061
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003059
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003059
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
xor r8d, r8d
cmp r12, 0xd
jb 0x140003577
lea r12, [rbp - 0x40]
mov r13, qword [rbp - 0x28]
cmp r13, 0xf
cmova r12, r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
mov rax, qword [rbp - 0x30]
lea r15, [rax + 0xd]
mov rbx, rsi
lea rdi, [rsp + 0x40]
cmp r15, rbx
jbe 0x140003133
mov rbx, r15
or rbx, 0xf
movabs rcx, 0x7fffffffffffffff
cmp rbx, rcx
jbe 0x1400030ef
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140077730
test rax, rax
je 0x140003280
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
mov rax, qword [rbp - 0x30]
jmp 0x14000312e
cmp rbx, 0x16
mov ecx, 0x16
cmovb rbx, rcx
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140003118
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000353a
jmp 0x1400030cc
test rcx, rcx
je 0x14000312b
call fcn.140077730
mov rdi, rax
mov rax, qword [rbp - 0x30]
jmp 0x14000312e
mov rdi, r8
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rbx
mov r8, rax
mov rdx, r12
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [str._testconfigs]
mov r12, qword [rbp - 0x30]
movsd qword [rdi + r12], xmm0
mov eax, dword [0x14007de78]
mov dword [rdi + r12 + 8], eax
movzx eax, byte [0x14007de7c]
mov byte [rdi + r12 + 0xc], al
mov byte [rdi + r15], 0
mov rdi, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rbx, qword [rsp + 0x40]
call fcn.1400785f8
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rdi
lea r8, [rbp - 0x50]
mov edx, eax
lea rcx, [rbp - 0x70]
call fcn.140001ff0
nop
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x60]
call fcn.140002a00
movsd xmm0, qword [rax]
movsd qword [rbp - 0x80], xmm0
mov ecx, dword [rax + 8]
mov dword [rbp - 0x50], ecx
lea rax, [0x14009c0c8]
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x140003228
cmp eax, 1
sete bl
mov rdx, qword [rbp - 0x58]
cmp rdx, 7
jbe 0x140003239
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003234
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003234
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov bl, 1
test ecx, ecx
jne 0x140003540
jmp 0x1400031ea
call fcn.140077774
movdqa xmm0, xmmword [0x14008d100]
movdqu xmmword [rbp - 0x60], xmm0
xor eax, eax
mov word [rbp - 0x70], ax
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x14000328e
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003287
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003287
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
xor eax, eax
test bl, bl
je 0x140003478
lea rdi, [rbp - 0x40]
cmp r13, 0xf
cmova rdi, r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
lea rbx, [rsp + 0x40]
cmp r15, 0xf
jbe 0x140003343
mov rsi, r15
or rsi, 0xf
movabs rcx, 0x7fffffffffffffff
cmp rsi, rcx
jbe 0x140003308
mov rsi, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140077730
test rax, rax
je 0x14000346c
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14000333e
cmp rsi, 0x16
mov ecx, 0x16
cmovb rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x140003331
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140003555
jmp 0x1400032e9
test rcx, rcx
je 0x14000333b
call fcn.140077730
mov rbx, rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rsi
mov r8, r12
mov rdx, rdi
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [str._testconfigs]
movsd qword [rbx + r12], xmm0
mov eax, dword [0x14007de78]
mov dword [rbx + r12 + 8], eax
movzx eax, byte [0x14007de7c]
mov byte [rbx + r12 + 0xc], al
mov byte [rbx + r15], 0
mov rdi, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rbx, qword [rsp + 0x40]
call fcn.1400785f8
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rdi
lea r8, [rbp - 0x50]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.140001ff0
nop
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 7
cmova rcx, qword [rsp + 0x60]
call fcn.140078858
mov rdx, rax
shr rax, 0x20
test eax, eax
jne 0x140003503
mov rdx, qword [rsp + 0x78]
cmp rdx, 7
jbe 0x140003423
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000341e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000341e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
movdqa xmm0, xmmword [0x14008d100]
movdqu xmmword [rsp + 0x70], xmm0
xor ecx, ecx
mov word [rsp + 0x60], cx
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x140003478
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003473
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003473
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140077774
call fcn.14000ab40
lea rcx, str._Horizon__Press_enter_to_abort_the_process
call fcn.140001720
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_istream_char__struct_std::char_traits_char__::get_void____ptr64]
nop
cmp r13, 0xf
jbe 0x1400034d1
lea rdx, [r13 + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x1400034c9
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400034c9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r14
call fcn.140077774
xor eax, eax
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.140077710
lea r11, [rsp + 0x320]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
shr rdx, 0x20
lea r8, [rsp + 0x60]
lea rcx, str.create_directory
call fcn.140002930
nop
call fcn.140001880
nop
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x50]
lea rcx, str.exists
call fcn.1400029a0
nop
call fcn.140001880
int3
call fcn.140001880
nop
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x50]
lea rcx, str.exists
call fcn.1400029a0
nop
call fcn.140001880
int3
call fcn.140001950
nop
shr rdx, 0x20
lea r8, [rsp + 0x60]
lea rcx, str.create_directory
call fcn.140002930
nop
call fcn.140001950
int3