Function at 0x14015ba60
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
mov rsi, qword [0x14022c040]
mov rax, qword [rsi]
mov qword [rsp + 0x1c8], rax
xor eax, eax
mov rax, qword [0x14022c910]
cmp byte [rcx + 0x124], 0
mov r15, rcx
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 0x148]
mov qword [rsp + 0x58], 0
mov rbx, qword [rax]
mov r14, qword [rax + 8]
js 0x14015c0b8
mov rax, qword [0x14022c970]
mov rax, qword [rax]
mov rax, qword [rax + 0x170]
mov ebp, dword [rax + 0x18]
lea rsi, [rsp + 0x110]
mov ecx, 0x16
xor eax, eax
mov qword [r15 + 0x148], 0
mov rdi, rsi
rep stosq qword [rdi], rax
test byte [r15 + 0x11e], 2
je 0x14015c1b0
movzx eax, word [r15 + 0x124]
and ax, 0x401
cmp ax, 1
je 0x14015c0c8
or byte [r15 + 0x124], 1
mov rcx, qword [r15 + 0x570]
call fcn.14014b750
mov eax, dword [r15 + 0x144]
lea edx, [rax - 6]
cmp edx, 1
jbe 0x14015c178
cmp eax, 8
jne 0x14015bdb8
test byte [r15 + 0x124], 0x20
jne 0x14015bf30
mov r9d, dword [r15 + 0x120]
test r9d, r9d
jne 0x14015c04a
mov r8d, dword [rsp + 0x140]
test r8d, r8d
js 0x14015bb85
mov ecx, dword [r15 + 0x1c8]
test ecx, ecx
jne 0x14015c258
movzx eax, byte [r15 + 0x125]
movzx edx, byte [rsp + 0x138]
movdqu xmm0, xmmword [r15 + 0x128]
mov ecx, eax
and edx, 0xfffffffe
shr cl, 4
movups xmmword [rsp + 0x128], xmm0
and ecx, 1
or edx, ecx
mov byte [rsp + 0x138], dl
mov edx, dword [r15 + 0x6f4]
mov dword [rsp + 0x114], edx
mov edx, eax
shr al, 7
shr dl, 5
and edx, 1
mov dword [rsp + 0x120], edx
mov edx, eax
movzx eax, byte [rsp + 0x180]
and eax, 0xfffffffe
or eax, edx
mov byte [rsp + 0x180], al
mov rax, qword [r15 + 0xa68]
mov qword [rsp + 0x150], rax
mov eax, dword [r15 + 0x144]
mov dword [rsp + 0x110], eax
mov rax, qword [r15 + 0x1f8]
mov qword [rsp + 0x168], rax
mov eax, dword [r15 + 0x6b4]
mov dword [rsp + 0x170], eax
mov eax, dword [r15 + 0x138]
mov dword [rsp + 0x13c], eax
call fcn.140024000
cmp qword [r15 + 0x190], 0
mov qword [rsp + 0x158], r15
mov qword [rsp + 0x160], rax
je 0x14015bc70
cmp qword [r15 + 0x180], 0
je 0x14015bc70
lea rax, [r15 + 0x180]
mov qword [rsp + 0x178], rax
mov rcx, qword [r15 + 0x570]
test rcx, rcx
je 0x14015bc88
call fcn.14014a370
mov dword [rsp + 0x1b8], eax
lea rdi, [rsp + 0x50]
mov rdx, rbx
mov rcx, rsi
mov r8, rdi
call fcn.14004b870
mov edx, dword [r15 + 0x1c8]
test edx, edx
jne 0x14015c120
mov eax, dword [rsp + 0x110]
cmp eax, 8
je 0x14015bcea
mov rbx, qword [rsp + 0x148]
test rbx, rbx
je 0x14015bcea
cmp byte [rbx], 0
je 0x14015bcea
sub eax, 6
cmp eax, 1
jbe 0x14015c3e0
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov rdx, rbx
mov rcx, rdi
mov r8, rax
call fcn.14008f5f0
mov eax, dword [r15 + 0x1f0]
test eax, eax
jne 0x14015c0f0
mov rdx, qword [rsp + 0x58]
mov eax, 1
test rdx, rdx
jne 0x14015bda0
lea edx, [rax*8]
movzx eax, byte [r15 + 0x125]
mov rcx, qword [r15 + 0x570]
mov r8, rdi
and eax, 0xfffffff7
or eax, edx
mov rdx, qword [r15 + 0x778]
mov byte [r15 + 0x125], al
call fcn.14014ba50
test byte [r15 + 0x125], 4
jne 0x14015c138
mov rcx, rdi
call fcn.14008e580
mov rcx, qword [rsp + 0x148]
call fcn.1400eaf30
mov rcx, qword [rsp + 0x118]
call fcn.1400eaf30
mov rbx, qword [0x14022c040]
mov rax, qword [rsp + 0x1c8]
sub rax, qword [rbx]
jne 0x14015c454
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x60]
cmp byte [rax + rdx - 1], 0xa
setne al
jmp 0x14015bd0c
mov ecx, dword [r15 + 0x6b4]
mov rdi, qword [r15 + 0x778]
mov edx, 6
call fcn.14012c070
mov rdx, rdi
mov rcx, rax
call fcn.1401deb18
cmp dword [r15 + 0x144], 5
jne 0x14015c280
cmp qword [r15 + 0x570], 0
je 0x14015c390
mov r12, qword [0x14022c970]
mov rdi, qword [r15 + 0x778]
lea rdx, [rbx + 4]
mov r8d, ebp
mov rcx, qword [r12]
call fcn.1400371d0
mov rdx, rdi
mov rcx, rax
call fcn.1401deb18
test byte [r15 + 0x11b], 0x20
jne 0x14015c2c0
cmp qword [r15 + 0xa70], 0
je 0x14015be46
mov r8d, ebp
mov rdx, rbx
mov rcx, r15
call fcn.14015a170
test r14, r14
je 0x14015be71
mov rcx, qword [r12]
lea rdx, [r14 + 4]
mov r8d, ebp
call fcn.1400371d0
mov rcx, qword [r15 + 0x778]
lea rdx, str.__from__s_
mov r8, rax
call sub.libintl_8.dll_libintl_fprintf
mov ecx, dword [r15 + 0x6b4]
xor edx, edx
mov rdi, qword [r15 + 0x778]
call fcn.14012c070
mov rdx, rdi
mov rcx, rax
call fcn.1401deb18
mov rdx, rbx
mov rcx, r15
call fcn.14015b2e0
cmp dword [r15 + 0x144], 5
mov rdx, qword [r15 + 0x778]
je 0x14015c2a8
mov ecx, 0xa
call sub.msvcrt.dll_putc
mov rcx, qword [r15 + 0x570]
call fcn.14014b5d0
mov rcx, qword [r15 + 0xa68]
test rcx, rcx
je 0x14015bb4b
movdqu xmm1, xmmword [r15 + 0x128]
xor edx, edx
lea r8, [rsp + 0x40]
movups xmmword [rsp + 0x40], xmm1
movzx r9d, byte [r15 + 0x125]
shr r9b, 4
cmp dword [r15 + 0x144], 5
sete dl
and r9d, 1
call fcn.140058340
cmp dword [r15 + 0x144], 5
je 0x14015bd6d
test byte [r15 + 0x124], 0x20
je 0x14015bb59
nop dword [rax + rax]
mov rax, qword [0x14022c910]
lea rbp, [rsp + 0xb0]
mov ecx, 0xc
lea r14, [rsp + 0x90]
mov qword [rsp + 0x70], 0
mov rdi, rbp
mov r8, r14
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xa0], rax
xor eax, eax
rep stosq qword [rdi], rax
mov rcx, rbx
mov rax, qword [0x14022c970]
lea rdi, [rsp + 0x70]
mov qword [rsp + 0x78], 0
mov rdx, rdi
mov qword [rsp + 0x90], 0
mov rax, qword [rax]
mov qword [rsp + 0x98], 0
mov r9, qword [rax + 0x170]
call fcn.140117690
test eax, eax
jle 0x14015c018
lea rdx, [rsp + 0xb8]
mov rcx, rdi
mov dword [rsp + 0xc0], 1
call fcn.14008e600
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov rcx, rbp
mov qword [rsp + 0xb0], rax
call fcn.1401492d0
mov r8, qword [rsp + 0xd0]
mov edx, eax
test eax, eax
je 0x14015c008
test r8, r8
je 0x14015c440
mov rcx, r15
call fcn.14015a080
mov rcx, rbp
call fcn.140149240
mov rcx, rdi
call fcn.14008e580
mov rcx, r14
call fcn.14008e580
mov r8, r15
mov rdx, rbx
lea rcx, [0x14015a540]
call fcn.140117df0
mov r9d, dword [r15 + 0x120]
test r9d, r9d
je 0x14015bb69
mov rax, qword [0x14022c910]
xor ebp, ebp
cmp dword [r15 + 0x144], 8
lea rdi, [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
sete bpl
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], rax
call fcn.140024000
lea rcx, [rbx + 4]
mov r9d, ebp
mov rdx, rdi
mov r8, rax
call fcn.140178000
xor edx, edx
mov rcx, rdi
call fcn.14008e600
mov qword [rsp + 0x148], rax
jmp 0x14015bb69
mov ebp, dword [rcx + 0x140]
jmp 0x14015bad7
mov ecx, dword [r15 + 0x6d0]
cmp ecx, 0xa
je 0x14015c318
mov rdx, qword [r15 + 0x778]
call sub.msvcrt.dll_putc
jmp 0x14015bb1b
mov rcx, qword [r15 + 0x778]
mov r8d, dword [rsp + 0x58]
lea rdx, str.log_size__i_n
call sub.libintl_8.dll_libintl_fprintf
mov rcx, qword [r15 + 0x570]
call fcn.14014b5d0
jmp 0x14015bcf9
mov r8d, 1
xor edx, edx
mov rcx, rdi
call fcn.14018fb40
jmp 0x14015bcaa
mov ecx, dword [r15 + 0x144]
call fcn.140047950
test eax, eax
jne 0x14015bd4b
test byte [r15 + 0x125], 8
je 0x14015c428
mov rdx, qword [r15 + 0x778]
mov ecx, dword [r15 + 0x6d0]
call sub.msvcrt.dll_putc
jmp 0x14015bd4b
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x140]
mov rdx, rbx
mov rcx, r15
lea r8, [rsp + 0x118]
call fcn.14015b6b0
mov qword [rsp + 0x158], r15
jmp 0x14015bb4b
mov rcx, qword [r15 + 0x570]
call fcn.14014b750
cmp qword [r15 + 0x570], 0
je 0x14015c3c8
mov r12, qword [0x14022c970]
mov rsi, qword [r15 + 0x778]
lea rdx, [rbx + 4]
mov r8d, ebp
mov rcx, qword [r12]
call fcn.1400371d0
mov rdx, rsi
mov rcx, rax
call fcn.1401deb18
test byte [r15 + 0x11b], 0x20
jne 0x14015c340
cmp qword [r15 + 0xa70], 0
je 0x14015c219
mov r8d, ebp
mov rdx, rbx
mov rcx, r15
call fcn.14015a170
mov rcx, r15
mov rdx, rbx
call fcn.14015b2e0
mov rcx, qword [r15 + 0x570]
test rcx, rcx
je 0x14015c23d
call fcn.14014b5c0
test eax, eax
je 0x14015c3a0
mov rdx, qword [r15 + 0x778]
mov ecx, dword [r15 + 0x6d0]
call sub.msvcrt.dll_putc
jmp 0x14015bd6d
mov ecx, 2
call fcn.14002b300
mov rcx, rax
call fcn.140047c10
mov dword [rsp + 0x140], eax
jmp 0x14015bb85
mov r9, qword [r15 + 0x778]
mov r8d, 7
mov edx, 1
lea rcx, [0x1402170b4]
call sub.msvcrt.dll_fwrite
jmp 0x14015bde9
mov ecx, 0x20
call sub.msvcrt.dll_putc
jmp 0x14015bec7
mov rax, qword [r15 + 0x778]
mov r13, qword [rbx + 0x30]
mov qword [rsp + 0x38], rax
test r13, r13
je 0x14015be2e
lea rdi, [0x140216dae]
mov rax, qword [r13]
mov rcx, qword [r12]
mov r8d, ebp
lea rdx, [rax + 4]
call fcn.1400371d0
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, rax
call sub.libintl_8.dll_libintl_fprintf
mov r13, qword [r13 + 8]
test r13, r13
jne 0x14015c2e0
jmp 0x14015be2e
test byte [r15 + 0x125], 8
jne 0x14015c0d8
mov rcx, qword [r15 + 0x570]
call fcn.14014b690
mov ecx, dword [r15 + 0x6d0]
jmp 0x14015c0d8
mov rsi, qword [rbx + 0x30]
mov r13, qword [r15 + 0x778]
test rsi, rsi
je 0x14015c201
lea rdi, [0x140216dae]
nop dword [rax + rax]
mov rax, qword [rsi]
mov rcx, qword [r12]
mov r8d, ebp
lea rdx, [rax + 4]
call fcn.1400371d0
mov rdx, rdi
mov rcx, r13
mov r8, rax
call sub.libintl_8.dll_libintl_fprintf
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x14015c360
jmp 0x14015c201
mov rdx, rbx
mov rcx, r15
call fcn.140080af0
jmp 0x14015bdf7
mov rdx, qword [r15 + 0x778]
mov ecx, 0xa
call sub.msvcrt.dll_putc
mov rcx, qword [r15 + 0x570]
call fcn.14014b8f0
jmp 0x14015c23d
mov rdx, rbx
mov rcx, r15
call fcn.140080af0
jmp 0x14015c1ca
mov r8d, 4
lea rdx, str.____n
test byte [r15 + 0x124], 2
je 0x14015c404
mov r8d, 1
lea rdx, [0x140216da0]
mov rcx, rdi
call fcn.14008f5f0
or byte [r15 + 0x124], 2
mov rbx, qword [rsp + 0x148]
jmp 0x14015bcd4
mov rcx, qword [r15 + 0x570]
call fcn.14014b690
jmp 0x14015c15a
lea r8, str.No_signature_n
mov rcx, r15
call fcn.14015a080
jmp 0x14015c010
call fcn.1401d96b0
nop
nop word [rax + rax]