Function at 0x1400069b0
Capabilities:
Write file on windows

Disassembly:
push rbp
sub rsp, 0xa0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x48], rdi
mov edi, edx
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x50], rsi
mov rsi, rcx
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x38], 0xfffffffffffffffe
cmp edi, 0xffffffff
jne 0x1400069f7
xor eax, eax
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rdx, qword [rsi + 0x40]
mov rdx, qword [rdx]
test rdx, rdx
je 0x140006a19
mov r8, qword [rsi + 0x58]
mov ebx, dword [r8]
movsxd rcx, ebx
add rcx, rdx
cmp rdx, rcx
jb 0x140006dc9
cmp qword [rsi + 0x90], 0
jne 0x140006a3e
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rcx, qword [rsi + 0x18]
lea rdx, [rsi + 0x80]
cmp rdx, qword [rcx]
je 0x140006da8
cmp qword [rsi + 0x78], 0
je 0x140006d7a
mov edx, 8
lea rcx, [rbp]
xor r8d, r8d
mov byte [rbp + 0x30], dil
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
call fcn.140009580
test al, al
jne 0x140006d54
lea rbx, [rsi + 0x84]
mov r9, qword [rbp + 0x10]
cmp qword [rbp + 0x18], 0x10
jae 0x140006aa6
lea r12, [rbp]
jmp 0x140006aaa
mov r12, qword [rbp]
mov rcx, qword [rsi + 0x78]
lea r8, vtable.std::codecvt_char__char__int_.0
mov r10, qword [rcx]
cmp r10, r8
jne 0x140006ace
mov qword [rbp + 0x28], r12
lea rdx, [rbp + 0x30]
mov qword [rbp + 0x20], rdx
jmp 0x140006b53
mov r8, rsp
lea r11, [rbp + 0x20]
mov rdx, rbx
mov qword [r8 + 0x28], r12
add r12, r9
mov qword [r8 + 0x30], r12
lea r12, [rbp + 0x28]
mov qword [r8 + 0x20], r11
lea r9, [rbp + 0x31]
mov qword [r8 + 0x38], r12
lea r8, [rbp + 0x30]
call qword [r10 + 0x38]
test eax, eax
jl 0x140006b4e
cmp eax, 1
jg 0x140006b4e
mov r12, qword [rbp + 0x28]
cmp qword [rbp + 0x18], 0x10
jae 0x140006b1e
lea rcx, [rbp]
sub r12, rcx
jne 0x140006bdc
jmp 0x140006b2b
mov rcx, qword [rbp]
sub r12, rcx
jne 0x140006be0
mov byte [rsi + 0x81], 1
lea rcx, [rbp + 0x30]
cmp rcx, qword [rbp + 0x20]
jne 0x140006cb9
test r12, r12
ja 0x140006a95
jmp 0x140006c3e
cmp eax, 3
jne 0x140006ba2
movsx ecx, byte [rbp + 0x30]
mov rdx, qword [rsi + 0x90]
call fcn.1401158c8
mov ebx, eax
cmp qword [rbp + 0x18], 0x10
jae 0x140006cf7
cmp ebx, 0xffffffff
mov rsi, qword [rbp + 0x50]
cmove edi, ebx
mov eax, edi
mov rbx, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
lea rsp, [rbp + 0x60]
pop rbp
ret
cmp qword [rbp + 0x18], 0x10
jae 0x140006d05
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
lea rsp, [rbp + 0x60]
pop rbp
ret
lea rcx, [rbp]
mov edx, 1
mov r8, r12
mov r9, qword [rsi + 0x90]
call fcn.140115548
cmp r12, rax
je 0x140006b2b
cmp qword [rbp + 0x18], 0x10
jae 0x140006c33
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rcx, qword [rbp]
call fcn.1401100d8
jmp 0x140006c04
mov r12, qword [rbp + 0x10]
cmp r12, 0x20
jae 0x140006d13
mov rcx, r12
neg rcx
dec rcx
cmp rcx, 8
jbe 0x140006cac
add r12, 8
lea rcx, [rbp]
mov rdx, r12
xor r8d, r8d
call fcn.140009580
test al, al
je 0x140006a95
cmp qword [rbp + 0x18], 0x10
lea rcx, [rbp]
mov r8, qword [rbp + 0x10]
cmovae rcx, qword [rbp]
mov qword [rcx + r8], 0
cmp qword [rbp + 0x18], 0x10
lea rcx, [rbp]
mov qword [rbp + 0x10], r12
cmovae rcx, qword [rbp]
mov byte [rcx + r12], 0
jmp 0x140006a95
lea rcx, [0x140157ca0]
call fcn.14010ac98
nop
cmp qword [rbp + 0x18], 0x10
jae 0x140006cec
mov eax, edi
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rcx, qword [rbp]
call fcn.1401100d8
jmp 0x140006cc0
mov rcx, qword [rbp]
call fcn.1401100d8
jmp 0x140006b70
mov rcx, qword [rbp]
call fcn.1401100d8
jmp 0x140006bad
cmp qword [rbp + 0x18], 0x10
jae 0x140006d49
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x18], setsockopt
mov qword [rbp + 0x10], 0
mov byte [rbp], 0
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rcx, qword [rbp]
call fcn.1401100d8
jmp 0x140006d1a
cmp qword [rbp + 0x18], 0x10
lea rdx, [rbp]
cmovae rdx, qword [rbp]
mov qword [rdx], 0
mov qword [rbp + 0x10], 8
mov byte [rdx + 8], 0
jmp 0x140006a8e
movsx rcx, dil
mov rdx, qword [rsi + 0x90]
call fcn.1401158c8
cmp eax, 0xffffffff
mov rbx, qword [rbp + 0x58]
cmove edi, eax
mov eax, edi
mov rsi, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x48]
mov r12, qword [rbp + 0x40]
lea rsp, [rbp + 0x60]
pop rbp
ret
mov rdx, qword [rsi + 0x68]
mov rbx, qword [rsi + 0x70]
mov qword [rcx], rdx
sub rbx, rdx
mov rcx, qword [rsi + 0x38]
mov qword [rcx], rdx
mov r8, qword [rsi + 0x50]
mov dword [r8], ebx
jmp 0x140006a52
dec ebx
mov eax, edi
mov dword [r8], ebx
mov rcx, qword [rsi + 0x40]
mov rsi, qword [rbp + 0x50]
mov r12, qword [rbp + 0x40]
mov rbx, qword [rcx]
lea rdx, [rbx + 1]
mov qword [rcx], rdx
mov byte [rbx], dil
mov rbx, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x48]
lea rsp, [rbp + 0x60]
pop rbp
ret