Function at 0x477cf0
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, 0x48
mov r12, rcx
mov rcx, rdx
mov rbx, rdx
mov rdi, r8
mov esi, r9d
call fcn.0047ce30
test eax, eax
mov ebp, eax
je 0x477ea1
mov ebp, 1
mov r13d, 1
test byte [r12 + 0x195], 0x10
jne 0x477df0
mov r10, qword [r12 + 0xc8]
test r10, r10
je 0x477e20
mov r11d, dword [r12 + 0xf0]
test r11d, r11d
je 0x477dbd
xor edx, edx
mov r9d, r11d
mov rax, rbx
div r9
imul rcx, rdx, 0x1e8
add rcx, r10
mov eax, dword [rcx + 0x180]
cmp dword [rcx + 0x184], eax
ja 0x477e80
lea r8, [rbx + 1]
sub r11d, 1
add r11, r8
jmp 0x477db8
mov rax, r8
xor edx, edx
add r8, 1
div r9
imul rcx, rdx, 0x1e8
add rcx, r10
mov eax, dword [rcx + 0x184]
cmp dword [rcx + 0x180], eax
jb 0x477e80
cmp r11, r8
jne 0x477d90
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
jne 0x47856f
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x17
mov eax, ebp
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.0047ce60
test eax, eax
jne 0x477d38
lea rdx, str.Failed_to_set_noninheritable_mode_on_new_client_socket._n
mov rcx, r12
call fcn.0047b4a0
mov r10, qword [r12 + 0xc8]
test r10, r10
jne 0x477d49
mov eax, dword [r12 + 0x184]
cmp dword [r12 + 0x180], eax
mov rbp, r12
jne 0x477ed3
lea rdx, str.Server_reached_connection_limit._Closing_inbound_connection._n
mov rcx, r12
call fcn.0047b4a0
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
je 0x477dd0
lea r9, str.Close_socket_failed._n
mov r8d, 0x8d3
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
nop dword [rax]
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 1
mov r9d, esi
mov r8, rdi
mov rdx, rbx
call fcn.00474fe0
mov ebp, eax
jmp 0x477ddc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
xor r13d, r13d
call fcn.0047c1a0
lea rdx, str.Failed_to_set_nonblocking_mode_on_new_client_socket:__s_n
mov r8, rax
mov rcx, r12
call fcn.0047b4a0
jmp 0x477d29
mov rbp, rax
mov rax, qword [rbp + 0xc0]
test rax, rax
jne 0x477ed0
mov eax, dword [rbp + 0x190]
test eax, eax
jne 0x4780c0
mov rax, qword [r12 + 0x60]
test rax, rax
je 0x477f0c
mov rcx, qword [r12 + 0x68]
mov r8d, esi
mov rdx, rdi
call rax
test eax, eax
je 0x4781c4
mov edx, 0x170
mov ecx, 1
call sub.msvcrt.dll_calloc
test rax, rax
mov r14, rax
je 0x47816f
mov rcx, qword [r12 + 0xd8]
call fcn.0047b850
test rax, rax
mov qword [r14 + 0x40], rax
je 0x4781ea
mov rax, qword [r12 + 0x188]
movsxd rbp, esi
mov rcx, rbp
mov qword [r14 + 0x108], rax
call sub.msvcrt.dll_malloc
test rax, rax
mov qword [r14 + 0x98], rax
je 0x478271
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [r14 + 0xf8], esi
mov qword [r14 + 0x118], rbx
mov ebp, 0x16
mov byte [r14 + 0x120], r13b
mov qword [r14 + 0x20], r12
call fcn.0047bb50
test byte [r12 + 0x194], 2
mov qword [r14 + 0x100], rax
je 0x4782e6
mov rax, qword [r12 + 0x80]
test rax, rax
je 0x477fd6
mov rcx, qword [r12 + 0x88]
mov r9d, 1
lea r8, [r14 + 0x50]
mov rdx, r14
call rax
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
jne 0x47852d
lea rbx, [r12 + 0x130]
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call fcn.00474e90
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test byte [r12 + 0x194], 4
jne 0x47804b
mov rdx, qword [r14 + 0x18]
mov rax, qword [r14 + 0x10]
test rdx, rdx
je 0x47844b
mov qword [rdx + 0x10], rax
mov rax, qword [r14 + 0x10]
mov rdx, qword [r14 + 0x18]
test rax, rax
je 0x478441
mov qword [rax + 0x18], rdx
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 0
mov rdx, qword [r14 + 8]
mov rax, qword [r14]
test rdx, rdx
je 0x478412
mov qword [rdx], rax
mov rax, qword [r14]
mov rdx, qword [r14 + 8]
test rax, rax
je 0x478408
mov qword [rax + 8], rdx
mov rcx, rbx
mov qword [r14], 0
mov qword [r14 + 8], 0
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [r14 + 0x40]
call fcn.0047b8e0
mov rcx, qword [r14 + 0x98]
call sub.msvcrt.dll_free
mov rcx, r14
call sub.msvcrt.dll_free
test ebp, ebp
jne 0x4782d7
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x16
jmp 0x477ddc
mov edx, 1
mov ecx, 0x18
call sub.msvcrt.dll_calloc
test rax, rax
mov r14, rax
je 0x477e39
cmp esi, 0x10
je 0x478244
cmp esi, 0x1c
jne 0x478264
mov dword [rax], 0x17
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 8]
mov qword [r14 + 0xc], rdx
mov qword [r14 + 4], rax
lea r15, [rbp + 0x108]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rdx, [rbp + 0xd0]
lea r8, [0x00474e80]
mov rcx, r14
call fcn.0048c500
test rax, rax
je 0x47841c
mov rax, qword [rax]
cmp r14, rax
je 0x47814c
mov rcx, r14
mov qword [rsp + 0x38], rax
call sub.msvcrt.dll_free
mov rax, qword [rsp + 0x38]
mov edx, dword [rax + 0x14]
cmp edx, dword [rbp + 0x190]
jae 0x478256
add edx, 1
mov rcx, r15
mov dword [rax + 0x14], edx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x477eed
mov r13, qword [sym.imp.msvcrt.dll__errno]
call r13
mov r14d, dword [rax]
call r13
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r12
call fcn.0047b4a0
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
jne 0x4785b1
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call fcn.00474e90
call r13
mov dword [rax], r14d
jmp 0x477ddc
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
jne 0x47850c
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call fcn.00474e90
jmp 0x477ddc
mov r13, qword [sym.imp.msvcrt.dll__errno]
call r13
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r12
call fcn.0047b4a0
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
jne 0x47854e
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call fcn.00474e90
mov rcx, r14
call sub.msvcrt.dll_free
call r13
mov dword [rax], 0xc
jmp 0x477ddc
mov dword [rax], 2
mov eax, dword [rdi + 4]
mov dword [r14 + 4], eax
jmp 0x478103
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x477e39
mov rcx, rax
call sub.msvcrt.dll_free
jmp 0x477eed
mov r13, qword [sym.imp.msvcrt.dll__errno]
call r13
mov r15d, dword [rax]
call r13
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r12
call fcn.0047b4a0
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebp, eax
jne 0x478590
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call fcn.00474e90
mov rcx, qword [r14 + 0x40]
call fcn.0047b8e0
mov rcx, r14
call sub.msvcrt.dll_free
call r13
mov dword [rax], r15d
jmp 0x477ddc
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], ebp
xor ebp, ebp
jmp 0x477ddc
lea rbp, [r12 + 0x130]
mov rcx, r14
call fcn.00471800
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [r12 + 0x180]
cmp eax, dword [r12 + 0x184]
jae 0x478455
add eax, 1
test byte [r12 + 0x194], 4
mov dword [r12 + 0x180], eax
jne 0x478351
cmp qword [r12 + 0x48], 0
mov rax, qword [r12 + 0x40]
mov qword [r14 + 0x18], 0
mov qword [r14 + 0x10], rax
je 0x4784b7
mov qword [rax + 0x18], r14
mov qword [r12 + 0x40], r14
cmp qword [r12 + 0x18], 0
mov rax, qword [r12 + 0x10]
mov qword [r14 + 8], 0
mov qword [r14], rax
je 0x478477
mov qword [rax + 8], r14
mov qword [r12 + 0x10], r14
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [r12 + 0x80]
test rax, rax
je 0x4783a0
mov rcx, qword [r12 + 0x88]
xor r9d, r9d
lea r8, [r14 + 0x50]
mov rdx, r14
call rax
test byte [r12 + 0x194], 4
jne 0x478481
mov rax, qword [r12 + 0xf8]
mov rdx, qword [r12 + 0x100]
mov qword [r14 + 0xa0], rax
mov qword [r14 + 0xa8], rdx
cmp qword [r12 + 0x168], 0xffffffffffffffff
je 0x4783fe
xor r9d, r9d
mov rcx, qword [r12 + 0x170]
mov r8d, 1
lea rdx, [0x004cda9f]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x4784c1
mov ebp, 1
jmp 0x477ddc
mov qword [r12 + 0x18], rdx
jmp 0x478072
mov qword [r12 + 0x10], rax
jmp 0x478065
lea rdx, str.Failed_to_add_IP_connection_count_node_n
mov rcx, rbp
call fcn.0047b4a0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r14
call sub.msvcrt.dll_free
jmp 0x477e39
mov qword [r12 + 0x48], rdx
jmp 0x47803b
mov qword [r12 + 0x40], rax
jmp 0x47802e
mov rcx, rbp
mov ebp, 0x17
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, str.Server_reached_connection_limit._Closing_inbound_connection._n
mov rcx, r12
call fcn.0047b4a0
jmp 0x477fb2
mov qword [r12 + 0x18], r14
jmp 0x478371
mov rdx, qword [r12 + 0xe8]
lea rcx, [r14 + 0xa0]
lea r8, [0x00476690]
mov r9, r14
call fcn.0047c140
test eax, eax
je 0x4784e6
test byte [r12 + 0x194], 4
jne 0x4783fe
jmp 0x4783cd
mov qword [r12 + 0x48], r14
jmp 0x47834c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x4783fe
lea rdx, str.Failed_to_signal_new_connection_via_inter_thread_communication_channel.
mov rcx, r12
call fcn.0047b4a0
jmp 0x4783fe
call qword [sym.imp.msvcrt.dll__errno]
mov ebp, dword [rax]
mov ecx, ebp
call sub.msvcrt.dll_strerror
lea rdx, str.Failed_to_create_a_thread:__s_n
mov r8, rax
mov rcx, r12
call fcn.0047b4a0
jmp 0x477fb2
lea r9, str.Close_socket_failed._n
mov r8d, 0x8e6
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x9db
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x907
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x897
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x91b
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x8f8
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.58_src_microhttpd_daemon.c
mov rcx, qword [0x004e5ae0]
call qword [0x004e5ae8]
nop
nop dword [rax]
nop word cs:[rax + rax]