Function at 0x18001687c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x2b0]
sub rsp, 0x3b0
mov rax, qword [0x18004e5f0]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
cmp dword [rbp + 0x300], 3
mov esi, r9d
mov r12, r8
mov ebx, edx
mov rdi, rcx
je 0x180016b4a
cmp dword [rbp + 0x300], 2
je 0x1800168dc
cmp dword [rbp + 0x300], 1
je 0x1800168dc
mov eax, 0x10000
jmp 0x180016bef
cmp dword [rcx + 8], 0xffffffff
je 0x1800168ea
mov rcx, qword [rcx]
call fcn.180014658
mov rcx, qword [rdi]
or dword [rdi + 8], 0xffffffff
cmp ebx, dword [rcx + 8]
jge 0x1800168d2
cmp ebx, dword [rcx + 0x14]
jge 0x180016900
call fcn.1800143b4
mov rax, qword [rdi]
cmp dword [rax + 0x14], ebx
jge 0x180016919
mov rcx, qword [rdi]
call fcn.180014410
mov r11, qword [rdi]
cmp dword [r11 + 0x14], ebx
jl 0x180016908
lea r8, [rsp + 0x50]
mov edx, ebx
mov rcx, rdi
call fcn.180014800
test byte [rbp + 0x58], 0x10
je 0x180016971
cmp dword [rbp + 0x300], 1
je 0x180016bd0
cmp byte [r12], 0x2f
je 0x180016962
cmp byte [r12], 0x5c
je 0x180016962
xor esi, esi
cmp byte [r12], sil
je 0x180016959
cmp byte [r12 + 1], 0x3a
je 0x180016962
lea rcx, [rdi + 0x150]
jmp 0x180016964
xor ecx, ecx
mov rdx, r12
call fcn.180014cd0
jmp 0x180016bd0
xor esi, esi
cmp dword [rbp + 0x300], 1
je 0x180016a72
mov al, byte [r12]
mov r13, r12
mov rcx, r12
jmp 0x18001699d
cmp al, 0x2f
je 0x180016994
cmp al, 0x5c
jne 0x180016998
lea r13, [rcx + 1]
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18001698c
lea rcx, [rbp + 0x80]
mov rdx, r12
call fcn.180019fe0
cmp r13, r12
jne 0x1800169be
mov byte [rbp + 0x80], sil
jmp 0x1800169e7
mov rax, r13
sub rax, r12
mov byte [rbp + rax + 0x80], sil
mov al, byte [rbp + 0x80]
cmp al, 0x2f
je 0x180016a17
cmp al, 0x5c
je 0x180016a17
test al, al
je 0x1800169e7
cmp byte [rbp + 0x81], 0x3a
je 0x180016a17
lea r9, [rbp + 0x80]
lea r8, [rdi + 0x150]
lea rdx, str._s_s_s
lea rcx, [rbp + 0x190]
mov qword [rsp + 0x20], r13
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rdi + 0x150]
jmp 0x180016a37
lea r8, [rbp + 0x80]
lea rdx, [0x18003e7dc]
lea rcx, [rbp + 0x190]
mov r9, r13
call qword [sym.imp.USER32.dll_wsprintfA]
xor ecx, ecx
lea rdx, [rbp + 0x80]
call fcn.180014cd0
mov eax, dword [rbp + 0x58]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], eax
lea rcx, [rbp + 0x190]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r12, rax
cmp r12, 0xffffffffffffffff
jne 0x180016a82
mov eax, 0x200
jmp 0x180016bef
mov rdx, qword [rdi + 0x140]
mov rcx, qword [rdi]
call fcn.180016358
mov r13d, 0x4000
cmp qword [rdi + 0x148], rsi
jne 0x180016aaf
mov ecx, r13d
call fcn.18001b978
mov qword [rdi + 0x148], rax
mov rdx, qword [rdi + 0x148]
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov r8d, r13d
call fcn.1800164f8
mov ebx, eax
cmp eax, 0xffffff96
je 0x180016b24
test eax, eax
js 0x180016aff
jle 0x180016af4
mov rdx, qword [rdi + 0x148]
lea r9, [rsp + 0x44]
mov r8d, eax
mov rcx, r12
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180016b06
cmp byte [rsp + 0x40], sil
jne 0x180016b0d
test ebx, ebx
jne 0x180016aaf
mov esi, 0x5000000
jmp 0x180016b29
mov esi, 0x400
jmp 0x180016b29
lea r9, [rbp + 0x6c]
lea r8, [rbp + 0x5c]
lea rdx, [rbp + 0x64]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x180016b29
mov esi, 0x1000
cmp dword [rbp + 0x300], 1
je 0x180016b3b
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rdi]
call fcn.180014658
mov eax, esi
jmp 0x180016bef
cmp edx, dword [rcx + 8]
je 0x180016ba2
cmp dword [rcx + 8], 0xffffffff
je 0x180016b5d
mov rcx, qword [rcx]
call fcn.180014658
mov rcx, qword [rdi]
or dword [rdi + 8], 0xffffffff
cmp ebx, dword [rcx + 8]
jge 0x1800168d2
cmp ebx, dword [rcx + 0x14]
jge 0x180016b77
call fcn.1800143b4
mov rax, qword [rdi]
cmp dword [rax + 0x14], ebx
jge 0x180016b90
mov rcx, qword [rdi]
call fcn.180014410
mov r11, qword [rdi]
cmp dword [r11 + 0x14], ebx
jl 0x180016b7f
mov rdx, qword [rdi + 0x140]
mov rcx, qword [rdi]
call fcn.180016358
mov dword [rdi + 8], ebx
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov r8d, esi
mov rdx, r12
call fcn.1800164f8
xor esi, esi
mov ebx, eax
test eax, eax
jg 0x180016bc9
mov rcx, qword [rdi]
call fcn.180014658
or dword [rdi + 8], 0xffffffff
cmp byte [rsp + 0x40], sil
je 0x180016bd4
xor eax, eax
jmp 0x180016bef
test ebx, ebx
jle 0x180016bdf
mov eax, 0x600
jmp 0x180016bef
mov eax, 0x5000000
mov edx, 0x1000
cmp ebx, 0xffffff96
cmove eax, edx
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.180019850
mov rbx, qword [rsp + 0x3e8]
add rsp, 0x3b0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret