Function at 0x18001f6b0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x800]
sub rsp, 0x900
mov rax, qword [0x180033018]
xor rax, rsp
mov qword [rbp + 0x7f0], rax
mov rax, qword [rbp + 0x860]
xor r13d, r13d
mov qword [rbp - 0x80], rax
or rsi, 0xffffffffffffffff
mov rax, qword [rbp + 0x868]
mov ebx, r8d
mov qword [rsp + 0x78], rax
mov r12, rcx
mov rax, qword [rbp + 0x870]
mov edi, r13d
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], r9
mov dword [rsp + 0x54], ebx
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x50], r13d
cmp edx, 1
jne 0x18001f7de
lea ecx, [rsi + 0x59]
call fcn.180024008
mov rdi, rax
test rax, rax
je 0x18001f789
mov eax, dword [r12]
mov dword [rdi + 0x24], eax
lea rax, [0x180025bd8]
mov qword [rdi], rax
lea rax, [0x180025bd0]
mov dword [rdi + 0x20], esi
mov qword [rdi + 0x18], rax
lea rax, [0x180025010]
mov qword [rdi + 0x48], r13
mov qword [rdi + 0x40], r13
mov dword [rdi + 0x50], 0x10
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x28], r13
mov qword [rdi + 0x30], r13
jmp 0x18001f78c
mov rdi, r13
test rdi, rdi
je 0x18001ff8c
mov rcx, qword [r12 + 8]
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x10], rax
je 0x18001ff93
mov r14d, 0x100
mov qword [rsp + 0x40], r13
mov r8d, r14d
lea r9, [rsp + 0x40]
lea rdx, [rbp + 0x5f0]
lea rsi, [rbp + 0x3f0]
call fcn.180021638
test eax, eax
je 0x18001f828
lea rdx, [rbp + 0x5f0]
jmp 0x18001f873
lea eax, [rdx - 2]
cmp eax, 1
ja 0x18001f795
mov ecx, 0x30
call fcn.180024008
mov rdi, rax
test rax, rax
je 0x18001f789
mov eax, dword [r12]
mov dword [rdi + 0x24], eax
lea rax, [0x180025c20]
mov qword [rdi], rax
lea rax, [0x180025c18]
mov qword [rdi + 0x18], rax
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r13
mov dword [rdi + 0x20], esi
mov qword [rdi + 0x28], r13
jmp 0x18001f78c
mov rcx, 0xffffffffffffffff
mov eax, 2
mul qword [rsp + 0x40]
cmovo rax, rcx
mov rcx, rax
call fcn.180024008
mov r13, rax
test rax, rax
je 0x18001ff73
mov r8, qword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov rcx, qword [r12 + 8]
mov rdx, rax
call fcn.180021638
test eax, eax
je 0x18001ff6b
mov rdx, r13
mov rax, qword [rdi]
mov r9d, ebx
mov r15, qword [rsp + 0x40]
mov rcx, rdi
mov r8, r15
mov rax, qword [rax + 8]
call qword [case.0x180004b4f.0]
mov edx, 1
or r8, 0xffffffffffffffff
mov ebx, eax
mov rax, qword [rsp + 0x68]
add dword [rax], edx
cmp ebx, r8d
je 0x18001ff55
mov ecx, dword [rsp + 0x54]
cmp ecx, 3
jne 0x18001f8b7
cmp ebx, 2
je 0x18001f8e7
cmp ecx, 4
jne 0x18001f8c1
cmp ebx, 3
je 0x18001f8e7
cmp ecx, 5
jne 0x18001f8cb
cmp ebx, 4
je 0x18001f8e7
cmp ecx, 7
jne 0x18001f8d5
cmp ebx, 0x12
je 0x18001f8e7
cmp ecx, 6
jne 0x18001fd63
cmp ebx, 0x13
jne 0x18001fdd4
xor eax, eax
mov r15d, eax
mov word [rbp + 0x1f0], ax
mov word [rbp - 0x10], ax
cmp dword [rsp + 0x50], eax
jne 0x18001f938
cmp qword [0x180025e60], rax
lea r9, [0x180025e60]
mov dword [rsp + 0x50], edx
je 0x18001f938
cmp ebx, dword [r9 + 8]
je 0x18001f922
add r9, 0x10
cmp qword [r9], rax
jne 0x18001f911
jmp 0x18001f938
mov r9, qword [r9]
lea r8, str.__s__r_n
mov rdx, r14
lea rcx, [rbp - 0x10]
call fcn.180009334
lea eax, [rbx - 2]
test eax, 0xffffffee
jne 0x18001fb60
cmp ebx, 0x13
je 0x18001fb60
mov rax, qword [rdi]
lea r9, [rbp + 0x1f0]
lea r8, [rsp + 0x48]
mov dword [rsp + 0x20], r14d
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov rax, qword [rax + 0x10]
call qword [case.0x180004b4f.0]
mov rdx, qword [rsp + 0x70]
cmp ebx, 3
mov r9, qword [rsp + 0x48]
mov rcx, r12
cmove rdx, qword [rsp + 0x78]
cmp ebx, 2
mov r8, qword [rsp + 0x58]
cmove rdx, qword [rbp - 0x80]
call fcn.18001ffe0
xor ecx, ecx
test eax, eax
jne 0x18001fb54
mov rcx, qword [rsp + 0x58]
cmp word [rbp + 0x1f0], r15w
jne 0x18001fa7c
movups xmm0, xmmword [str._s__s___s__r_n]
mov eax, dword [0x18002fc60]
movsd xmm1, qword [0x18002fc58]
movups xmmword [rbp - 0x70], xmm0
mov dword [rbp - 0x58], eax
movsd qword [rbp - 0x60], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
lea rcx, [rbp - 0x10]
add ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
add eax, ebx
movsxd rbx, eax
add rbx, 0xf
cmp rbx, r14
jbe 0x18001fa45
mov r14d, 2
mov eax, r14d
mul rbx
lea rcx, [r14 - 3]
cmovo rax, rcx
mov rcx, rax
call fcn.180024008
mov rsi, rax
test rax, rax
je 0x18001ff22
mov r14, rbx
mov rax, qword [rsp + 0x48]
lea r9, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x70]
mov rax, qword [rsp + 0x58]
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180009334
cmp eax, 0x8007007a
je 0x18001ff78
jmp 0x18001fcc4
movups xmm0, xmmword [str._s__s___s___s_r_n]
movzx eax, word [0x18002fc88]
movups xmm1, xmmword [0x18002fc78]
mov word [rbp - 0x20], ax
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
lea rcx, [rbp - 0x10]
add ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
lea rcx, [rbp + 0x1f0]
add ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
add eax, ebx
movsxd rbx, eax
add rbx, 0x12
cmp rbx, r14
jbe 0x18001fb1c
mov r14d, 2
mov eax, r14d
mul rbx
lea rcx, [r14 - 3]
cmovo rax, rcx
mov rcx, rax
call fcn.180024008
mov rsi, rax
test rax, rax
je 0x18001ff3b
mov r14, rbx
lea rax, [rbp + 0x1f0]
mov rdx, r14
mov qword [rsp + 0x30], rax
lea r9, [rbp - 0x10]
mov rax, qword [rsp + 0x48]
lea r8, [rbp - 0x40]
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.180009334
jmp 0x18001fa6c
mov word [rbp + 0x3f0], cx
jmp 0x18001fca0
cmp ebx, 4
je 0x18001fb77
cmp ebx, 0x13
je 0x18001fb77
mov word [rbp + 0x3f0], r15w
jmp 0x18001fcc4
mov rax, qword [rdi]
lea r8, [rsp + 0x48]
movups xmm0, xmmword [str._s__s_]
and dword [rsp + 0x20], r15d
xor r9d, r9d
xor edx, edx
mov rcx, rdi
mov rax, qword [rax + 0x10]
movdqu xmmword [rbp - 0x50], xmm0
call qword [case.0x180004b4f.0]
mov rax, qword [rdi]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [case.0x180004b4f.0]
mov r12, rax
mov ebx, 2
mov eax, ebx
mul r12
lea rcx, [rbx - 3]
cmovo rax, rcx
mov rcx, rax
call fcn.180024008
mov r15, rax
mov rcx, rdi
mov rax, qword [rdi]
test r15, r15
je 0x18001ff43
mov rax, qword [rax + 0x18]
mov r8, r12
mov rdx, r15
call qword [case.0x180004b4f.0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
lea rcx, [rbp - 0x10]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
add ebx, eax
movsxd rbx, ebx
add rbx, 0xb
add rbx, r12
cmp rbx, r14
jbe 0x18001fc54
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbx
cmovo rax, rcx
mov rcx, rax
call fcn.180024008
mov rsi, rax
test rax, rax
je 0x18001ff78
mov r14, rbx
mov rax, qword [rsp + 0x48]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov rdx, r14
mov rcx, rsi
call fcn.180009334
cmp eax, 0x8007007a
je 0x18001ff78
mov r8, r15
mov rdx, r14
mov rcx, rsi
call fcn.18000925c
lea r8, [0x18002fca0]
mov rdx, r14
mov rcx, rsi
call fcn.18000925c
mov r12, qword [rbp - 0x78]
test r15, r15
je 0x18001fcc1
mov rcx, r15
call fcn.180023ffc
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x180004b4f.0]
xor r15d, r15d
cmp qword [r12 + 0x10], r15
jne 0x18001fded
mov r14d, 0xfffffff5
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
nop dword [rax + rax]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetFileType]
nop dword [rax + rax]
btr eax, 0xf
cmp eax, 2
jne 0x18001fddc
lea rdx, [rsp + 0x64]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
nop dword [rax + rax]
test eax, eax
je 0x18001fddc
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
mov ecx, r14d
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
nop dword [rax + rax]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], r15
mov rcx, rax
mov r8d, ebx
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
nop dword [rax + rax]
jmp 0x18001fe22
lea eax, [rcx - 3]
cmp eax, 2
jbe 0x18001fdd4
cmp ecx, 7
je 0x18001fdd4
lea rax, [r15 + 3]
cmp rax, r14
jbe 0x18001fda1
mov r14, rax
mov eax, 2
mul r14
cmovo rax, r8
mov rcx, rax
call fcn.180024008
xor r15d, r15d
mov rsi, rax
test rax, rax
je 0x18001ff78
jmp 0x18001fda4
xor r15d, r15d
test r13, r13
lea r8, [rbp + 0x5f0]
mov rdx, r14
mov rcx, rsi
cmovne r8, r13
call fcn.1800091d0
lea r8, [0x18002fca0]
mov rdx, r14
mov rcx, rsi
call fcn.18000925c
jmp 0x18001fcc4
xor r15d, r15d
jmp 0x18001fb6a
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__putws]
nop dword [rax + rax]
jmp 0x18001fe22
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
nop dword [rax + rax]
mov rcx, qword [r12 + 0x10]
lea r9, [rsp + 0x60]
mov rdx, rsi
mov qword [rsp + 0x20], r15
lea r8d, [rax + rax]
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.KERNEL32.dll_WriteFile]
nop dword [rax + rax]
lea rax, [rbp + 0x3f0]
cmp rsi, rax
je 0x18001fe36
mov rcx, rsi
call fcn.180023ffc
test r13, r13
je 0x18001fe43
mov rcx, r13
call fcn.180023ffc
mov rbx, qword [r12 + 8]
xor r13d, r13d
mov rax, qword [rbx + 0x28]
test rax, rax
jne 0x18001fe77
mov eax, r13d
cmp qword [rbx + 0x10], r13
jbe 0x18001fe77
cmp qword [rbx + 8], r13
jne 0x18001fe77
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x180004b4f.0]
mov rax, qword [rbx + 0x28]
mov rsi, qword [rbx + 0x10]
sub rsi, rax
shr rsi, 1
je 0x18001ff02
cmp qword [rbx + 8], r13
jne 0x18001fea0
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x180004b4f.0]
test eax, eax
mov rax, r13
je 0x18001fea4
mov rax, qword [rbx + 8]
mov r14, qword [rbx + 0x28]
lea r9, [rsp + 0x40]
mov ecx, 0xd
mov qword [rsp + 0x40], r13
mov r8, rsi
lea r15, [rax + r14]
mov rdx, r15
call fcn.180022314
test eax, eax
jne 0x18001ff02
mov rcx, qword [rsp + 0x40]
mov eax, 0xfffffffe
cmp rcx, rax
jae 0x18001ff02
inc rcx
sub rsi, rcx
je 0x18001ff02
cmp word [r15 + rcx*2], 0xa
je 0x18001feef
lea rax, [r14 + rcx*2]
jmp 0x18001ff06
lea rax, [rsi - 1]
test rax, rax
je 0x18001ff02
lea rax, [rcx + 1]
lea rax, [r14 + rax*2]
jmp 0x18001ff06
mov rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
mov rcx, qword [r12 + 8]
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x10], rax
je 0x18001ff93
mov ebx, dword [rsp + 0x54]
jmp 0x18001f7a8
mov r8, qword [rdi]
mov rax, qword [r8]
mov rcx, rdi
mov edx, 1
call qword [case.0x180004b4f.0]
mov eax, r14d
jmp 0x18001ffae
mov rax, qword [rdi]
mov rax, qword [rax]
jmp 0x18001ff28
mov rax, qword [rax]
mov edx, 1
call qword [case.0x180004b4f.0]
mov eax, ebx
jmp 0x18001ffae
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rcx, rdi
call qword [case.0x180004b4f.0]
mov eax, 5
jmp 0x18001ffae
mov rcx, r13
call fcn.180023ffc
test rdi, rdi
je 0x18001ff8c
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x180004b4f.0]
mov eax, 2
jmp 0x18001ffae
test rdi, rdi
je 0x18001ffac
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x180004b4f.0]
xor eax, eax
mov rcx, qword [rbp + 0x7f0]
xor rcx, rsp
call fcn.180024570
mov rbx, qword [rsp + 0x948]
add rsp, 0x900
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret