Function at 0x14001b630
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x2468]
mov eax, 0x2568
call fcn.14006ee60
sub rsp, rax
mov rax, qword [0x140116008]
xor rax, rsp
mov qword [rbp + 0x2450], rax
mov r12, rcx
mov qword [rbp + 0x3a0], rcx
lea rcx, str._r_nContent_Type
mov qword [rsp + 0x58], r8
mov r15, r8
mov rsi, rdx
mov r13d, 0x1000
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x14001b690
mov qword [rsp + 0x68], rax
lea rcx, str.multipart_form_data
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x14001b6b0
mov qword [rsp + 0x70], rax
lea rcx, str.x_upload
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x14001b6d0
cmp dword [r12 + 0x17c], 3
mov qword [rsp + 0x78], rax
lea rax, str.ytcp
je 0x14001b70f
mov r9, rax
mov dword [rsp + 0x20], 0x437
lea r8, str.ASSERT_FAILED:_s:_d_n
mov edx, 0x437
mov rcx, rax
call fcn.14000a9a0
mov rcx, qword [r12]
mov rdx, r15
mov qword [rsp + 0x25b8], rbx
mov rcx, qword [rcx + 8]
call fcn.14001a490
mov edi, eax
test eax, eax
jne 0x14001b735
lea eax, [rdi - 8]
jmp 0x14001becf
movsxd r8, dword [r12 + 0x40]
xor edx, edx
mov rcx, qword [r12 + 0x38]
mov qword [rsp + 0x2560], r14
xor r14d, r14d
mov dword [r12 + 0x44], r14d
mov dword [r12 + 0x48], 0xffffffff
call fcn.1400500b0
mov rbx, qword [r12 + 0x1a8]
mov dword [r12 + 0x50], r14d
cmp rbx, 0xffffffffffffffff
je 0x14001b7dc
lea rax, [rsp + 0x60]
mov qword [rsp + 0x60], r14
lea ecx, [rbx + 1]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x80]
mov qword [rbp + 0x458], rbx
lea r8, [rbp + 0x190]
mov dword [rbp + 0x450], 1
lea rdx, [rbp + 0x450]
mov qword [rbp + 0x198], rbx
mov dword [rbp + 0x190], 1
mov qword [rbp - 0x78], rbx
mov dword [rbp - 0x80], 1
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jns 0x14001b840
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
mov rax, qword [r12]
lea r14, [r12 + 0x1a0]
mov qword [r12 + 0x1a8], 0xffffffffffffffff
lea rcx, [r12 + 0x1a0]
mov r9, rsi
mov qword [rsp + 0x60], r14
mov edx, edi
mov qword [rsp + 0x20], r15
movzx r8d, word [rax + 0x2c]
call fcn.14001a680
mov ebx, eax
test eax, eax
jns 0x14001b8bf
mov rcx, qword [r12 + 0x1a0]
call qword [sym.imp.WS2_32.dll_closesocket]
mov eax, ebx
mov qword [r12 + 0x1a0], 0xffffffffffffffff
jmp 0x14001bec7
lea rdx, [rbp - 0x80]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
jne 0x14001b7d3
lea rdx, [rbp + 0x190]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x14001b7d3
lea rdx, [rbp + 0x450]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x14001b89b
xor r9d, r9d
lea rdx, [rbp + 0x3d0]
mov r8d, 0x80
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
jmp 0x14001b7d3
mov rax, qword [r12 + 0x1a8]
lea rdi, [r12 + 0x1a0]
mov qword [rsp + 0x60], rdi
mov qword [rdi], rax
mov qword [r12 + 0x1a8], 0xffffffffffffffff
mov r14, qword [r12 + 0x18]
lea r15, [rbp + 0x1450]
nop dword [rax + rax]
movzx eax, byte [r14]
test al, 0xdf
je 0x14001b8e9
mov byte [r15], al
inc r14
inc r15
sub r13d, 1
jne 0x14001b8d0
jmp 0x14001b8f8
test r13d, r13d
je 0x14001b8f8
mov byte [r15], 0x20
inc r15
dec r13d
mov rax, qword [r12]
mov rdx, qword [rax + 0x20]
cmp byte [rdx], 0
je 0x14001b935
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x14001b910
lea eax, [rdi + 1]
cmp eax, r13d
jge 0x14001b935
movsxd rbx, edi
mov rcx, r15
mov r8, rbx
call fcn.140050fe0
sub r13d, edi
add r15, rbx
inc r14
test r13d, r13d
je 0x14001b976
movabs rdx, 0x100002001
movzx ecx, byte [r14]
cmp cl, 0x20
ja 0x14001b956
bt rdx, rcx
jb 0x14001b967
mov byte [r15], cl
inc r14
inc r15
sub r13d, 1
jne 0x14001b947
jmp 0x14001b976
test r13d, r13d
je 0x14001b976
mov byte [r15], 0x20
inc r15
dec r13d
mov rax, qword [r12]
cmp dword [rax + 0xa8], 0
je 0x14001b99e
cmp r13d, 8
jl 0x14001b99e
movabs rax, 0x312e312f50545448
sub r13d, 8
mov qword [r15], rax
add r15, 8
movzx eax, byte [r14]
test al, al
je 0x14001b9b6
cmp al, 0xd
je 0x14001b9b6
movzx eax, byte [r14 + 1]
inc r14
test al, al
jne 0x14001b9a6
cmp byte [r14], 0xd
mov r12, r14
jne 0x14001bad3
cmp byte [r14 + 1], 0xa
jne 0x14001bad3
add r14, 2
cmp byte [r14], 0xd
je 0x14001bad3
movzx eax, byte [r14]
test al, al
je 0x14001b9f4
cmp al, 0xd
je 0x14001b9f4
movzx eax, byte [r14 + 1]
inc r14
test al, al
jne 0x14001b9e4
movsxd rbx, dword [rsp + 0x68]
lea rdx, str._r_nContent_Type
mov r8, rbx
mov rcx, r12
call fcn.140052cd0
test eax, eax
jne 0x14001bac6
mov eax, r14d
sub eax, r12d
cmp r13d, eax
jbe 0x14001bac6
add rbx, r12
cmp rbx, r14
jae 0x14001ba3d
nop word [rax + rax]
cmp byte [rbx], 0x3a
je 0x14001ba3d
inc rbx
cmp rbx, r14
jb 0x14001ba30
inc rbx
cmp rbx, r14
jae 0x14001ba52
cmp byte [rbx], 0x20
jne 0x14001ba52
inc rbx
cmp rbx, r14
jb 0x14001ba45
mov esi, ebx
mov rdx, r12
sub esi, r12d
mov rcx, r15
mov r8d, esi
mov edi, esi
call fcn.140050fe0
add r15, rdi
lea rdx, str.multipart_form_data
movsxd rdi, dword [rsp + 0x70]
mov rcx, rbx
mov r8, rdi
sub r13d, esi
call fcn.140052cd0
test eax, eax
jne 0x14001baab
mov rsi, qword [rsp + 0x78]
lea rdx, str.x_upload
add rbx, rdi
mov rcx, r15
movsxd rdi, esi
mov r8, rdi
call fcn.140050fe0
add r15, rdi
sub r13d, esi
mov esi, r14d
mov rdx, rbx
sub esi, ebx
mov rcx, r15
mov r8d, esi
mov edi, esi
call fcn.140050fe0
add r15, rdi
sub r13d, esi
cmp byte [r14], 0xd
mov r12, r14
je 0x14001b9c3
mov r12, qword [rbp + 0x3a0]
mov r9d, dword [r12 + 0x34]
test r9d, r9d
jle 0x14001bb39
lea r8, str._r_nContent_Length:__d
mov edx, 0x28
lea rcx, [rbp + 0x3a8]
call fcn.1400217a0
lea rax, [rbp + 0x3a8]
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x14001bb10
cmp r13d, edi
jl 0x14001bb39
movsxd rbx, edi
lea rdx, [rbp + 0x3a8]
mov r8, rbx
mov rcx, r15
call fcn.140050fe0
add r15, rbx
sub r13d, edi
cmp r13d, 2
jl 0x14001bb4d
mov word [r15], 0xa0d
add r15, 2
sub r13d, 2
mov rcx, qword [r12]
mov rcx, qword [rcx + 0x758]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r10, qword [r12]
mov rcx, r10
mov r11, qword [r10 + 0x10]
test r11, r11
je 0x14001bc6e
mov r9, qword [r10 + 0x7a0]
test r9, r9
je 0x14001bc6e
cmp byte [rbp + 0x1450], 0x20
lea r8, [rbp + 0x3a0]
lea rdx, [rbp + 0x450]
lea rcx, [rbp + 0x1450]
je 0x14001bbc4
lea rbx, [rbp + 0x1450]
mov rax, rcx
sub rax, rbx
cmp rax, 7
jae 0x14001bbc4
movzx eax, byte [rcx]
inc rcx
mov byte [r8], al
inc r8
cmp byte [rcx], 0x20
jne 0x14001bba0
inc rcx
mov byte [r8], 0
movzx r8d, byte [rcx]
cmp r8b, 0x20
je 0x14001bc08
nop word [rax + rax]
lea rbx, [rbp + 0x450]
mov rax, rdx
sub rax, rbx
cmp rax, 0xfff
jae 0x14001bc08
inc rcx
mov byte [rdx], r8b
inc rdx
movzx r8d, byte [rcx]
cmp r8b, 0x20
jne 0x14001bbe0
mov byte [rdx], 0
lea rax, [r10 + 0x7c8]
lea rcx, [r10 + 0x7b8]
mov r8, r11
lea rdx, [rbp + 0x450]
mov qword [rsp + 0x48], rdx
lea rdx, [rbp + 0x3a0]
mov qword [rsp + 0x40], rdx
mov edx, r13d
mov qword [rsp + 0x38], rax
mov rax, qword [r10 + 0x7b0]
mov qword [rsp + 0x30], rax
mov rax, qword [r10 + 0x7a8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, r15
call fcn.140015660
movsxd rcx, eax
add r15, rcx
mov rcx, qword [r12]
sub r13d, eax
mov rcx, qword [rcx + 0x758]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [r12]
mov rdi, qword [rax + 8]
cmp r13d, 6
jge 0x14001bcc9
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14001bcbf
mov dword [rsp + 0x28], 0x40d
lea rax, str.ytcp
mov edx, 0x100
lea r9, str.I_O_error
mov qword [rsp + 0x20], rax
lea r8, str._s___s:_d_
call fcn.1400217a0
mov ebx, 0xfffffff8
jmp 0x14001bd9e
mov r9d, r13d
lea r8, str.Host:
mov edx, r13d
mov rcx, r15
call fcn.1400217c0
mov rax, 0xffffffffffffffff
lea r14, [r15 + 6]
lea ebx, [r13 - 6]
nop dword [rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x14001bcf0
cmp ebx, eax
jge 0x14001bd11
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14001bcbf
mov dword [rsp + 0x28], 0x414
jmp 0x14001bc9b
mov r9d, ebx
mov r8, rdi
mov edx, ebx
mov rcx, r14
call fcn.1400217c0
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x14001bd30
cdqe
add r14, rax
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], 0
jne 0x14001bd45
sub ebx, eax
cmp ebx, 2
jge 0x14001bd70
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14001bcbf
mov dword [rsp + 0x28], 0x41b
jmp 0x14001bc9b
lea rsi, [0x14010b7dc]
mov r9d, ebx
mov r8, rsi
mov edx, ebx
mov rcx, r14
call fcn.1400217c0
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14001bd90
add ebx, 8
jns 0x14001bdba
mov r14, qword [rsp + 0x60]
mov rcx, qword [r14]
call qword [sym.imp.WS2_32.dll_closesocket]
mov eax, ebx
mov qword [r14], 0xffffffffffffffff
jmp 0x14001bec7
test byte [r12 + 0x178], 1
lea rax, str.Connection:_close_r_n_r_n
movsxd rcx, ebx
mov r9d, r13d
cmove rsi, rax
mov edx, r13d
mov r8, rsi
add rcx, r15
call fcn.1400217c0
lea rax, [rbp + 0x1450]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14001bdf0
mov rsi, qword [rsp + 0x58]
lea rdi, [r12 + 0x1a0]
mov rcx, qword [rdi]
lea rdx, [rbp + 0x1450]
mov r9, rsi
call fcn.14001a9f0
mov ebx, eax
test eax, eax
js 0x14001be3f
mov r8d, dword [r12 + 0x34]
test r8d, r8d
jle 0x14001be53
mov rdx, qword [r12 + 0x28]
mov r9, rsi
mov rcx, qword [rdi]
call fcn.14001a9f0
mov ebx, eax
test eax, eax
jns 0x14001be53
mov rcx, qword [rdi]
call qword [sym.imp.WS2_32.dll_closesocket]
mov eax, ebx
mov qword [rdi], 0xffffffffffffffff
jmp 0x14001bec7
call fcn.140009a00
mov rcx, qword [r12]
mov qword [r12 + 0x160], rax
cmp qword [rcx + 0xd0], 0xffffffffffffffff
je 0x14001bec5
xor r9d, r9d
mov byte [rsp + 0x50], 1
mov rcx, qword [rcx + 0xd8]
lea rdx, [rsp + 0x50]
lea r8d, [r9 + 1]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x14001bebf
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test rsi, rsi
jne 0x14001bea4
mov ebx, 0xfffffff8
mov eax, ebx
jmp 0x14001bec7
mov r9, rsi
lea rcx, str.ytcp
mov r8d, eax
mov edx, 0x114
call fcn.140019fe0
mov ebx, eax
jmp 0x14001bec7
xor ebx, ebx
mov eax, ebx
jmp 0x14001bec7
xor eax, eax
mov r14, qword [rsp + 0x2560]
mov rbx, qword [rsp + 0x25b8]
mov rcx, qword [rbp + 0x2450]
xor rcx, rsp
call fcn.14004ee60
add rsp, 0x2568
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret