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

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0xb00
mov qword [rsp + 0xc0], 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 + 0xaf0], rax
mov rdi, rcx
mov qword [r11 - 0xa50], rcx
xor ebp, ebp
mov dword [rsp + 0x50], ebp
lea rcx, [r11 - 0x5f8]
call fcn.180004100
nop
lea rcx, [rsp + 0x678]
call fcn.180003c30
nop
lea rcx, [rsp + 0x6a0]
call fcn.180003c30
nop
lea rcx, [rsp + 0x628]
call fcn.180003c30
nop
lea edx, [rbp + 3]
lea r8d, [rbp + 1]
lea rcx, [rsp + 0x1d0]
call fcn.18003ccd0
nop
lea rdx, [rsp + 0x510]
lea rcx, [rsp + 0x1e0]
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 + 0x4e8]
lea rcx, [rsp + 0x1d0]
call fcn.18003ce40
nop
lea rdx, [0x18012eca8]
lea rcx, [rsp + 0x1e0]
call fcn.18003f770
mov rcx, rax
lea rdx, str.serial.txt
call fcn.18003f770
lea rdx, [rsp + 0x4c0]
lea rcx, [rsp + 0x1d0]
call fcn.18003ce40
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x498]
call fcn.180002ab0
nop
lea rcx, [rsp + 0x1e8]
call fcn.18003e880
mov ebx, dword [rsp + 0x260]
lea rcx, [rsp + 0x498]
call fcn.180002b50
mov rsi, rax
lea rcx, [rsp + 0x498]
call fcn.180002b30
mov qword [rsp + 0x258], rbp
mov dword [rsp + 0x260], ebx
test rsi, rsi
je 0x18003a301
mov r8, rsi
mov rdx, rax
lea rcx, [rsp + 0x1e8]
call fcn.18003eef0
nop
lea rcx, [rsp + 0x498]
call fcn.180002b10
lea rdx, [rsp + 0x510]
lea rcx, [rsp + 0x1e0]
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.serial.txt.bk
call fcn.18003f770
lea rdx, [rsp + 0x538]
lea rcx, [rsp + 0x1d0]
call fcn.18003ce40
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x498]
call fcn.180002ab0
nop
lea rcx, [rsp + 0x1e8]
call fcn.18003e880
mov ebx, dword [rsp + 0x260]
lea rcx, [rsp + 0x498]
call fcn.180002b50
mov rsi, rax
lea rcx, [rsp + 0x498]
call fcn.180002b30
mov qword [rsp + 0x258], rbp
mov dword [rsp + 0x260], ebx
test rsi, rsi
je 0x18003a3e3
mov r8, rsi
mov rdx, rax
lea rcx, [rsp + 0x1e8]
call fcn.18003eef0
nop
lea rcx, [rsp + 0x498]
call fcn.180002b10
lea rdx, [rsp + 0x510]
lea rcx, [rsp + 0x1e0]
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 + 0x588]
lea rcx, [rsp + 0x1d0]
call fcn.18003ce40
nop
lea rcx, [rsp + 0x4c0]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
lea rsi, vtable.std::ios_base.0
test eax, eax
je 0x18003a93d
lea rcx, [rsp + 0x498]
call fcn.180003c30
nop
lea rcx, [rsp + 0x538]
call fcn.180002b30
mov rdx, rax
mov dword [rsp + 0x20], 1
mov r9d, 0x40
lea r8d, [r9 - 0x3e]
lea rcx, [rsp + 0x2d0]
call fcn.18003cb20
nop
cmp qword [rsp + 0x360], 0
je 0x18003a90d
lea rcx, [rsp + 0x4c0]
call fcn.180002b30
mov rdx, rax
mov dword [rsp + 0x20], 1
mov r9d, 0x40
lea r8d, [r9 - 0x3f]
lea rcx, [rsp + 0xd0]
call fcn.18003bed0
nop
mov rax, qword [rsp + 0xd0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x498]
call fcn.180007d10
mov r11, qword [rsp + 0xd0]
movsxd rax, dword [r11 + 4]
lea rcx, [rsp + rax + 0xd0]
mov dl, 0xa
call fcn.18003f080
movzx r8d, al
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0xd0]
call fcn.18003fdd0
lea rcx, [rsp + 0x498]
call fcn.180007f40
test al, al
jne 0x18003a836
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x2d0]
call fcn.18003f4c0
mov rcx, rax
lea rdx, [0x1801325b4]
call fcn.18003f770
mov ebx, ebp
mov rax, qword [rsp + 0x2d0]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x2e0], 6
jne 0x18003a86f
mov rcx, qword [rsp + rcx + 0x318]
mov rax, qword [rcx]
call qword [rax + 0x60]
mov ecx, 4
cmp eax, 0xffffffff
cmove ebx, ecx
mov rax, qword [rsp + 0x2d0]
movsxd rax, dword [rax + 4]
lea rcx, [rsp + rax + 0x2d0]
test ebx, ebx
je 0x18003a896
mov edx, dword [rcx + 0x10]
or edx, ebx
cmp qword [rcx + 0x48], 0
jne 0x18003a88e
or edx, 4
xor r8d, r8d
call fcn.180034cc0
lea rcx, [rsp + 0x2d8]
call fcn.18003e180
test rax, rax
jne 0x18003a8d4
mov rax, qword [rsp + 0x2d0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x2d0]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x18003a8cc
or edx, 4
xor r8d, r8d
call fcn.180034cc0
lea rcx, [rsp + 0x538]
call fcn.180002b30
mov rcx, rax
call fcn.180033bd0
nop
lea rcx, [rsp + 0x170]
call fcn.18003bfb0
mov qword [rsp + 0x170], rsi
lea rcx, [rsp + 0x170]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x368]
call fcn.18003cc00
mov qword [rsp + 0x368], rsi
lea rcx, [rsp + 0x368]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x498]
call fcn.180002b10
lea rcx, [rsp + 0x4e8]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x18003aa59
lea rcx, [rsp + 0x4e8]
call fcn.180002b30
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ecx, ebp
test eax, eax
sete cl
test ecx, ecx
je 0x18003aa44
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x18003aa44
lea rdx, [0x18012eb74]
mov rcx, rdi
call fcn.180002ab0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x588]
call fcn.180002b10
nop
lea rcx, [rsp + 0x538]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4e8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x268]
call fcn.18003cdb0
mov qword [rsp + 0x268], rsi
lea rcx, [rsp + 0x268]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x628]
call fcn.180002b10
nop
lea rcx, [rsp + 0x6a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x678]
call fcn.180002b10
nop
lea rcx, [rsp + 0x510]
call fcn.180002b10
mov rax, rdi
jmp 0x18003af50
lea rcx, [rsp + 0x4e8]
call fcn.180002b30
mov rcx, rax
call fcn.180033bd0
lea rcx, [rsp + 0x4c0]
call fcn.180002b30
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x18003abec
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x90]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x3f8]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x448]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x470]
call fcn.180002ab0
nop
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x3d0]
call fcn.180002ab0
nop
lea rdx, [0x18012eb48]
lea rcx, [rsp + 0x420]
call fcn.180002ab0
nop
lea rdx, str.dc2775d0cc411782aec12593cf524961
lea rcx, [rsp + 0x498]
call fcn.180002ab0
nop
lea rax, [rsp + 0x58]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x3f8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x448]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x470]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x3d0]
lea r8, [rsp + 0x420]
lea rdx, [rsp + 0x498]
lea rcx, [rsp + 0x4c0]
call fcn.180037050
nop
lea rcx, [rsp + 0x498]
call fcn.180002b10
nop
lea rcx, [rsp + 0x420]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3d0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x470]
call fcn.180002b10
nop
lea rcx, [rsp + 0x448]
call fcn.180002b10
nop
lea rcx, [rsp + 0x3f8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x90]
call fcn.180002b10
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea rcx, [rsp + 0x588]
call fcn.180002b30
mov rcx, rax
call fcn.1800387b0
lea rcx, [rsp + 0x4c0]
call fcn.180002b30
mov rbx, rax
mov byte [rsp + 0x7f0], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0x7f1]
call fcn.1800cc600
mov byte [rsp + 0x6f0], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0x6f1]
call fcn.1800cc600
xor edx, edx
lea r8d, [rdx + 0x34]
lea rcx, [rsp + 0x58]
call fcn.1800cc600
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x18003ace4
lea rdx, [rsp + 0x58]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x18003acdb
mov r8d, dword [rsp + 0x74]
lea rdx, str.0x_08X
lea rcx, [rsp + 0x7f0]
call fcn.1800ca8e4
mov r9d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x84]
lea rdx, str.0x_08X_08X
lea rcx, [rsp + 0x6f0]
call fcn.1800ca8e4
jmp 0x18003acf0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.Failed_getting_file_info._n
call fcn.1800ca47c
lea r9, [rsp + 0x6f0]
lea r8, [rsp + 0x7f0]
lea rdx, str._s__s
lea rcx, [rsp + 0x8f0]
call fcn.1800ca8e4
lea rdx, [rsp + 0x8f0]
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x560]
call fcn.180036aa0
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
lea rdx, [rsp + 0x8f0]
lea rcx, [rsp + 0x6c8]
call fcn.180002ab0
nop
lea rcx, [rsp + 0x650]
call fcn.180037f40
nop
lea rcx, [rsp + 0x600]
call fcn.1800380b0
nop
lea rcx, [rsp + 0x5d8]
call fcn.1800383d0
nop
lea rcx, [rsp + 0x5b0]
call fcn.180038240
nop
lea rcx, [rsp + 0x560]
call fcn.180002b30
lea rcx, [rsp + 0x4c0]
call fcn.180002b30
lea rdx, [0x18012eb74]
lea rcx, [rsp + 0x90]
call fcn.180002ab0
nop
lea rdx, [0x18012eb48]
lea rcx, [rsp + 0x58]
call fcn.180002ab0
nop
lea rax, [rsp + 0x90]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x5b0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x5d8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x600]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x650]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x6c8]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x560]
lea rcx, [rsp + 0x4c0]
call fcn.180037050
nop
lea rcx, [rsp + 0x58]
call fcn.180002b10
nop
lea rcx, [rsp + 0x90]
call fcn.180002b10
lea rdx, [rsp + 0x560]
mov rcx, rdi
call fcn.180007cc0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x5b0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x5d8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x600]
call fcn.180002b10
nop
lea rcx, [rsp + 0x650]
call fcn.180002b10
nop
lea rcx, [rsp + 0x6c8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x560]
call fcn.180002b10
nop
lea rcx, [rsp + 0x588]
call fcn.180002b10
nop
lea rcx, [rsp + 0x538]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4c0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x4e8]
call fcn.180002b10
nop
lea rcx, [rsp + 0x268]
call fcn.18003cdb0
mov qword [rsp + 0x268], rsi
lea rcx, [rsp + 0x268]
call fcn.1800c8c24
nop
lea rcx, [rsp + 0x628]
call fcn.180002b10
nop
lea rcx, [rsp + 0x6a0]
call fcn.180002b10
nop
lea rcx, [rsp + 0x678]
call fcn.180002b10
nop
lea rcx, [rsp + 0x510]
call fcn.180002b10
mov rax, rdi
mov rcx, qword [rsp + 0xaf0]
xor rcx, rsp
call fcn.1800c9b90
lea r11, [rsp + 0xb00]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret