Function at 0x14008f181
Capabilities:
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov eax, dword [r8]
sub eax, 3
mov r12, rcx
mov rbx, r8
cmp eax, 0x4e
ja case.default.0x14006bfee
lea rdx, [0x1400ad160]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov r8, rbx
mov edx, 0x11
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.14006bf15
mov rcx, r12
call fcn.14008a6b7
nop dword [rax]
mov eax, 3
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r11d, r11d
xor r10d, r10d
xor ebp, ebp
cmp qword [rsp + 0x38], 1
mov eax, 6
ja 0x140078809
mov rax, qword [rsp + 0x30]
mov dword [r12 - 0x24], ebp
mov qword [r12 - 0x20], r11
mov qword [r12 - 0x18], rax
mov rax, qword [rsp + 0x70]
mov qword [r12 - 0x10], r10
mov qword [r12 - 8], rax
mov eax, 6
jmp 0x140078809
test ebp, ebp
js 0x140078aa3
nop word cs:[rax + rax]
mov r8, r12
xor edx, edx
mov rcx, r13
mov qword [rsp + 0x28], r10
call fcn.14006fe64
movsxd r8, ebp
mov edx, 1
mov rcx, r13
call fcn.14006fe64
mov rdx, qword [rsp + 0x28]
mov rcx, r13
call fcn.14006feb4
mov eax, 7
jmp 0x140078809
mov eax, 8
jmp 0x140078809
call fcn.14008a07c
nop
add r10, qword [rsp + 0x98]
test rdx, rdx
jne 0x140078b08
test r10, r10
je 0x140078a2a
mov ebp, dword [rsp + 0x118]
and ebp, 1
jne 0x140078a2a
jmp 0x1400789d8
mov rdx, qword [rsp + 0x30]
lea r8, [rsp + 0x90]
mov rcx, r13
mov qword [rsp + 0x28], r10
call fcn.140078210
movzx ecx, byte [rsp + 0xb8]
mov rdx, r13
call fcn.140078441
movzx ecx, byte [rsp + 0xb8]
mov rdx, r13
mov qword [rsp + 0xa0], rax
call fcn.140078441
mov r10, qword [rsp + 0x28]
mov qword [r12 - 0x10], rax
jmp 0x1400789d8
mov rax, qword [rsp + 0xb0]
lea r11, [rax + rdx - 1]
test r10, r10
je 0x140078a2a
test r11, r11
je 0x140078a8e
lea rax, [0x1400af0c0]
mov rsi, rax
mov eax, dword [rsp + 0x118]
and eax, 8
mov dword [rsp + 0x54], eax
jne 0x140078b5b
lea rax, [0x1400af0f0]
cmp qword [rsp + 0x38], 1
mov rsi, rax
jbe 0x140078e72
lea rax, [rsp + 0x70]
movzx r14d, byte [rsp + 0x40]
mov ebp, dword [rsp + 0x54]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x58], rax
mov r15, rsi
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x128], r12
mov r12, r11
nop word cs:[rax + rax]
mov rbx, r12
xor r13d, r13d
xor ecx, ecx
nop dword [rax + rax]
movzx edx, byte [rbx]
add rbx, 1
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r13, rax
test dl, dl
js 0x140078ba4
cmp ecx, 0x3f
ja 0x140078be2
and edx, 0x40
je 0x140078be2
mov eax, 1
shl rax, cl
neg rax
or r13, rax
mov rdx, rbx
xor esi, esi
xor ecx, ecx
nop dword [rax]
movzx r8d, byte [rdx]
add rdx, 1
mov rax, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or rsi, rax
test r8b, r8b
js 0x140078bf0
cmp ecx, 0x3f
ja 0x140078c31
and r8d, 0x40
je 0x140078c31
mov eax, 1
shl rax, cl
neg rax
or rsi, rax
test r13, r13
je 0x140078cac
jg 0x140078cb7
test ebp, ebp
sete al
test byte [rsp + 0x28], al
je 0x140078c58
test r15, r15
jne 0x140078dcc
mov rdx, r13
xor r9d, r9d
xor ecx, ecx
not rdx
add rdx, qword [rsp + 0xa8]
nop dword [rax + rax]
movzx r8d, byte [rdx]
add rdx, 1
mov rax, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
test r8b, r8b
js 0x140078c70
test r9, r9
je 0x140078d35
test rsi, rsi
je 0x140078e4f
lea r12, [rbx + rsi]
jmp 0x140078b94
mov r14d, 1
jmp 0x140078c99
movzx ecx, byte [rsp + 0xb8]
mov eax, ecx
cmp cl, 0xff
je 0x140078dc4
and eax, 7
cmp al, 2
je 0x140078db7
jbe 0x140078da3
lea r8, [r13*4]
neg r8
cmp al, 3
jne 0x140078d8b
mov rdx, qword [rsp + 0xa0]
mov r9, rdi
add r8, qword [rsp + 0xa8]
call fcn.140078528
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140078d35
test r15, r15
je 0x140078c99
mov r8, qword [rsp + 0x58]
mov rdx, r15
call fcn.140078198
test al, al
je 0x140078c99
mov r11, r12
mov rbp, r13
mov r10, qword [rsp + 0x40]
mov r12, qword [rsp + 0x128]
mov r13, qword [rsp + 0x130]
test byte [rsp + 0x118], 1
jne 0x140078988
mov eax, dword [rsp + 0x54]
test eax, eax
jne 0x140078d76
cmp qword [rsp + 0x38], 1
jbe 0x1400789c6
test ebp, ebp
jns 0x1400789d8
call fcn.140089082
nop dword [rax + rax]
cmp al, 4
jne 0x14008f082
lea r8, [r13*8]
neg r8
jmp 0x140078cee
test al, al
je 0x140078d93
jmp 0x14008f082
lea r8, [r13 + r13]
neg r8
jmp 0x140078cee
xor r8d, r8d
jmp 0x140078cee
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
mov r9, r13
mov rdx, r15
call fcn.140078310
test al, al
jne 0x140078c99
mov eax, dword [rsp + 0x118]
mov r11, r12
mov rbp, r13
mov r10, qword [rsp + 0x40]
mov r12, qword [rsp + 0x128]
add dword [rax], eax
add byte [rbx + rcx*4 - 0x54], cl
and al, 0x30
add dword [rax], eax
add byte [rbx - 0x7af0fe20], al
test ebx, edi
invalid
invalid
add dword [rax], eax
add byte [rbx + rcx*4 - 0x54], cl
and al, 0x30
add dword [rax], eax
add byte [rbx - 0x7af0fe20], al
test ebx, edi
invalid
jmp 0x140078d6a
test byte [rax + rbx], ah
add dword [rax], eax
add byte [rcx], al
jne 0x140078980
test byte [rsp + 0x118], 8
jne 0x140078a6e
cmp qword [rsp + 0x38], 1
jbe 0x1400787f8
jmp 0x140078a6e
mov r10, qword [rsp + 0x40]
mov r12, qword [rsp + 0x128]
mov r13, qword [rsp + 0x130]
test r14b, r14b
jne 0x140078a8e
jmp 0x140078a2a
lea rax, [r12 + 0x40]
test byte [r12], 1
je 0x140078e87
mov rax, qword [r12 - 0x50]
mov qword [rsp + 0x70], rax
mov rsi, qword [rax - 0x90]
jmp 0x140078b5b
mov ebx, dword [rcx + 8]
add byte [rax], al
add byte [rbp - 0x75], al
add dword [rbp - 0x7b], eax
ror byte [rdi], 0x84
xchg esi, eax
add byte [rax], al
add byte [rcx - 0x75], al
push rbx
add al, 0x45
mov ebp, eax
rol byte [rbx + rcx*4], 1
add byte [rax - 0x73], cl
or eax, 0x2551e
nop
nop
nop
dec dword [rcx - 0x77]
ret 0x8948
ror byte [rax - 0x7b], cl
fisttp dword [rdi]
test byte [rcx], bl
add byte [rax], al
add byte [rdi], cl
invalid
lodsb al, byte [rsi]
pop rsi
add eax, dword [rax]
sub ebp, eax
ror dword [rdi], 0x1f
add byte [rax], r8b
add byte [rax - 0x73], cl
or eax, 0x229fe
add byte [rax], al
add byte [rcx - 0x7d], cl
sti
add dword [rdi], ecx
test byte [rax], dl
add byte [rax], al
add byte [rbp - 0x75], cl
and cl, byte [rbp - 0x75]
xor al, 0x24
cmp qword cs:[rcx], rbp
mov edx, eax
call sub.msvcrt.dll_abort
call fcn.14008a62b
call fcn.14008a07c
nop
call fcn.14008a62b
call fcn.14008a8d5
mov rbx, qword [rax]
test byte [rbx + 0x50], 1
je 0x14008f125
mov rbx, qword [rbx]
lea r14, [rsp + 0x20]
mov rdx, r13
xor ecx, ecx
mov r8, r14
call fcn.140078210
mov rdx, qword [rbx - 0x90]
mov r9, rsi
mov r8, rbx
mov rcx, r14
call fcn.140078310
test al, al
jne 0x14008f146
lea r13, [0x1400af260]
mov r9, rsi
xor r8d, r8d
mov rcx, r14
mov rdx, r13
call fcn.140078310
test al, al
je 0x14008f14b
mov ecx, 8
call fcn.14008a5b3
lea r8, [0x140082c0c]
mov rdx, r13
mov rcx, rax
mov rax, qword [0x1400aec60]
add rax, 0x10
mov qword [rcx], rax
call fcn.14008abaf
add rbx, 0x90
jmp 0x14008f0ac
call fcn.14008ab54
mov rcx, r12
call fcn.14007867c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call sub.msvcrt.dll_abort
mov rcx, rax
call fcn.14008a62b
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov rcx, rax
mov rax, rdx
sub rax, 1
jne 0x14008f201
call fcn.14008a62b
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov r12, rax
call rbx
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rbx
mov rdx, rax
mov rcx, r12
call sub.msvcrt.dll_fputs
mov ecx, 2
call rbx
mov rdx, rax
mov ecx, 0xa
call fcn.1400771c7
call fcn.14008a77a
call sub.msvcrt.dll_abort
mov rcx, r13
call fcn.1400771af
call fcn.14008ab54
call fcn.14008a62b
call fcn.14008a77a
jmp 0x14008f1ef