Function at 0x1800458d0
Capabilities:
Get common file path

Disassembly:
push rbx
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, qword [rdx]
xor r12d, r12d
mov r14, rdx
mov dword [rdx + 8], r12d
mov word [rax], r12w
movzx edi, word [rcx]
mov r15, rcx
mov ebx, r12d
test di, di
je 0x18004590c
mov rax, rcx
nop
add rax, 2
inc ebx
cmp word [rax], r12w
jne 0x180045900
cmp ebx, 1
jl 0x180045d28
cmp di, 0x5c
je 0x180045d28
cmp di, 0x2e
jne 0x18004593d
cmp ebx, 1
je 0x180045d28
cmp ebx, 2
jne 0x18004593d
cmp word [rcx + 2], di
je 0x180045d28
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x38], rsi
mov rcx, 0xffffffffffffffff
mov qword [rsp + 0x30], r13
mov eax, 2
mov r13d, 4
mov esi, r12d
mul r13
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
cmp ebx, 3
mov dword [rsp + 0x2c], r13d
mov word [rax], r12w
mov rbp, rax
mov qword [rsp + 0x70], rax
jle 0x1800459b7
cmp word [r15 + 2], 0x3a
jne 0x1800459b7
cmp word [r15 + 4], 0x5c
jne 0x1800459b7
cmp di, 0x61
jb 0x1800459a9
cmp di, 0x7a
jbe 0x180045a63
sub di, 0x41
cmp di, 0x19
jbe 0x180045a63
mov rcx, 0xffffffffffffffff
mov edi, 0x106
mov eax, 2
mul rdi
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
mov rcx, rbp
mov rbx, rax
call fcn.18006aaac
lea ecx, [rdi - 1]
mov rdx, rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x20], rbx
mov word [rbx], r12w
mov dword [rsp + 0x2c], edi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r11d, eax
cmp word [rbx], si
je 0x180045a1c
mov rcx, rbx
nop dword [rax + rax]
add rcx, 2
inc esi
cmp word [rcx], r12w
jne 0x180045a10
movsxd rax, esi
mov dword [rsp + 0x28], esi
mov word [rbx + rax*2], r12w
test r11d, r11d
je 0x180045d1c
cmp r11d, 0x104
ja 0x180045d1c
cmp word [rbx + rax*2 - 2], 0x5c
je 0x180045a63
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.180039550
mov rax, qword [rsp + 0x20]
mov esi, dword [rsp + 0x28]
mov qword [rsp + 0x70], rax
lea rdi, [0x1800e4200]
mov r8, r12
mov qword [rsp + 0x78], r12
mov rax, rdi
mov ebx, r12d
nop dword [rax + rax]
add rax, 2
inc ebx
cmp word [rax], r8w
jne 0x180045a80
lea r12d, [rbx + 1]
test r12d, r12d
je 0x180045ac2
movsxd rcx, r12d
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
xor edx, edx
mov word [rax], dx
mov r8, rax
mov qword [rsp + 0x78], rax
jmp 0x180045ac4
xor edx, edx
mov rcx, r8
sub rdi, r8
nop word [rax + rax]
movzx eax, word [rdi + rcx]
add rcx, 2
mov word [rcx - 2], ax
test ax, ax
jne 0x180045ad0
mov rbp, rdx
mov edi, edx
test r12d, r12d
je 0x180045b1a
movsxd rcx, r12d
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
mov r8, qword [rsp + 0x78]
mov edi, r12d
mov rbp, rax
xor eax, eax
mov word [rbp], ax
mov rdx, rbp
mov rcx, r8
sub rdx, r8
nop word [rax + rax]
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x180045b30
mov ecx, edi
sub ecx, ebx
dec ecx
cmp esi, ecx
jle 0x180045bf0
cmp edi, 0x40
jle 0x180045b60
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov r13d, eax
jmp 0x180045b6c
mov eax, reloc.WS2_32.dll_recv
cmp edi, 8
cmovg r13d, eax
lea eax, [r13 + rcx]
cmp eax, esi
jge 0x180045b7b
mov r13d, esi
sub r13d, ecx
lea eax, [rdi + r13 + 1]
cmp eax, edi
je 0x180045beb
movsxd rcx, eax
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
mov r12, rax
test edi, edi
jle 0x180045bdb
test ebx, ebx
jle 0x180045bd3
mov r9, rbp
mov rdx, rax
mov r8d, ebx
sub r9, rax
nop dword [rax]
movzx eax, word [r9 + rdx]
add rdx, 2
sub r8, 1
mov word [rdx - 2], ax
jne 0x180045bc0
mov rcx, rbp
call fcn.18006aaac
movsxd rax, ebx
xor r13d, r13d
mov rbp, r12
mov word [r12 + rax*2], r13w
jmp 0x180045bf3
xor r13d, r13d
jmp 0x180045bf3
xor r13d, r13d
mov r12, qword [rsp + 0x70]
movsxd rax, ebx
lea r8, [rax + rax]
mov rdx, r12
sub r8, r12
add r8, rbp
nop dword [rax + rax]
movzx ecx, word [rdx]
add rdx, 2
mov word [r8 + rdx - 2], cx
test cx, cx
jne 0x180045c10
lea edi, [rbx + rsi]
mov rdx, r13
mov dword [rsp + 0x2c], r13d
lea ebx, [rdi + 1]
mov qword [rsp + 0x20], rdx
test ebx, ebx
je 0x180045c67
movsxd rcx, ebx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18006b9f0
mov dword [rsp + 0x2c], ebx
mov word [rax], r13w
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rcx, rbp
sub rdx, rbp
nop dword [rax]
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x180045c70
lea rcx, [rsp + 0x20]
mov rdx, r15
mov dword [rsp + 0x28], edi
call fcn.1800395e0
mov rdi, qword [rsp + 0x20]
lea rax, [rsp + 0x20]
cmp rax, r14
je 0x180045cd9
mov rax, qword [r14]
mov ebx, dword [rsp + 0x28]
mov dword [r14 + 8], r13d
mov edx, ebx
mov rcx, r14
mov word [rax], r13w
call fcn.18003a260
mov rdx, qword [r14]
mov r11, rdi
movzx eax, word [r11]
add rdx, 2
add r11, 2
mov word [rdx - 2], ax
test ax, ax
jne 0x180045cc0
mov dword [r14 + 8], ebx
mov rcx, rdi
call fcn.18006aaac
mov rcx, rbp
call fcn.18006aaac
mov rcx, qword [rsp + 0x78]
call fcn.18006aaac
mov rcx, r12
call fcn.18006aaac
mov al, 1
mov rsi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x80]
mov r13, qword [rsp + 0x30]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret
mov rcx, rbx
call fcn.18006aaac
xor al, al
jmp 0x180045cfd
mov al, 1
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret