Function at 0x14015e1f0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x1050
call fcn.1401dcd70
sub rsp, rax
mov rax, qword [0x1402e1040]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r8, qword [rcx + 0x20]
mov rbx, rcx
mov rsi, qword [rcx + 0x1b8]
xor r12d, r12d
mov r14, rdx
mov edi, r12d
mov ecx, dword [r8 + 0x680]
sub ecx, 3
je 0x14015e28e
sub ecx, 1
je 0x14015e48c
sub ecx, 1
je 0x14015e28e
cmp ecx, 1
je 0x14015e324
mov edi, 8
mov eax, edi
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.140171bd0
lea r11, [rsp + 0x1050]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
movzx eax, byte [rsi + 0x18]
and al, 0xf0
cmp al, 0x30
jne 0x14015e479
mov dword [r8 + 0x680], 6
lea rdx, str.Remaining_length:__zu_bytes
mov rdi, qword [rsi + 0x20]
mov rcx, rbx
mov r8, rdi
call fcn.140101ff0
mov rax, qword [rbx + 0x6e8]
test rax, rax
je 0x14015e2e7
cmp rdi, rax
jle 0x14015e2e7
lea rdx, str.Maximum_file_size_exceeded
mov rcx, rbx
call fcn.140101e00
mov edi, 0x3f
jmp 0x14015e260
mov edx, dword [rbx + 0xac4]
test rdi, rdi
mov eax, edx
mov rcx, r12
cmovns rcx, rdi
and eax, 0xffffffbf
or edx, 0x40
test rdi, rdi
cmovs edx, eax
mov dword [rbx + 0xac4], edx
mov qword [rbx + 0xa98], rcx
mov qword [rbx + 0x100], r12
mov qword [rbx + 0xf0], rdi
mov qword [rsi + 0x10], rdi
mov r9, qword [rsi + 0x10]
mov eax, 0x1000
mov r10, qword [rbx + 0x20]
cmp r9, rax
cmova r9, rax
test r10, r10
je 0x14015e46f
mov rax, qword [r10 + 0x3e8]
cmp rax, 0xffffffffffffffff
je 0x14015e35c
mov edx, 1
cmp rax, qword [r10 + 0x228]
je 0x14015e35f
mov edx, r12d
mov eax, dword [rbx + 0x6c4]
test eax, eax
je 0x14015e370
cmp rax, r9
cmovb r9, rax
lea rcx, [rsp + 0x34]
mov eax, edx
mov qword [rsp + 0x20], rcx
lea r8, [rsp + 0x40]
mov rcx, rbx
mov dword [rsp + 0x34], r12d
call qword [r10 + rax*8 + 0x230]
mov edi, dword [rsp + 0x34]
mov rbp, r12
test rax, rax
cmovns rbp, rax
test edi, edi
je 0x14015e3c0
cmp edi, 0x51
jne 0x14015e260
lea rdx, str.EEEE_AAAAGAIN
mov rcx, rbx
call fcn.140101ff0
jmp 0x14015e260
test rbp, rbp
jne 0x14015e3de
lea rdx, str.server_disconnected
mov rcx, rbx
call fcn.140101ff0
mov edi, reloc.WS2_32.dll_select
jmp 0x14015e260
cmp qword [rbx + 0x148], r12
jne 0x14015e3f9
mov rcx, rbx
call fcn.140100a90
mov edi, eax
test eax, eax
jne 0x14015e260
mov rdx, qword [rbx + 0x148]
test rdx, rdx
jne 0x14015e40c
mov edi, reloc.WS2_32.dll_socket
jmp 0x14015e427
mov rax, qword [rdx]
lea r9, [rsp + 0x40]
mov r8d, 1
mov qword [rsp + 0x20], rbp
mov rcx, rbx
call qword [rax + Ordinal_26]
mov edi, eax
mov r9, rbp
mov dword [rsp + 0x20], edi
mov r8d, 1
lea rdx, str.client_write_type_x__len_zu______d
mov rcx, rbx
call fcn.1401022e0
test edi, edi
jne 0x14015e260
sub qword [rsi + 0x10], rbp
jne 0x14015e260
mov rax, qword [rbx + 0x20]
mov dword [rax + 0x680], r12d
mov dword [rax + 0x684], 5
jmp 0x14015e260
mov edi, 2
jmp 0x14015e260
cmp al, 0x90
jne 0x14015e5bf
mov dword [r8 + 0x680], 4
mov rbp, qword [rbx + 0x1b8]
mov edx, 3
mov r15, qword [rbx + 0x20]
mov rcx, rbx
call fcn.14015df20
mov r14d, eax
test eax, eax
jne 0x14015e5a1
mov rsi, qword [rbp + 0x28]
cmp byte [rbx + 0xa56], dil
je 0x14015e561
cmp qword [rbx + 0x270], rdi
je 0x14015e527
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
je 0x14015e4ef
cmp byte [rcx + 0x22b], dil
je 0x14015e4e3
mov dil, 1
jmp 0x14015e4e8
test rcx, rcx
je 0x14015e4ef
mov byte [rcx + 0x22b], 1
mov rax, qword [rbx + 0x1e8]
mov r9d, 3
mov r8, rsi
mov qword [rsp + 0x20], rax
mov edx, 1
mov rcx, rbx
call qword [rbx + 0x270]
mov rax, qword [rbx + 0xd8]
test rax, rax
je 0x14015e561
mov byte [rax + 0x22b], dil
jmp 0x14015e561
mov r9, qword [rbx + 0x1e0]
lea rcx, [0x14026f8a3]
mov edx, 2
mov r8d, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r9, qword [rbx + 0x1e0]
mov edx, 3
mov r8d, 1
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
movzx eax, byte [r15 + 0x689]
cmp byte [rsi], al
jne 0x14015e5a9
mov eax, dword [r15 + 0x688]
cmp byte [rsi + 1], al
jne 0x14015e5a9
cmp byte [rsi + 2], r12b
jne 0x14015e5a9
mov edx, 3
mov rcx, rbx
call fcn.14015e020
mov rax, qword [rbx + 0x20]
mov dword [rax + 0x680], r12d
mov dword [rax + 0x684], 5
mov edi, r14d
jmp 0x14015e260
cmp qword [rbp + 0x30], r12
je 0x14015e5b6
mov rax, qword [rbp + 0x28]
mov byte [rax], r12b
mov qword [rbp + 0x30], r12
jmp 0x14015e25b
cmp al, 0xe0
jne 0x14015e25b
lea rdx, str.Got_DISCONNECT
mov rcx, rbx
call fcn.140101ff0
mov byte [r14], 1
jmp 0x14015e260