Function at 0x14015fb40
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov esi, dword [rsp + 0x110]
mov r12, rdx
mov rdx, qword [0x140207460]
mov qword [rsp + 0x58], rcx
mov rdi, r8
mov dword [rsp + 0x108], r9d
mov rax, qword [rdx]
mov qword [rsp + 0x98], rax
xor eax, eax
test esi, esi
je 0x1401601d4
mov ecx, 2
call qword [fcn.1401bee20]
mov rbx, rax
mov rbp, qword [0x1402078f0]
lea r13, str.usage:__s
mov qword [rsp + 0x38], 7
mov eax, dword [rbp]
test eax, eax
jne 0x1401601e7
lea rax, str.___or:__s
lea r15, [0x1401f6040]
mov qword [rsp + 0x50], rax
test r12, r12
je 0x14015fe93
mov rdx, qword [rsp + 0x58]
xor esi, 1
test rdx, rdx
setne al
and al, sil
mov byte [rsp + 0x67], al
jne 0x14016016d
mov rdx, qword [r12]
lea rax, [rsp + 0x70]
xor esi, esi
lea r14, str._____s
mov qword [rsp + 0x40], rax
test rdx, rdx
je 0x14015fec9
add r12, 8
cmp byte [rdx], 0
mov qword [rsp + 0x68], rdi
je 0x14015fd2d
nop word [rax + rax]
mov eax, dword [rbp]
test eax, eax
je 0x14015fc3a
mov rcx, rdx
call sub.libintl_8.dll_libintl_gettext
mov rdx, rax
mov qword [rsp + 0x90], 0
pxor xmm0, xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x88], 1
test esi, esi
jne 0x14015fc6c
xor esi, esi
cmp byte [rdx], 0
sete sil
mov rcx, qword [rsp + 0x40]
mov r9d, 0xffffffff
mov r8d, 0xa
xor edi, edi
call fcn.140082bf0
xor eax, eax
cmp qword [rsp + 0x78], 0
jne 0x14015fcca
jmp 0x14015fd02
cmp byte [r8], 0
je 0x14015fce8
mov eax, dword [rbp]
mov rdx, r14
test eax, eax
je 0x14015fcb5
mov rcx, r14
mov qword [rsp + 0x48], r8
call sub.libintl_8.dll_libintl_gettext
mov r8, qword [rsp + 0x48]
mov rdx, rax
mov rcx, rbx
call fcn.140080920
lea eax, [rdi + 1]
mov rdi, rax
cmp rax, qword [rsp + 0x78]
jae 0x14015fd02
shl rax, 4
add rax, qword [rsp + 0x70]
mov r8, qword [rax]
test esi, esi
jne 0x14015fc90
test edi, edi
jne 0x14015fd40
mov rdx, r13
jmp 0x14015fcb5
mov rdx, rbx
mov ecx, 0xa
call sub.msvcrt.dll_fputc
lea eax, [rdi + 1]
mov rdi, rax
cmp rax, qword [rsp + 0x78]
jb 0x14015fcca
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.1400827a0
mov rdx, qword [r12]
test rdx, rdx
je 0x14015fec4
add r12, 8
cmp byte [rdx], 0
mov r13, qword [rsp + 0x50]
jne 0x14015fc28
lea rdx, [0x1401f5ab7]
jmp 0x14015fc3a
mov qword [rsp + 0x20], r8
mov r8d, dword [rsp + 0x38]
mov rdx, r15
mov rcx, rbx
lea r9, [0x1401f5ab7]
call fcn.140080920
jmp 0x14015fcbd
lea r14, [0x1401f6067]
test r8d, r8d
je 0x14015fd84
cmp qword [rdi + 8], 0
lea r14, [0x1401f605c]
lea rax, str.__s_
cmovne r14, rax
test r12, r12
je 0x140160246
cmp byte [r12], 0
je 0x14016000f
mov r8d, dword [rbp]
test r8d, r8d
je 0x14015fdac
mov rcx, r12
call sub.libintl_8.dll_libintl_gettext
mov r12, rax
mov r8, r12
mov rdx, r14
mov rcx, rbx
call fcn.1400a1c80
cdqe
add rsi, rax
mov r8d, 0xffffffff
cmp rsi, 0x19
je 0x14015fdde
cmp rsi, 0x18
ja 0x1401600bc
mov r8d, 0x18
sub r8d, esi
cmp dword [rdi], 3
je 0x14016005a
mov rcx, qword [rdi + 0x20]
movzx eax, byte [rcx]
test al, al
je 0x14015fe68
mov edx, dword [rbp]
test edx, edx
je 0x14015fe12
mov dword [rsp + 0x38], r8d
call sub.libintl_8.dll_libintl_gettext
mov r8d, dword [rsp + 0x38]
mov rcx, rax
movzx eax, byte [rax]
test al, al
je 0x14015fe68
lea r14, str._s_.s_n
lea r12, [0x1401f5ab7]
mov rsi, rcx
cmp al, 0xa
jne 0x14015fe34
jmp 0x140160041
cmp al, 0xa
je 0x14015fe40
movzx eax, byte [rsi + 1]
add rsi, 1
test al, al
jne 0x14015fe30
mov eax, esi
sub eax, ecx
mov qword [rsp + 0x28], rcx
add r8d, 2
mov r9, r12
mov rdx, r14
mov dword [rsp + 0x20], eax
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
cmp byte [rsi], 0
jne 0x140160020
xor edx, edx
nop word [rax + rax]
mov eax, dword [rdi + 0x58]
add rdi, 0x58
test eax, eax
jne 0x14015fee8
mov rdx, rbx
mov ecx, 0xa
call sub.msvcrt.dll_fputc
cmp byte [rsp + 0x67], 0
jne 0x14016013f
mov rdx, qword [0x140207460]
mov rax, qword [rsp + 0x98]
sub rax, qword [rdx]
jne 0x140160275
mov eax, 0xfffffffe
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x68]
mov eax, dword [rdi]
mov r15d, dword [rsp + 0x108]
mov edx, 1
lea r13, [0x1401f60ac]
test eax, eax
je 0x14015fe7b
nop dword [rax + rax]
cmp eax, 4
je 0x14015fe70
cmp eax, 1
je 0x1401600fa
test r15d, r15d
jne 0x14015ff05
test byte [rdi + 0x28], 8
jne 0x14015fe70
test edx, edx
jne 0x140160048
mov rdx, r13
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
mov r8d, dword [rdi + 4]
movsxd rsi, eax
test r8d, r8d
je 0x14015ff68
test byte [rdi + 0x28], 0x20
je 0x1401600a3
lea rdx, [0x1401f60b1]
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
cdqe
add rsi, rax
mov r8, qword [rdi + 8]
test r8, r8
je 0x14015ff85
mov r10d, dword [rdi + 4]
test r10d, r10d
je 0x14015ff71
lea rdx, [0x1401f60b8]
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
cdqe
add rsi, rax
mov r8, qword [rdi + 8]
test r8, r8
je 0x14015ff85
lea rdx, [0x1401f60bb]
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
cdqe
add rsi, rax
cmp dword [rdi], 2
je 0x1401600d4
mov eax, dword [rdi + 0x28]
mov edx, eax
and edx, 0x42
cmp edx, 2
je 0x14015fdbf
mov r8d, eax
mov r12, qword [rdi + 0x18]
and r8d, 1
test al, 0x40
jne 0x14015fd61
test r12, r12
je 0x14016023a
lea rdx, str.______
mov rcx, r12
mov dword [rsp + 0x38], r8d
call sub.msvcrt.dll_strpbrk
mov r8d, dword [rsp + 0x38]
test rax, rax
je 0x1401601a8
lea r14, [0x1401f6067]
test r8d, r8d
je 0x14015fd8d
cmp qword [rdi + 8], 0
lea r14, [0x1401f605c]
lea rax, str.__s_
cmovne r14, rax
cmp byte [r12], 0
jne 0x14015fd98
lea r12, [0x1401f5ab7]
jmp 0x14015fdac
movzx eax, byte [rsi + 1]
lea rcx, [rsi + 1]
mov r8d, 0x18
test al, al
je 0x14015fe68
mov rsi, rcx
cmp al, 0xa
jne 0x14015fe34
xor eax, eax
jmp 0x14015fe44
mov rdx, rbx
mov ecx, 0xa
call sub.msvcrt.dll_fputc
jmp 0x14015ff0d
lea rdx, [0x1401f60c8]
mov rcx, rbx
lea r9, [0x1401f5ab7]
add r8d, 2
call sub.libintl_8.dll_libintl_fprintf
mov ecx, dword [rbp]
mov rsi, qword [rdi + 0x10]
lea rdx, str.alias_of____s
test ecx, ecx
je 0x140160091
mov rcx, rdx
call sub.libintl_8.dll_libintl_gettext
mov rdx, rax
mov r8, rsi
mov rcx, rbx
call fcn.140080920
xor edx, edx
jmp 0x14015fe70
lea rdx, [0x1401f60b4]
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
cdqe
add rsi, rax
jmp 0x14015ff42
mov rdx, rbx
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r8d, 0x18
jmp 0x14015fdde
mov r9d, dword [rbp]
lea rdx, str._NUM
test r9d, r9d
jne 0x14016018b
mov rcx, rbx
call fcn.1400a1c80
cdqe
add rsi, rax
jmp 0x14015ff8e
mov rdx, rbx
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r8, qword [rdi + 0x20]
cmp byte [r8], 0
je 0x14015fe68
mov r11d, dword [rbp]
test r11d, r11d
je 0x140160129
mov rcx, r8
call sub.libintl_8.dll_libintl_gettext
mov r8, rax
lea rdx, [0x1401f60a8]
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
xor edx, edx
jmp 0x14015fe70
mov rax, qword [rsp + 0x58]
test byte [rax + 0x28], 0x40
je 0x14015fe93
mov r9, rbx
mov r8d, 4
mov edx, 1
lea rcx, str.EOF_n
call sub.msvcrt.dll_fwrite
jmp 0x14015fe93
test byte [rdx + 0x28], 0x40
je 0x14015fbf0
lea rdx, str.cat___EOF_n
mov rcx, rbx
call sub.libintl_8.dll_libintl_fprintf
jmp 0x14015fbf0
mov rcx, rdx
call sub.libintl_8.dll_libintl_gettext
mov rcx, rbx
mov rdx, rax
call fcn.1400a1c80
cdqe
add rsi, rax
jmp 0x14015ff8e
lea r14, [0x1401f607d]
test r8d, r8d
je 0x14015fd8d
cmp qword [rdi + 8], 0
lea r14, str.___s__
lea rax, [0x1401f6083]
cmove r14, rax
jmp 0x14015fd8d
mov ecx, 1
call qword [fcn.1401bee20]
mov rbx, rax
jmp 0x14015fb97
mov rcx, r13
call sub.libintl_8.dll_libintl_gettext
mov rcx, rax
mov r13, rax
call sub.msvcrt.dll_strlen
sub rax, 2
mov qword [rsp + 0x38], rax
mov eax, dword [rbp]
test eax, eax
je 0x14015fbb9
lea rcx, str.___or:__s
call sub.libintl_8.dll_libintl_gettext
mov qword [rsp + 0x50], rax
mov eax, dword [rbp]
test eax, eax
je 0x14016027a
lea rcx, [0x1401f6040]
call sub.libintl_8.dll_libintl_gettext
mov r15, rax
jmp 0x14015fbcc
lea r14, [0x1401f6067]
test r8d, r8d
jne 0x140160252
lea r12, [0x1401f606b]
jmp 0x14015fd98
cmp qword [rdi + 8], 0
lea r14, str.__s_
lea rax, [0x1401f605c]
cmove r14, rax
lea r12, [0x1401f606b]
jmp 0x14015fd98
call fcn.1401be670
lea r15, [0x1401f6040]
jmp 0x14015fbcc