Function at 0x180038900
Capabilities:
Check if file exists
Create directory

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
sub rsp, 0x640
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov rax, qword [0x18015f460]
xor rax, rsp
mov qword [rsp + 0x630], rax
movzx r12d, r8b
mov rdi, rcx
mov qword [r11 - 0x5a8], rcx
xor esi, esi
mov dword [rsp + 0x50], esi
lea rcx, [r11 - 0x230]
call fcn.180004100
nop
xor r13b, r13b
lea rcx, [rsp + 0x388]
call fcn.180003c30
nop
lea rcx, [rsp + 0x608]
call fcn.180003c30
nop
lea rcx, [rsp + 0x4c8]
call fcn.180003c30
nop
lea rcx, [rsp + 0x5e0]
call fcn.180003c30
nop
lea rcx, [rsp + 0x590]
call fcn.180003c30
nop
lea edx, [rsi + 3]
lea r8d, [rsi + 1]
lea rcx, [rsp + 0xc0]
call fcn.18003ccd0
nop
lea rdx, [rsp + 0x428]
lea rcx, [rsp + 0xd0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x18012eca8]
call fcn.18003f770
mov rcx, rax
lea rdx, str..iritech
call fcn.18003f770
lea rdx, [rsp + 0x400]
lea rcx, [rsp + 0xc0]
call fcn.18003ce40
nop
lea rdx, [0x18012eca8]
lea rcx, [rsp + 0xd0]
call fcn.18003f770
mov rcx, rax
lea rdx, str.serial.txt
call fcn.18003f770
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0xc0]
call fcn.18003ce40
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x3d8]
call fcn.180002ab0
nop
lea rcx, [rsp + 0xd8]
call fcn.18003e880
mov ebx, dword [rsp + 0x150]
lea rcx, [rsp + 0x3d8]
call fcn.180002b50
mov rbp, rax
lea rcx, [rsp + 0x3d8]
call fcn.180002b30
mov qword [rsp + 0x148], rsi
mov dword [rsp + 0x150], ebx
test rbp, rbp
je 0x180038aa8
mov r8, rbp
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.18003eef0
nop
lea rcx, [rsp + 0x3d8]
call fcn.180002b10
lea rdx, [rsp + 0x428]
lea rcx, [rsp + 0xd0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x18012eca8]
call fcn.18003f770
mov rcx, rax
lea rdx, str..iritech
call fcn.18003f770
mov rcx, rax
lea rdx, [0x18012eca8]
call fcn.18003f770
mov rcx, rax
lea rdx, str..lock
call fcn.18003f770
lea rdx, [rsp + 0x450]
lea rcx, [rsp + 0xc0]
call fcn.18003ce40
nop
lea rcx, [rsp + 0x360]
call fcn.180037710
test al, al
jne 0x180038b41
lea rcx, [rsp + 0x58]
call fcn.18003a180
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea rcx, [rsp + 0x360]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
lea rbx, vtable.std::ios_base.0
test eax, eax
je 0x180038c9d
lea rcx, [rsp + 0x360]
call fcn.180002b30
mov rdx, rax
mov dword [rsp + 0x20], 1
mov r9d, 0x40
lea r8d, [r9 - 0x3f]
lea rcx, [rsp + 0x260]
call fcn.18003bed0
nop
mov rax, qword [rsp + 0x260]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x260]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x388]
lea rcx, [rsp + 0x260]
call fcn.18003fdd0
lea rcx, [rsp + 0x388]
call fcn.180002b30
mov r11, qword [rsp + 0x260]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0x260]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x4c8]
lea rcx, [rsp + 0x260]
call fcn.18003fdd0
mov r11, qword [rsp + 0x260]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0x260]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x5e0]
lea rcx, [rsp + 0x260]
call fcn.18003fdd0
mov r11, qword [rsp + 0x260]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0x260]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x590]
lea rcx, [rsp + 0x260]
call fcn.18003fdd0
mov r13b, 1
lea rcx, [rsp + 0x300]
call fcn.18003bfb0
mov qword [rsp + 0x300], rbx
lea rcx, [rsp + 0x300]
call fcn.1800c8c24
jmp 0x180038f75
lea rcx, [rsp + 0x400]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x180038dcd
lea rcx, [rsp + 0x400]
call fcn.180002b30
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
sete sil
test esi, esi
je 0x180038db8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x180038db8
lea rdx, [0x18012eb74]
mov rcx, rdi
call fcn.180002ab0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x450]
call fcn.180002b10
nop
lea rcx, [rsp + 0x360]
call fcn.180002b10
nop
lea rcx, [rsp + 0x400]
call fcn.180002b10
nop
lea rcx, [rsp + 0x158]
call fcn.18003cdb0
lea rbx, vtable.std::ios_base.0
mov qword [rsp + 0x158], rbx
lea rcx, [rsp + 0x158]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x590]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5e0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x608]
call fcn.180002b10
nop
lea rcx, [rsp + 0x388]
call fcn.180002b10
nop
lea rcx, [rsp + 0x428]
call fcn.180002b10
mov rax, rdi
jmp 0x18003967e
lea rcx, [rsp + 0x400]
call fcn.180002b30
mov rcx, rax
call fcn.180033bd0
lea rcx, [rsp + 0x360]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x180038f60
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x80]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x210]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x238]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x1c0]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x1e8]
call fcn.180002ab0
nop
lea rdx, [0x18012eb48]
lea rcx, [rsp + 0x3d8]
call fcn.180002ab0
nop
lea rdx, str.dc2775d0cc411782aec12593cf524961
lea rcx, [rsp + 0x568]
call fcn.180002ab0
nop
lea rax, [rsp + 0x58]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x210]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x238]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1e8]
lea r8, [rsp + 0x3d8]
lea rdx, [rsp + 0x568]
lea rcx, [rsp + 0x360]
call fcn.180037050
nop
lea rcx, [rsp + 0x568]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3d8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x1e8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x1c0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x238]
call fcn.180002b10
nop
lea rcx, [rsp + 0x210]
call fcn.180002b10
nop
lea rcx, [rsp + 0x80]
call fcn.180002b10
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea rcx, [rsp + 0x450]
call fcn.180002b30
mov rcx, rax
call fcn.1800387b0
lea rcx, [rsp + 0x360]
call fcn.180002b30
lea rcx, [rsp + 0x4f0]
call fcn.180038540
nop
lea rdx, [rsp + 0x4f0]
lea rcx, [rsp + 0x3b0]
call fcn.180036aa0
nop
lea rdx, [rsp + 0x4f0]
lea rcx, [rsp + 0x478]
call fcn.180007cc0
nop
lea rcx, [rsp + 0x5b8]
call fcn.180037f40
nop
lea rcx, [rsp + 0x518]
call fcn.1800380b0
nop
lea rcx, [rsp + 0x4a0]
call fcn.1800383d0
nop
lea rcx, [rsp + 0x540]
call fcn.180038240
nop
lea rcx, [rsp + 0x3b0]
call fcn.180002b30
test r13b, r13b
je 0x1800394b1
lea rdx, [rsp + 0x3b0]
lea rcx, [rsp + 0x388]
call fcn.180009a10
test eax, eax
jne 0x180039149
lea rdx, [rsp + 0x3b0]
mov rcx, rdi
call fcn.180007cc0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x540]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x518]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5b8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x478]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3b0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4f0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x450]
call fcn.180002b10
nop
lea rcx, [rsp + 0x360]
call fcn.180002b10
nop
lea rcx, [rsp + 0x400]
call fcn.180002b10
nop
lea rcx, [rsp + 0x158]
call fcn.18003cdb0
mov qword [rsp + 0x158], rbx
lea rcx, [rsp + 0x158]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x590]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5e0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x608]
call fcn.180002b10
nop
lea rcx, [rsp + 0x388]
call fcn.180002b10
nop
lea rcx, [rsp + 0x428]
call fcn.180002b10
mov rax, rdi
jmp 0x18003967e
test r12b, r12b
je 0x180039337
call fcn.1800396b0
test al, al
je 0x1800392b7
lea rcx, [rsp + 0x3d8]
call fcn.18003a180
nop
lea rcx, [rsp + 0x388]
call fcn.180002b30
lea rcx, [rsp + 0x3d8]
call fcn.180002b30
lea rdx, [rsp + 0x3d8]
mov rcx, rdi
call fcn.180007cc0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x3d8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x540]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x518]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5b8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x478]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3b0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4f0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x450]
call fcn.180002b10
nop
lea rcx, [rsp + 0x360]
call fcn.180002b10
nop
lea rcx, [rsp + 0x400]
call fcn.180002b10
nop
lea rcx, [rsp + 0x158]
call fcn.18003cdb0
mov qword [rsp + 0x158], rbx
lea rcx, [rsp + 0x158]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x590]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5e0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x608]
call fcn.180002b10
nop
lea rcx, [rsp + 0x388]
call fcn.180002b10
nop
lea rcx, [rsp + 0x428]
call fcn.180002b10
mov rax, rdi
jmp 0x18003967e
lea rdx, str.true
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rax, [rsp + 0x3b0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x540]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x518]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x5b8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x478]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x388]
lea rcx, [rsp + 0x360]
call fcn.180037050
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea r8, [0x180132e68]
lea rdx, [rsp + 0x388]
lea rcx, [rsp + 0x58]
call fcn.1800086e0
nop
lea r8, [rsp + 0x3b0]
mov rdx, rax
lea rcx, [rsp + 0x568]
call fcn.180008650
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea rcx, [rsp + 0x568]
call fcn.180002b30
lea rdx, [rsp + 0x568]
mov rcx, rdi
call fcn.180007cc0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x568]
call fcn.180002b10
nop
lea rcx, [rsp + 0x540]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x518]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5b8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x478]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3b0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4f0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x450]
call fcn.180002b10
nop
lea rcx, [rsp + 0x360]
call fcn.180002b10
nop
lea rcx, [rsp + 0x400]
call fcn.180002b10
nop
lea rcx, [rsp + 0x158]
call fcn.18003cdb0
mov qword [rsp + 0x158], rbx
lea rcx, [rsp + 0x158]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x590]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5e0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x608]
call fcn.180002b10
nop
lea rcx, [rsp + 0x388]
call fcn.180002b10
nop
lea rcx, [rsp + 0x428]
call fcn.180002b10
mov rax, rdi
jmp 0x18003967e
lea rcx, [rsp + 0x360]
call fcn.180002b30
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x80]
call fcn.180002ab0
nop
lea rdx, [0x18012eb48]
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x540]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x518]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x5b8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x478]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x3b0]
lea rcx, [rsp + 0x360]
call fcn.180037050
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
nop
lea rcx, [rsp + 0x80]
call fcn.180002b10
lea rdx, [rsp + 0x3b0]
mov rcx, rdi
call fcn.180007cc0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x540]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x518]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5b8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x478]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3b0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4f0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x450]
call fcn.180002b10
nop
lea rcx, [rsp + 0x360]
call fcn.180002b10
nop
lea rcx, [rsp + 0x400]
call fcn.180002b10
nop
lea rcx, [rsp + 0x158]
call fcn.18003cdb0
mov qword [rsp + 0x158], rbx
lea rcx, [rsp + 0x158]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x590]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5e0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x608]
call fcn.180002b10
nop
lea rcx, [rsp + 0x388]
call fcn.180002b10
nop
lea rcx, [rsp + 0x428]
call fcn.180002b10
mov rax, rdi
mov rcx, qword [rsp + 0x630]
xor rcx, rsp
call fcn.1800c9b90
lea r11, [rsp + 0x640]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret