Function at 0x14002be60
Capabilities:
Get common file path
Set current directory

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x330
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x370], rbx
mov rax, qword [0x140126108]
xor rax, rsp
mov qword [rsp + 0x320], rax
mov qword [rsp + 0x50], r8
mov r13, rdx
lea rdi, str.CuiMainConsoleApp::StartScan
mov qword [rsp + 0x20], rdi
lea r9, [0x1400f0978]
mov r8d, 0x101
lea rdx, str..uiMainConsole.cpp
mov ecx, 0x44
call fcn.1400580a0
mov word [rsp + 0x110], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x112]
call fcn.1400a0a70
lea rdx, [rsp + 0x110]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xor esi, esi
lea r15d, [rsi + 1]
test eax, eax
jne 0x14002bf35
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
lea r9, str._s___::GetCurrentDirectoryW_failed_with_Windows_error_code:__d_.
mov r8d, 0x109
lea rdx, str..uiMainConsole.cpp
lea ecx, [rsi + 0x45]
call fcn.1400580a0
mov dword [rsp + 0x40], esi
jmp 0x14002bf3a
mov dword [rsp + 0x40], r15d
lea rax, [0x1400d8910]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xc8], 7
mov qword [rsp + 0xc0], rsi
mov word [rsp + 0xb0], si
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], rsi
mov word [rsp + 0xd8], 0
lea rax, [0x140127b40]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0xf8], rsi
mov r8, r15
lea rdx, reloc.WS2_32.dll_htons
lea rcx, [rsp + 0xa8]
call fcn.14000f160
mov rdi, qword [rsp + 0xe8]
cmp rdi, 0x400
ja 0x14002c01c
mov rcx, qword [rsp + 0xf0]
cmp rcx, 0x400
je 0x14002c01c
cmp rcx, 0x400
jae 0x14002bff9
mov r8, rdi
mov edx, 0x400
lea rcx, [rsp + 0xd0]
call fcn.14000f350
mov rcx, qword [rsp + 0xf0]
mov qword [rsp + 0xe8], rdi
lea rax, [rsp + 0xd8]
cmp rcx, 8
cmovae rax, qword [rsp + 0xd8]
mov word [rax + rdi*2], 0
mov byte [rsp + 0x108], 1
mov dword [rsp + 0x10c], esi
mov r8, r15
lea rdx, reloc.WS2_32.dll_htons
lea rcx, [rsp + 0xa8]
call fcn.14000f160
mov rdi, qword [r13 + 8]
cmp rdi, qword [r13 + 0x10]
jbe 0x14002c051
call fcn.14009d0b0
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], rdi
mov r14, qword [r13 + 0x10]
cmp qword [r13 + 8], r14
jbe 0x14002c06a
call fcn.14009d0b0
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
or r12, 0xffffffffffffffff
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
test rbp, rbp
je 0x14002c08d
cmp rbp, r13
je 0x14002c092
call fcn.14009d0b0
cmp rbx, r14
je 0x14002c179
test rbp, rbp
jne 0x14002c0a5
call fcn.14009d0b0
cmp rbx, qword [rbp + 0x10]
jb 0x14002c0b0
call fcn.14009d0b0
cmp qword [rbx + 0x20], 8
jb 0x14002c0bd
mov rsi, qword [rbx + 8]
jmp 0x14002c0c1
lea rsi, [rbx + 8]
test rsi, rsi
je 0x14002c0da
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
jmp 0x14002c0dc
xor ecx, ecx
movsxd rcx, ecx
add rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xf0]
mov rax, rdx
sub rax, qword [rsp + 0xe8]
cmp rax, rcx
jae 0x14002c10f
add rdx, rdx
lea rcx, [rsp + 0xd0]
call fcn.14002e290
cmp byte [rsp + 0x108], 0
jne 0x14002c136
mov r9, r12
xor r8d, r8d
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0xd0]
call fcn.1400137d0
jmp 0x14002c13e
mov byte [rsp + 0x108], 0
test rsi, rsi
je 0x14002c165
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0xd0]
call fcn.140013670
cmp rbx, qword [rbp + 0x10]
jb 0x14002c170
call fcn.14009d0b0
add rbx, 0x28
jmp 0x14002c083
call fcn.140075174
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x14002c198
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov rcx, qword [rsp + 0x50]
mov dword [rcx], eax
mov r9d, r15d
mov r8d, eax
lea rdx, str._d_t_d_t
lea rcx, [rsp + 0x30]
call fcn.140007750
cmp qword [rsp + 0xf0], 8
jb 0x14002c1eb
mov rsi, qword [rsp + 0xd8]
test rsi, rsi
jne 0x14002c1f3
xor r13d, r13d
jmp 0x14002c205
lea rsi, [rsp + 0xd8]
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
mov rbp, rsi
mov rbx, qword [rsp + 0x30]
sub rbp, rbx
sar rbp, 1
mov r14d, dword [rbx - 0x10]
lea edi, [r14 + r13]
sub r15d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r15d
jge 0x14002c23a
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140006b70
mov rbx, qword [rsp + 0x30]
cmp rbp, r14
ja 0x14002c243
lea rsi, [rbx + rbp*2]
movsxd rdx, r13d
add rdx, rdx
lea rcx, [rbx + r14*2]
mov r9, rdx
mov r8, rsi
call fcn.14009d1a0
test edi, edi
js 0x14002c425
cmp edi, dword [rbx - 0xc]
jg 0x14002c425
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], 0
cmp dword [rbx - 8], 1
jle 0x14002c28d
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140006670
mov rbx, qword [rsp + 0x30]
xor esi, esi
mov dword [rsp + 0x60], esi
xor edx, edx
lea r8d, [rsi + 0x3c]
lea rcx, [rsp + 0x64]
call fcn.1400a0a70
lea r8, str.FC_MANUAL_SCAN
xor edx, edx
xor ecx, ecx
call qword [0x1400d78c0]
mov r11, rax
mov qword [rsp + 0x48], rax
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r9d, [rcx + rcx - 2]
mov qword [rsp + 0x20], r11
lea edx, [rsi + 3]
mov r8d, 0xd18
lea rcx, [rsp + 0x60]
call qword [0x1400d78c8]
mov r8, qword [rsp + 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x60]
call qword [0x1400d78b0]
mov r8, qword [rsp + 0x48]
lea edx, [rsi + 2]
lea rcx, [rsp + 0x60]
call qword [0x1400d78d0]
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x60]
call qword [0x1400d78b8]
lea rcx, [rsp + 0x48]
call qword [0x1400d78a8]
test rbx, rbx
jne 0x14002c332
mov ecx, esi
jmp 0x14002c34c
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14002c41a
cmp ecx, dword [rbx - 0xc]
jg 0x14002c41a
mov dword [rbx - 0x10], ecx
movsxd rax, ecx
mov word [rbx + rax*2], si
cmp dword [rsp + 0x40], esi
je 0x14002c373
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rax, str.CuiMainConsoleApp::StartScan
mov qword [rsp + 0x20], rax
lea r9, str._s______
mov r8d, 0x143
lea rdx, str..uiMainConsole.cpp
mov ecx, 0x44
call fcn.1400580a0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
add r12d, 0xffffffff
test r12d, r12d
jg 0x14002c3bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rax, [0x1400d8910]
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0xf0], 8
jb 0x14002c3e2
mov rcx, qword [rsp + 0xd8]
call fcn.14006b8a0
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], rsi
mov word [rsp + 0xd8], 0
cmp qword [rsp + 0xc8], 8
jb 0x14002c430
mov rcx, qword [rsp + 0xb0]
call fcn.14006b8a0
jmp 0x14002c430
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
nop
mov rcx, qword [rsp + 0x320]
xor rcx, rsp
call fcn.14009cca0
mov rbx, qword [rsp + 0x370]
add rsp, 0x330
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret