Function at 0x18016a660
Capabilities:
Create directory

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 - 0x3d0]
sub rsp, 0x4d0
mov rax, qword [0x18054e100]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
xor edi, edi
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x1a0]
call fcn.18038da60
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rsi, [rdi - 1]
test eax, eax
je 0x18016a743
mov r8, rsi
lea rax, [rbp + 0x1a0]
mov rcx, rsi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], dil
jne 0x18016a6e0
mov rax, rdi
test rcx, rcx
je 0x18016a743
movzx edx, byte [rbp + rax + 0x1a0]
cmp dl, 0x20
je 0x18016a703
cmp dl, 0x5c
jne 0x18016a706
mov r8, rax
inc rax
cmp rax, rcx
jb 0x18016a6f1
cmp r8, rsi
je 0x18016a743
inc r8
cmp r8, 0x104
jae 0x18016aec2
mov byte [rbp + r8 + 0x1a0], dil
lea r8, [rbp + 0x1a0]
mov edx, 0x104
lea rcx, [rbp + 0x2b0]
call fcn.180370ab4
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.1800763c0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], rdi
mov r14d, 0xf
mov qword [rbp + 0x78], r14
mov byte [rbp + 0x60], 0
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], rdi
mov qword [rbp + 0x98], rdi
lea rax, [rbp + 0x1a0]
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x18016a790
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp + 0x80]
call fcn.18006b0d0
nop
lea rdx, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rdx, qword [rbp + 0x80]
mov r8, qword [rbp + 0x90]
lea rcx, [rsp + 0x70]
call fcn.18007f940
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x60]
call fcn.18007af60
xorps xmm0, xmm0
movups xmmword [rbp + 0xc0], xmm0
mov ebx, 7
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], r14
mov rax, qword [str.Program]
mov dword [rbp + 0xc0], eax
movzx eax, word [0x18048ec5c]
mov word [rbp + 0xc4], ax
movzx eax, byte [0x18048ec5e]
mov byte [rbp + 0xc6], al
mov byte [rbp + 0xc7], 0
movups xmmword [rbp + 0x180], xmm0
lea ecx, [rbx + 0x19]
call fcn.180357684
mov r12, rax
mov qword [rsp + 0x50], rax
mov qword [rbp + 0x180], rax
mov qword [rbp + 0x190], 0x16
mov eax, 0x1f
mov qword [rsp + 0x48], rax
mov qword [rbp + 0x198], rax
movups xmm0, xmmword [str.Program_FilesRockstar]
movups xmmword [r12], xmm0
mov eax, dword [0x18048ec70]
mov dword [r12 + 0x10], eax
movzx eax, word [0x18048ec74]
mov word [r12 + 0x14], ax
mov byte [r12 + 0x16], 0
lea r15, [rbp + 0xc0]
lea r13, [rbp + 0x60]
cmp qword [rbp + 0x78], 0xf
cmova r13, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x70]
cmp rbx, rcx
ja 0x18016a947
mov rdi, r13
sub rdi, rbx
add rdi, rcx
movsx r14d, byte [r15]
lea r8, [rdi + 1]
sub r8, r13
mov edx, r14d
mov rcx, r13
call fcn.18038d9a0
mov rbx, rax
test rax, rax
je 0x18016a947
nop dword [rax]
mov r8d, 7
mov rdx, r15
mov rcx, rbx
call fcn.18038de00
test eax, eax
je 0x18016a914
inc rbx
lea r8, [rdi + 1]
sub r8, rbx
mov edx, r14d
mov rcx, rbx
call fcn.18038d9a0
mov rbx, rax
test rax, rax
jne 0x18016a8e0
jmp 0x18016a947
sub rbx, r13
cmp rbx, 0xffffffffffffffff
je 0x18016a947
mov qword [rsp + 0x20], 0x16
mov r9, r12
mov r8d, 7
mov rdx, rbx
lea rcx, [rbp + 0x60]
call fcn.18015a570
mov rax, qword [rbp + 0x180]
mov qword [rsp + 0x50], rax
mov qword [rbp + 0x128], 0
mov r15d, 8
mov qword [rbp + 0x130], r15
mov r13d, 0xf
mov qword [rbp + 0x138], r13
mov rbx, qword [str.Rockstar]
mov qword [rbp + 0x120], rbx
mov byte [rbp + 0x128], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x160], xmm0
lea ecx, [r15 + 0x18]
call fcn.180357684
mov r14, rax
mov qword [rbp + 0x160], rax
mov qword [rbp + 0x170], 0x14
mov qword [rbp + 0x178], 0x1f
movups xmm0, xmmword [str.Rockstar_GamesGrand]
movups xmmword [rax], xmm0
mov eax, dword [0x18048ec98]
mov dword [r14 + 0x10], eax
mov byte [r14 + 0x14], 0
lea rdi, [rbp + 0x120]
lea r13, [rbp + 0x60]
cmp qword [rbp + 0x78], 0xf
cmova r13, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x70]
cmp r15, rcx
ja 0x18016aa82
mov rax, r13
sub rax, r15
lea r15, [rax + rcx]
movsx r12d, byte [rdi]
lea r8, [r15 + 1]
sub r8, r13
mov edx, r12d
mov rcx, r13
call fcn.18038d9a0
mov rbx, rax
test rax, rax
je 0x18016aa82
nop word [rax + rax]
mov r8d, 8
mov rdx, rdi
mov rcx, rbx
call fcn.18038de00
test eax, eax
je 0x18016aa54
inc rbx
lea r8, [r15 + 1]
sub r8, rbx
mov edx, r12d
mov rcx, rbx
call fcn.18038d9a0
mov rbx, rax
test rax, rax
jne 0x18016aa20
jmp 0x18016aa82
sub rbx, r13
cmp rbx, 0xffffffffffffffff
je 0x18016aa82
mov r8d, 8
mov qword [rsp + 0x20], 0x14
mov r9, r14
mov rdx, rbx
lea rcx, [rbp + 0x60]
call fcn.18015a570
mov r14, qword [rbp + 0x160]
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
mov qword [rbp + 0x110], 5
mov ebx, 0xf
mov qword [rbp + 0x118], rbx
mov eax, dword [str.Grand]
mov dword [rbp + 0x100], eax
movzx eax, byte [0x18048eca4]
mov byte [rbp + 0x104], al
mov byte [rbp + 0x105], 0
movups xmmword [rbp + 0x140], xmm0
lea ecx, [rbx + 0x11]
call fcn.180357684
mov r15, rax
mov qword [rbp + 0x140], rax
mov qword [rbp + 0x150], 0x12
mov qword [rbp + 0x158], 0x1f
movups xmm0, xmmword [str.Grand_Theft_Auto_V]
movups xmmword [rax], xmm0
movzx eax, word [0x18048ecb8]
mov word [r15 + 0x10], ax
mov byte [r15 + 0x12], 0
lea r9, [rbp + 0x100]
lea rcx, [rbp + 0x60]
mov rdi, qword [rbp + 0x60]
mov r12, qword [rbp + 0x78]
cmp r12, rbx
cmova rcx, rdi
mov qword [rsp + 0x20], 5
xor r8d, r8d
mov rbx, qword [rbp + 0x70]
mov rdx, rbx
call fcn.18015aeb0
cmp rax, 0xffffffffffffffff
je 0x18016ab82
mov qword [rsp + 0x20], 0x12
mov r9, r15
mov r8d, 5
mov rdx, rax
lea rcx, [rbp + 0x60]
call fcn.18015a570
mov r12, qword [rbp + 0x78]
mov rbx, qword [rbp + 0x70]
mov rdi, qword [rbp + 0x60]
mov rax, qword [rbp + 0x158]
mov qword [rsp + 0x48], rax
mov r15, qword [rbp + 0x140]
movabs rax, 0x7fffffffffffffff
sub rax, rbx
cmp rax, 0xd
jb 0x18016aec8
lea r9, [rbp + 0x60]
cmp r12, 0xf
cmova r9, rdi
mov qword [rsp + 0x30], 0xd
lea rax, [0x18048ecc0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea rcx, [rbp + 0xe0]
call fcn.18006a4c0
nop
mov edi, dword [rbp + 0xf0]
lea r8, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0xf
cmova r8, qword [rbp + 0xe0]
xor eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, rsi
mov rcx, rax
call fcn.180357d9c
mov r12, rax
lea r8, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0xf
cmova r8, qword [rbp + 0xe0]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
xor ebx, ebx
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rbx
inc rsi
cmp word [r12 + rsi*2], bx
jne 0x18016ac64
mov r8, rsi
mov rdx, r12
lea rcx, [rbp + 0xa0]
call fcn.18008a510
mov rcx, r12
call fcn.180357650
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 7
cmova rcx, qword [rbp + 0xa0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x18016acb1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, qword [rbp + 0xb8]
cmp rdx, 7
jbe 0x18016acf7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016acf2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aece
call fcn.180357650
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 7
mov word [rbp + 0xa0], bx
lea rcx, [rbp + 0xe0]
call fcn.18006b8d0
nop
mov rax, qword [rsp + 0x48]
cmp rax, 0xf
jbe 0x18016ad5a
lea rdx, [rax + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18016ad51
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aed4
mov rcx, r15
call fcn.180357650
nop
mov edi, 0xf
mov rdx, qword [rbp + 0x178]
cmp rdx, rdi
jbe 0x18016ad9c
inc rdx
mov rax, r14
cmp rdx, 0x1000
jb 0x18016ad93
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aeda
mov rcx, r14
call fcn.180357650
nop
lea rcx, [rbp + 0x120]
call fcn.18006b8d0
nop
mov rdx, qword [rbp + 0x198]
cmp rdx, 0xf
jbe 0x18016ade9
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016ade3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aee0
call fcn.180357650
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0xf
jbe 0x18016ae2a
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016ae25
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aee6
call fcn.180357650
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rdi
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 0xf
jbe 0x18016ae76
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016ae71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016aebc
call fcn.180357650
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], rdi
mov byte [rbp + 0x60], 0
lea rcx, [rsp + 0x60]
call fcn.18006d6e0
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.180357630
lea r11, [rsp + 0x4d0]
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
call fcn.18035e820
nop
call fcn.180357c08
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18035e820
nop
call fcn.18035e820
nop
call fcn.18035e820
nop
call fcn.18035e820
int3