Function at 0x140011304
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a50]
mov eax, 0x1b50
call fcn.140017850
sub rsp, rax
mov rax, qword [0x14001fa48]
xor rax, rsp
mov qword [rbp + 0x1a40], rax
xor r13d, r13d
mov r14d, r8d
xor edi, edi
movsxd rbx, ecx
mov dword [rsp + 0x44], r13d
mov r15, rdx
test r8d, r8d
je 0x140011a23
test rdx, rdx
jne 0x140011389
call fcn.140008d50
and dword [rax], edi
call fcn.140008dcc
and qword [rsp + 0x20], rdi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
call fcn.140008e44
or eax, 0xffffffff
jmp 0x140011a25
mov rax, rbx
mov qword [rsp + 0x78], rbx
and eax, 0x1f
lea rdx, [0x140022240]
imul r12, rax, 0x38
mov rcx, rbx
sar rcx, 5
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r12
mov rcx, qword [rdx + rcx*8]
mov esi, dword [r12 + rcx + 0xc]
and esi, 3
lea eax, [rsi - 1]
cmp eax, 1
ja 0x1400113cd
mov eax, r14d
not eax
test al, 1
je 0x14001135b
test byte [r12 + rcx + 8], 0x20
je 0x1400113e2
xor edx, edx
mov ecx, ebx
lea r8d, [rdx + 2]
call fcn.1400137ac
mov ecx, ebx
call fcn.140011a58
lea rcx, [0x140022240]
test eax, eax
je 0x14001169a
mov rax, qword [rsp + 0x58]
mov rax, qword [rcx + rax*8]
cmp byte [r12 + rax + 8], dil
jge 0x14001169a
call fcn.1400060cc
lea rdx, [rsp + 0x54]
mov rcx, qword [rax + 0xc0]
mov rax, qword [rsp + 0x58]
mov ebx, dword [rcx + 0x14]
lea rcx, [0x140022240]
mov rcx, qword [rcx + rax*8]
mov rcx, qword [r12 + rcx]
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
test eax, eax
je 0x140011693
test ebx, ebx
jne 0x14001144e
test esi, esi
je 0x140011693
call qword [sym.imp.KERNEL32.dll_GetConsoleCP]
and dword [rsp + 0x4c], edi
mov rbx, r15
mov dword [rsp + 0x54], eax
test r14d, r14d
je 0x14001168a
mov r13d, dword [rsp + 0x54]
mov r12d, 0xd
test esi, esi
jne 0x14001160f
movsx eax, byte [rbx]
xor r13d, r13d
cmp al, 0xa
mov byte [rsp + 0x50], al
mov ecx, eax
sete r13b
call fcn.14000a41c
test eax, eax
jne 0x1400114e5
lea r8d, [rsi + 1]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140012c30
cmp eax, 0xffffffff
jne 0x14001150f
mov ebx, dword [rsp + 0x4c]
mov r13d, dword [rsp + 0x44]
test edi, edi
jne 0x140011a1c
test ebx, ebx
je 0x1400119e2
cmp ebx, 5
jne 0x1400119d6
call fcn.140008dcc
mov dword [rax], 9
call fcn.140008d50
mov dword [rax], ebx
jmp 0x140011381
mov rax, r14
sub rax, rbx
add rax, r15
cmp rax, 1
jle 0x1400114ac
mov r8d, 2
lea rcx, [rsp + 0x40]
mov rdx, rbx
call fcn.140012c30
cmp eax, 0xffffffff
je 0x1400114ac
inc rbx
and qword [rsp + 0x38], 0
lea rax, [rbp - 0x80]
and qword [rsp + 0x30], 0
lea r8, [rsp + 0x40]
mov ecx, dword [rsp + 0x54]
mov r9d, 1
mov dword [rsp + 0x28], 5
xor edx, edx
mov qword [rsp + 0x20], rax
inc rbx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r12d, eax
test eax, eax
je 0x1400114ac
mov rcx, qword [rsp + 0x78]
lea r9, [rsp + 0x4c]
and qword [rsp + 0x20], 0
lea rdx, [rbp - 0x80]
mov rax, rcx
mov r8d, r12d
and ecx, 0x1f
sar rax, 5
imul r10, rcx, 0x38
lea rcx, [0x140022240]
mov qword [rsp + 0x68], rax
mov rcx, qword [rcx + rax*8]
mov qword [rsp + 0x70], r10
mov rcx, qword [rcx + r10]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14001167d
add edi, dword [rsp + 0x4c]
cmp dword [rsp + 0x4c], r12d
jl 0x1400114ac
cmp byte [rsp + 0x50], 0xa
mov r12d, 0xd
jne 0x14001166a
mov rcx, qword [rsp + 0x68]
lea rax, [0x140022240]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x4c]
mov byte [rbp - 0x80], r12b
lea r8d, [r12 - 0xc]
lea rdx, [rbp - 0x80]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rcx + rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14001167d
cmp dword [rsp + 0x4c], 1
jl 0x1400114ac
inc dword [rsp + 0x44]
inc edi
jmp 0x14001166a
lea eax, [rsi - 1]
cmp eax, 1
ja 0x14001162e
movzx eax, word [rbx]
xor r13d, r13d
cmp ax, 0xa
mov word [rsp + 0x40], ax
sete r13b
add rbx, 2
lea eax, [rsi - 1]
cmp eax, 1
ja 0x14001166a
movzx ecx, word [rsp + 0x40]
call fcn.140013aa8
cmp ax, word [rsp + 0x40]
jne 0x14001167d
add edi, 2
test r13d, r13d
je 0x14001166a
mov ecx, r12d
mov word [rsp + 0x40], r12w
call fcn.140013aa8
cmp ax, word [rsp + 0x40]
jne 0x14001167d
inc edi
inc dword [rsp + 0x44]
mov eax, ebx
sub eax, r15d
cmp eax, r14d
jae 0x1400114ac
jmp 0x140011473
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1400114b0
mov ebx, dword [rsp + 0x4c]
jmp 0x1400114bd
lea rcx, [0x140022240]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rcx + rax*8]
cmp byte [r12 + rcx + 8], dil
jge 0x1400119a9
xor ebx, ebx
test esi, esi
jne 0x140011771
mov r12, r15
test r14d, r14d
je 0x1400119e7
lea ecx, [rbx + 0xd]
lea rsi, [rbp - 0x70]
mov eax, r12d
sub eax, r15d
cmp eax, r14d
jae 0x140011700
mov al, byte [r12]
inc r12
cmp al, 0xa
jne 0x1400116e9
inc r13d
mov byte [rsi], cl
inc rsi
mov byte [rsi], al
lea rdx, [rbp - 0x70]
inc rsi
mov rax, rsi
sub rax, rdx
cmp rax, 0x13ff
jb 0x1400116cb
and qword [rsp + 0x20], rbx
lea rax, [rbp - 0x70]
mov r8d, esi
lea rcx, [0x140022240]
sub r8d, eax
lea r9, [rsp + 0x48]
mov rax, qword [rsp + 0x58]
lea rdx, [rbp - 0x70]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + rcx]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140011856
add edi, dword [rsp + 0x48]
lea rax, [rbp - 0x70]
sub rsi, rax
movsxd rax, dword [rsp + 0x48]
cmp rax, rsi
jl 0x1400114b5
mov eax, r12d
mov ecx, 0xd
sub eax, r15d
cmp eax, r14d
jb 0x1400116c7
jmp 0x1400114b5
cmp esi, 2
jne 0x140011863
mov r12, r15
test r14d, r14d
je 0x1400119e7
lea edx, [rsi + 0xb]
lea rsi, [rbp - 0x70]
mov eax, r12d
sub eax, r15d
cmp eax, r14d
jae 0x1400117e3
movzx ecx, word [r12]
add r12, 2
cmp cx, 0xa
jne 0x1400117c4
lea r8, [rbp - 0x70]
mov rax, rsi
sub rax, r8
cmp rax, 0x13fc
ja 0x1400117df
add r13d, 2
mov word [rsi], dx
add rsi, 2
mov word [rsi], cx
add rsi, 2
mov rax, rsi
lea rcx, [rbp - 0x70]
sub rax, rcx
cmp rax, 0x13fe
jae 0x1400117e3
jmp 0x14001178d
add r12, 0xfffffffffffffffe
and qword [rsp + 0x20], rbx
lea rax, [rbp - 0x70]
mov r8d, esi
lea rcx, [0x140022240]
sub r8d, eax
lea r9, [rsp + 0x48]
mov rax, qword [rsp + 0x58]
lea rdx, [rbp - 0x70]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + rcx]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140011856
movsxd rcx, dword [rsp + 0x48]
lea rax, [rbp - 0x70]
add edi, ecx
sub rsi, rax
cmp rcx, rsi
jl 0x1400114b5
test ecx, ecx
je 0x1400114b5
mov eax, r12d
mov edx, 0xd
sub eax, r15d
cmp eax, r14d
jb 0x140011789
jmp 0x1400114b5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1400114b5
mov rsi, r15
test r14d, r14d
je 0x1400119e7
mov r8d, 0xd
lea rcx, [rbp + 0x1390]
xor edx, edx
mov eax, esi
sub eax, r15d
cmp eax, r14d
jae 0x1400118c4
movzx eax, word [rsi]
add rsi, 2
cmp ax, 0xa
jne 0x1400118aa
cmp rdx, 0x6a6
ja 0x1400118c0
mov word [rcx], r8w
add rcx, 2
add rdx, 2
mov word [rcx], ax
add rdx, 2
add rcx, 2
cmp rdx, 0x6a8
jae 0x1400118c4
jmp 0x14001187e
add rsi, 0xfffffffffffffffe
and qword [rsp + 0x38], 0
lea rax, [rbp + 0x1390]
and qword [rsp + 0x30], 0
lea r8, [rbp + 0x1390]
sub ecx, eax
mov dword [rsp + 0x28], 0xd55
mov eax, ecx
mov ecx, 0xfde9
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov r9d, eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r13d, eax
test eax, eax
je 0x14001167d
mov rcx, qword [rsp + 0x78]
xor r12d, r12d
mov r9, qword [rsp + 0x78]
and ecx, 0x1f
sar r9, 5
imul r10, rcx, 0x38
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x68], r10
and qword [rsp + 0x20], 0
lea rdx, [rbp - 0x70]
movsxd rax, r12d
mov r8d, r13d
add rdx, rax
sub r8d, r12d
lea rax, [0x140022240]
mov rcx, qword [rax + r9*8]
lea r9, [rsp + 0x48]
mov rcx, qword [r10 + rcx]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14001197f
add r12d, dword [rsp + 0x48]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
cmp r13d, r12d
jg 0x140011935
jmp 0x140011987
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp r13d, r12d
jg 0x1400114b0
mov edi, esi
mov r8d, 0xd
sub edi, r15d
cmp edi, r14d
jb 0x140011875
jmp 0x1400114b0
mov rcx, qword [r12 + rcx]
lea r9, [rsp + 0x48]
and qword [rsp + 0x20], rdi
mov r8d, r14d
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140011856
mov edi, dword [rsp + 0x48]
xor ebx, ebx
jmp 0x1400114b5
mov ecx, ebx
call fcn.140008d78
jmp 0x140011381
mov rax, qword [rsp + 0x58]
lea rcx, [0x140022240]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rsp + 0x60]
test byte [rcx + rax + 8], 0x40
je 0x140011a04
cmp byte [r15], 0x1a
je 0x140011a23
call fcn.140008dcc
mov dword [rax], 0x1c
call fcn.140008d50
and dword [rax], 0
jmp 0x140011381
sub edi, r13d
mov eax, edi
jmp 0x140011a25
xor eax, eax
mov rcx, qword [rbp + 0x1a40]
xor rcx, rsp
call fcn.1400039d0
mov rbx, qword [rsp + 0x1ba8]
add rsp, 0x1b50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret