Function at 0x1001214e0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0x170
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x10022f440]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov r14, rcx
mov qword [rsp + 0x30], 0xffffffffffffffff
mov eax, dword [0x10029a8b0]
and eax, 0x20004
cmp eax, 0x20004
jne 0x10012154f
mov rax, qword [0x1004e2d00]
test rax, rax
je 0x10012154f
mov r8, rcx
mov rdx, qword [0x1004e2d00]
lea rcx, [rsp + 0x30]
call fcn.100126900
mov byte [rsp + 0x50], 0
xor ebp, ebp
mov edi, ebp
test r14, r14
je 0x100121879
mov esi, 0x104
mov ecx, esi
mov rax, r14
mov edx, ebp
nop dword [rax]
cmp byte [rax], dl
je 0x10012157e
inc rax
dec rcx
jne 0x100121570
jmp 0x100121583
test rcx, rcx
jne 0x10012158d
mov edx, 0x80070057
mov rbx, rbp
jmp 0x100121593
mov rbx, rsi
sub rbx, rcx
mov qword [rsp + 0x38], rbx
test edx, edx
js 0x10012187e
test rbx, rbx
je 0x1001218b6
cmp rbx, rsi
jae 0x1001218b6
mov byte [rsp + 0x154], dil
mov edx, esi
sub edx, ebx
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov r9d, eax
test eax, eax
jne 0x100121615
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e2998]
test rax, rax
je 0x1001218ed
mov r9d, edi
mov r8, qword [0x1004e2998]
mov edx, 0x453400
mov rcx, qword [0x1004e23d0]
call fcn.100126850
jmp 0x1001218ed
sub rsi, rbx
mov rax, r9
cmp rsi, r9
ja 0x10012165f
mov edi, reloc.WS2_32.dll_WSAGetLastError
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e29a0]
test rax, rax
je 0x1001218ed
mov r8, qword [0x1004e29a0]
mov edx, 0x455000
mov rcx, qword [0x1004e23d8]
call fcn.100126850
jmp 0x1001218ed
mov ecx, 0x105
movzx eax, byte [rsp + 0x50]
test al, al
je 0x100121754
cmp al, 0x5c
jne 0x100121680
cmp byte [rsp + 0x51], dil
je 0x100121754
mov rdx, rcx
lea rax, [rsp + 0x50]
mov r10d, ebp
nop dword [rax + rax]
cmp byte [rax], dil
je 0x10012169f
inc rax
dec rdx
jne 0x100121690
jmp 0x1001216a4
test rdx, rdx
jne 0x1001216af
mov r10d, 0x80070057
mov r8, rbp
jmp 0x1001216b5
mov r8, rcx
sub r8, rdx
test r10d, r10d
js 0x100121717
mov rdx, rcx
sub rdx, r8
lea rax, [rsp + 0x50]
lea rax, [rax + r8]
mov r10d, ebp
je 0x100121706
add r8, 0x7ffffefa
add r8, rdx
lea r11, [0x100030d84]
sub r11, rax
test r8, r8
je 0x100121701
movzx r9d, byte [r11 + rax]
test r9b, r9b
je 0x100121701
mov byte [rax], r9b
inc rax
dec r8
dec rdx
jne 0x1001216e2
jmp 0x100121706
test rdx, rdx
jne 0x10012170f
dec rax
mov r10d, 0x8007007a
mov byte [rax], dil
test r10d, r10d
jns 0x100121754
mov edi, r10d
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e29a8]
test rax, rax
je 0x1001218ed
lea r9, [rsp + 0x50]
mov r8, qword [0x1004e29a8]
mov edx, 0x45a800
mov rcx, qword [0x1004e23e0]
jmp 0x1001218e8
mov rdx, rcx
lea rax, [rsp + 0x50]
nop dword [rax]
cmp byte [rax], dil
je 0x100121772
inc rax
dec rdx
jne 0x100121760
jmp 0x100121833
test rdx, rdx
je 0x100121833
mov r8, rcx
sub r8, rdx
sub rcx, r8
lea rax, [rsp + 0x50]
lea rax, [rax + r8]
mov r10d, ebp
je 0x1001217c6
lea rdx, [r8 + 0x7ffffefa]
add rdx, rcx
mov r9, r14
sub r9, rax
test rdx, rdx
je 0x1001217c1
movzx r8d, byte [r9 + rax]
test r8b, r8b
je 0x1001217c1
mov byte [rax], r8b
inc rax
dec rdx
dec rcx
jne 0x1001217a2
jmp 0x1001217c6
test rcx, rcx
jne 0x1001217cf
dec rax
mov r10d, 0x8007007a
mov byte [rax], dil
test r10d, r10d
js 0x100121833
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbp, rax
test rax, rax
jne 0x1001218ed
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rcx, qword [0x1004e29b8]
test rcx, rcx
je 0x1001218ed
mov r9d, eax
mov r8, qword [0x1004e29b8]
mov edx, 0x461400
mov rcx, qword [0x1004e23f0]
call fcn.100126850
jmp 0x1001218ed
mov edi, reloc.WS2_32.dll_WSAGetLastError
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e29b0]
test rax, rax
je 0x1001218ed
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x50]
mov r8, qword [0x1004e29b0]
mov edx, 0x45e800
mov rcx, qword [0x1004e23e8]
call fcn.100126850
jmp 0x1001218ed
mov edx, 0x80070057
mov qword [rsp + 0x38], rbp
test edx, edx
jns 0x1001218b6
mov edi, edx
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e2988]
test rax, rax
je 0x1001218ed
mov r9, r14
mov r8, qword [0x1004e2988]
mov edx, 0x44b400
mov rcx, qword [0x1004e23c0]
jmp 0x1001218e8
mov edi, 0x57
test byte [0x10029a8b0], 2
je 0x1001218ed
mov rax, qword [0x1004e2990]
test rax, rax
je 0x1001218ed
mov r9, qword [rsp + 0x38]
mov r8, qword [0x1004e2990]
mov edx, 0x44d400
mov rcx, qword [0x1004e23c8]
call fcn.100126850
mov eax, dword [0x10029a8b0]
and eax, 0x20002
cmp eax, 0x20002
jne 0x100121926
mov rax, qword [0x1004e29c0]
test rax, rax
je 0x100121926
mov r9, rbp
mov r8, qword [0x1004e29c0]
mov edx, 0x463000
mov rcx, qword [0x1004e23f8]
call fcn.100126850
lea rcx, [rsp + 0x30]
call fcn.100126960
test edi, edi
je 0x10012193d
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rcx, [rsp + 0x30]
call fcn.100126960
mov rax, rbp
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.10005f420
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret