Function at 0x140028d00
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
push rbp
push rbx
push r12
lea rbp, [rsp - 0x10370]
mov eax, 0x10470
call fcn.1400e0a90
sub rsp, rax
mov r12, rdx
mov rbx, rcx
lea rdx, [rbp + 0x360]
mov r8d, 0x8000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, eax
mov qword [rbp + 0x103a0], rdx
test eax, eax
je 0x140028daf
cmp rdx, 0x8000
jne 0x140028d59
xor eax, eax
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret
lea rcx, [rbp + 0x360]
call fcn.1400b5fe0
mov qword [rbx + 0xb98], rax
test rax, rax
je 0x140028d4b
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d77bc
test rax, rax
je 0x140028daf
lea rcx, [rbp + 0x360]
sub rax, rcx
lea rcx, [rbp + 0x360]
sar rax, 1
mov rdx, rax
call fcn.1400b5fe0
mov qword [rbx + 0xba0], rax
test rax, rax
je 0x140028d4b
mov qword [rsp + 0x10490], rsi
mov qword [rsp + 0x10498], rdi
mov qword [rsp + 0x10468], r13
xor r13d, r13d
mov qword [rsp + 0x10460], r14
lea r14, [0x1400f1524]
test r12, r12
jne 0x140028f36
lea edx, [r13 + 0x5c]
lea rcx, [rbp + 0x360]
call fcn.1400d77bc
mov rsi, rax
test rax, rax
je 0x1400290d5
lea edx, [r13 + 0x2e]
mov rcx, rax
call fcn.1400d77bc
mov rdx, rax
test rax, rax
je 0x1400290d5
lea rax, [rbp + 0x360]
mov rcx, rdx
sub rcx, rax
sar rcx, 1
add rcx, 5
cmp rcx, 0x8000
jae 0x1400290d5
lea rcx, [0x1400f86a8]
sub rdx, rcx
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x140028e41
lea rcx, [rbp + 0x360]
lea r12, [rbp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f36
lea rcx, [rsp + 0x50]
mov rdx, r14
lea r12, [rsp + 0x50]
call fcn.140076a80
or rcx, 0xffffffffffffffff
mov rdi, rsi
mov r11, rax
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rdx, [rcx + r11]
cmp rdx, 0x201
ja 0x14002913b
lea rax, [r11 + r11]
sub rax, rsi
lea rcx, [rsp + rax + 0x50]
movzx eax, word [rsi]
add rsi, 2
mov word [rcx + rsi - 2], ax
test ax, ax
jne 0x140028eb0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f36
mov rcx, qword [rbx + 0xba0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, [0x1400f86b8]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140028f36
mov qword [rsp + 0x48], r13
mov byte [rsp + 0x40], r13b
mov byte [rsp + 0x38], r13b
lea rax, [0x1400f86d8]
mov qword [rsp + 0x30], r13
lea r8, [0x1400f86e0]
mov qword [rsp + 0x28], rax
lea rdx, [0x1400f8738]
xor r9d, r9d
mov rcx, rbx
mov byte [rsp + 0x20], r13b
call fcn.14004fa20
test eax, eax
jne 0x1400290d5
cmp word [r12], 0x2a
jne 0x140028f83
cmp word [r12 + 2], r13w
jne 0x140028f70
mov dword [rbx + 0xbb0], 2
mov dword [rbp + 0x360], gethostbyaddr
mov dword [0x14012ac38], 4
mov dword [0x14012ac4c], 1
jmp 0x140028f8a
mov dword [rbx + 0xbb0], 1
mov byte [0x140124b22], r13b
jmp 0x140028f8a
mov dword [rbx + 0xbb0], r13d
lea rax, [rbp + 0x360]
cmp r12, rax
je 0x140028fd5
cmp dword [rbx + 0xbb0], 1
je 0x140028fd5
lea r8, [rbp + 0x360]
xor r9d, r9d
mov edx, 0x8000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov edx, eax
mov qword [rbp + 0x103a0], rdx
test eax, eax
je 0x1400290d5
cmp rdx, 0x8000
jae 0x1400290d5
cmp dword [rbx + 0xbb0], 2
je 0x140028ff1
lea rdx, [rbp + 0x103a0]
lea rcx, [rbp + 0x360]
call fcn.1400ba570
cmp word [rbp + 0x360], r13w
je 0x140029063
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 0x360]
repne scasw ax, word [rdi]
not rcx
lea rdi, [rcx + rcx - 2]
lea rsi, [rcx - 1]
lea rcx, [rdi + 2]
call fcn.1400b60a0
mov r14, rax
test rax, rax
jne 0x140029047
lea r8, [rbp + 0x360]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
call fcn.14004e590
mov r14, r13
jmp 0x140029063
test rsi, rsi
je 0x14002905e
lea rdx, [rbp + 0x360]
mov r8, rdi
mov rcx, rax
call fcn.1400d7a30
mov word [rdi + r14], r13w
mov qword [rbx + 0xb80], r14
test r14, r14
je 0x1400290d5
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d77bc
mov rdi, rax
test rax, rax
je 0x1400290b6
lea rax, [rbp + 0x360]
mov rdx, rdi
lea rcx, [rbp + 0x360]
sub rdx, rax
sar rdx, 1
call fcn.1400b5fe0
mov qword [rbx + 0xb88], rax
test rax, rax
je 0x1400290d5
add rdi, 2
jmp 0x1400290bd
lea rdi, [rbp + 0x360]
or rdx, 0xffffffffffffffff
mov rcx, rdi
call fcn.1400b5fe0
mov qword [rbx + 0xb90], rax
test rax, rax
jne 0x1400290d9
xor eax, eax
jmp 0x14002913b
lea rdi, [0x1400f1618]
mov rsi, r12
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14002911a
cmp dword [rbx + 0xbb0], 1
lea rax, [0x1400f8748]
lea r8, [0x1400f8778]
cmovne r12, rax
lea rcx, [rbp + 0x360]
mov edx, 0x8000
mov r9, r12
call fcn.1400b9380
lea rcx, [rbp + 0x360]
or rdx, 0xffffffffffffffff
call fcn.1400b5fe0
test rax, rax
mov qword [rbx + 0xba8], rax
setne r13b
mov eax, r13d
mov r13, qword [rsp + 0x10468]
mov rdi, qword [rsp + 0x10498]
mov rsi, qword [rsp + 0x10490]
mov r14, qword [rsp + 0x10460]
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret