Function at 0x46a7f0
Capabilities:
Send data
Send data on socket
Send http request

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov eax, dword [rcx + 0x18c]
mov rdi, rcx
mov r14d, eax
mov esi, eax
and esi, 0x8000
and r14d, 4
test ah, 0x20
mov dword [rsp + 0x2c], esi
jne 0x46ac15
lea rsi, [rdi + 0x128]
mov rbp, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rsi
call rbp
mov edx, dword [rsp + 0x2c]
test edx, edx
je 0x46a8c0
mov rbx, qword [rdi + 0x28]
test rbx, rbx
je 0x46abc0
mov rax, qword [rbx + 0x168]
test rax, rax
je 0x46ac6f
lea r12, str.Initiated_daemon_shutdown_while__upgraded__connection_was_not_closed._n
jmp 0x46a89f
mov byte [rax + 8], 1
mov byte [rbx + 0x178], 1
mov byte [rdi + 0x173], 1
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x46abc0
mov rax, qword [rbx + 0x168]
test rax, rax
je 0x46ac6f
movzx edx, byte [rax + 8]
test dl, dl
jne 0x46a870
mov rdx, r12
mov rcx, rdi
call fcn.0046f900
mov rax, qword [rbx + 0x168]
jmp 0x46a870
cmp qword [rdi + 0x20], 0
jne 0x46ac90
mov r15, qword [rdi + 0x18]
test r15, r15
je 0x46ac3c
mov rbx, qword [sym.imp.WS2_32.dll_shutdown]
mov r12, qword [sym.imp.WS2_32.dll_send]
lea r13, [0x004b52e7]
nop dword [rax]
mov rcx, qword [r15 + 0x110]
mov edx, 2
call rbx
test byte [rdi + 0x18c], 4
je 0x46a92f
cmp qword [rdi + 0x160], 0xffffffffffffffff
je 0x46a92f
xor r9d, r9d
mov rcx, qword [rdi + 0x168]
mov r8d, 1
mov rdx, r13
call r12
test eax, eax
jle 0x46ab80
mov r15, qword [r15 + 8]
test r15, r15
jne 0x46a8f0
test r14d, r14d
je 0x46ac30
mov r14, qword [rdi + 0x18]
test r14, r14
je 0x46ac30
mov r12, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r15d, 0xffffffff
mov r13, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x46a979
mov r14, qword [r14 + 8]
test r14, r14
je 0x46a9bd
cmp byte [r14 + 0x11a], 0
jne 0x46a970
mov rcx, rsi
call r12
mov rcx, qword [r14 + 0xa0]
mov edx, r15d
call r13
test eax, eax
jne 0x46abf4
mov rcx, qword [r14 + 0xa0]
call rbx
mov rcx, rsi
call rbp
mov byte [r14 + 0x11a], 1
mov r14, qword [rdi + 0x18]
test r14, r14
jne 0x46a979
mov rcx, rsi
call r12
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x46abe0
nop
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x46aad2
test byte [rdi + 0x18c], 4
je 0x46a9f3
cmp byte [rbx + 0x11a], 0
je 0x46ac4e
mov rsi, qword [rbx + 0x20]
test byte [rsi + 0x18c], 4
jne 0x46aaf0
lea r13, [rsi + 0x128]
mov edx, 3
mov rcx, rbx
call fcn.00466220
mov rcx, r13
call rbp
mov rax, qword [rbx + 0x20]
mov rax, qword [rax + 0x180]
cmp qword [rbx + 0x100], rax
mov rax, qword [rbx + 0x18]
je 0x46ab00
test rax, rax
je 0x46ab70
mov rdx, qword [rbx + 0x10]
mov qword [rax + 0x10], rdx
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x46ab60
mov rdx, qword [rbx + 0x18]
mov qword [rax + 0x18], rdx
mov rax, qword [rbx + 8]
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
test rax, rax
je 0x46ab50
mov rdx, qword [rbx]
mov qword [rax], rdx
mov rax, qword [rbx]
test rax, rax
je 0x46ab40
mov rdx, qword [rbx + 8]
mov qword [rax + 8], rdx
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov rax, qword [rsi + 0x30]
mov qword [rbx], rax
cmp qword [rsi + 0x38], 0
je 0x46ab30
mov rax, qword [rsi + 0x30]
mov qword [rax + 8], rbx
mov qword [rsi + 0x30], rbx
mov rcx, r13
call r12
mov rbx, qword [rdi + 0x18]
test rbx, rbx
jne 0x46a9dd
mov rcx, rdi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0046a5d0
mov rcx, rbx
call fcn.004661e0
jmp 0x46a9d0
test rax, rax
je 0x46abb2
mov rdx, qword [rbx + 0x10]
mov qword [rax + 0x10], rdx
mov rax, qword [rbx + 0x10]
test rax, rax
jne 0x46aa57
mov rax, qword [rbx + 0x18]
mov qword [rsi + 0x48], rax
jmp 0x46aa5f
mov qword [rsi + 0x38], rbx
jmp 0x46aabb
mov rax, qword [rbx + 8]
mov qword [rsi + 0x18], rax
jmp 0x46aa96
mov rax, qword [rbx]
mov qword [rsi + 0x10], rax
jmp 0x46aa82
mov rax, qword [rbx + 0x18]
mov qword [rsi + 0x58], rax
jmp 0x46aa5f
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x50], rax
jmp 0x46aa4a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x46a92f
lea r9, str.Failed_to_signal_shutdown_via_inter_thread_communication_channel
mov r8d, 0x1871
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x40], rax
jmp 0x46ab11
mov r15, qword [rdi + 0x18]
test r15, r15
jne 0x46a8d8
mov rcx, rsi
mov r12, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call r12
nop word [rax + rax]
mov byte [rdi + 0x173], 1
mov rcx, rdi
call fcn.00469980
jmp 0x46a9d0
lea r9, str.Failed_to_join_a_thread_n
mov r8d, 0x187f
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
mov byte [rcx + 0x173], 1
call fcn.00469980
jmp 0x46a825
mov r12, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46a9bd
mov rcx, rsi
mov r12, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call r12
jmp 0x46a9d0
lea r9, str.Failed_to_join_a_thread_n
mov r8d, 0x189d
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
lea r9, str.MHD_stop_daemon___called_while_we_have_suspended_connections._n
mov r8d, 0x1849
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
lea r9, str.MHD_stop_daemon___called_while_we_have_suspended_connections._n
mov r8d, 0x1868
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
nop
nop dword [rax]
nop word cs:[rax + rax]