Function at 0x46adb0
Capabilities:
Resolve function by parsing pe exports
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 ebp, dword [rsp + 0xa0]
mov r12d, dword [rsp + 0xa8]
mov esi, r9d
mov r9, qword [rcx + 0xc8]
mov r13, rcx
mov rbx, rdx
mov rdi, r8
test r9, r9
je 0x46aec3
mov r11d, dword [rcx + 0xf0]
test r11d, r11d
je 0x46ae60
mov rax, rdx
mov r8d, r11d
xor edx, edx
div r8
mov rcx, rdx
shl rcx, 4
sub rcx, rdx
shl rcx, 5
add rcx, r9
mov eax, dword [rcx + 0x178]
cmp dword [rcx + 0x17c], eax
ja 0x46ae92
lea r10, [rbx + 1]
sub r11d, 1
add r11, r10
jmp 0x46ae5b
mov rax, r10
xor edx, edx
add r10, 1
div r8
mov rcx, rdx
shl rcx, 4
sub rcx, rdx
shl rcx, 5
add rcx, r9
mov eax, dword [rcx + 0x17c]
cmp dword [rcx + 0x178], eax
jb 0x46ae92
cmp r10, r11
jne 0x46ae30
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
jne 0x46b586
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x17
mov eax, ebx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx r12d, r12b
mov r9d, esi
mov r8, rdi
mov rdx, rbx
mov dword [rsp + 0xa8], r12d
mov dword [rsp + 0xa0], ebp
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0046adb0
mov eax, dword [rcx + 0x17c]
cmp dword [rcx + 0x178], eax
mov r14, rcx
jne 0x46aee3
jmp 0x46b0e2
mov r14, rax
mov rax, qword [r14 + 0xc0]
test rax, rax
jne 0x46aee0
mov eax, dword [r14 + 0x188]
test eax, eax
jne 0x46b125
mov rax, qword [r13 + 0x60]
test rax, rax
je 0x46af1b
mov rcx, qword [r13 + 0x68]
mov r8d, esi
mov rdx, rdi
call rax
test eax, eax
je 0x46b157
mov edx, 0x180
mov ecx, 1
call sub.msvcrt.dll_calloc
test rax, rax
mov r14, rax
je 0x46b2f9
mov rcx, qword [r13 + 0xd8]
call fcn.0046fcb0
test rax, rax
mov qword [r14 + 0x40], rax
je 0x46b34b
mov rax, qword [r13 + 0x180]
movsxd r15, esi
mov rcx, r15
mov qword [r14 + 0x100], rax
call sub.msvcrt.dll_malloc
test rax, rax
mov qword [r14 + 0x98], rax
je 0x46b3a3
mov r8, r15
mov rdx, rdi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov byte [r14 + 0x118], r12b
mov dword [r14 + 0xf0], esi
mov r12d, 0x16
mov qword [r14 + 0x110], rbx
mov qword [r14 + 0x20], r13
call fcn.0046ffb0
test byte [r13 + 0x18c], 2
mov qword [r14 + 0xf8], rax
je 0x46b213
mov rax, qword [r13 + 0x80]
test rax, rax
je 0x46afe1
mov rcx, qword [r13 + 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
mov ebx, eax
jne 0x46b565
mov r8d, esi
lea rsi, [r13 + 0x128]
mov rdx, rdi
mov rcx, r13
call fcn.0046a4a0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test byte [r13 + 0x18c], 4
jne 0x46b056
mov rax, qword [r14 + 0x18]
mov rdx, qword [r14 + 0x10]
test rax, rax
je 0x46b4c6
mov qword [rax + 0x10], rdx
mov rdx, qword [r14 + 0x10]
mov rax, qword [r14 + 0x18]
test rdx, rdx
je 0x46b4bd
mov qword [rdx + 0x18], rax
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 0
mov rax, qword [r14 + 8]
mov rdx, qword [r14]
test rax, rax
je 0x46b40f
mov qword [rax], rdx
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
test rdx, rdx
je 0x46b406
mov qword [rdx + 8], rax
mov rcx, rsi
mov qword [r14], 0
mov qword [r14 + 8], 0
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [r14 + 0x40]
call fcn.0046fd40
mov rcx, qword [r14 + 0x98]
call sub.msvcrt.dll_free
mov rcx, r14
call sub.msvcrt.dll_free
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], r12d
jmp 0x46ae7f
lea rdx, str.Failed_to_add_IP_connection_count_node_n
mov rcx, r14
call fcn.0046f900
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r15
call sub.msvcrt.dll_free
lea rdx, str.Server_reached_connection_limit._Closing_inbound_connection._n
mov rcx, r13
call fcn.0046f900
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
je 0x46ae73
lea r9, str.Close_socket_failed._n
mov r8d, 0x987
lea rdx, str.T:_Bin_prep_mhd_src_libmicrohttpd_0.9.55_src_microhttpd_daemon.c
mov rcx, qword [0x004cd150]
call qword [0x004cd158]
mov edx, 1
mov ecx, 0x18
call sub.msvcrt.dll_calloc
test rax, rax
mov r15, rax
je 0x46b0e2
cmp esi, 0x10
je 0x46b2e7
cmp esi, 0x1c
je 0x46b17d
mov rcx, rax
call sub.msvcrt.dll_free
jmp 0x46aefe
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
jne 0x46b502
mov r8d, esi
mov rdx, rdi
mov rcx, r13
call fcn.0046a4a0
jmp 0x46ae7f
mov dword [rax], 0x17
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 8]
mov qword [r15 + 0xc], rdx
mov qword [r15 + 4], rax
lea rax, [r14 + 0x100]
mov rcx, rax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rdx, [r14 + 0xd0]
lea r8, [0x00469e10]
mov rcx, r15
call fcn.00480a80
test rax, rax
je 0x46b0c0
mov rax, qword [rax]
cmp r15, rax
je 0x46b1e1
mov rcx, r15
mov qword [rsp + 0x28], rax
call sub.msvcrt.dll_free
mov rax, qword [rsp + 0x28]
mov edx, dword [rax + 0x14]
cmp edx, dword [r14 + 0x188]
jae 0x46b203
add edx, 1
mov rcx, qword [rsp + 0x20]
mov dword [rax + 0x14], edx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46aefe
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46b0e2
mov rcx, r14
lea r12, [r13 + 0x128]
call fcn.00466e30
lea rax, [0x00469db0]
mov rcx, r12
mov qword [r14 + 0x158], rax
lea rax, [0x00469d10]
mov qword [r14 + 0x160], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test byte [r13 + 0x18c], 4
jne 0x46b274
cmp qword [r13 + 0x48], 0
mov rax, qword [r13 + 0x40]
mov qword [r14 + 0x18], 0
mov qword [r14 + 0x10], rax
je 0x46b4d8
mov qword [rax + 0x18], r14
mov qword [r13 + 0x40], r14
cmp qword [r13 + 0x18], 0
mov rax, qword [r13 + 0x10]
mov qword [r14 + 8], 0
mov qword [r14], rax
je 0x46b4cf
mov qword [rax + 8], r14
mov qword [r13 + 0x10], r14
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [r13 + 0x80]
test rax, rax
je 0x46b2be
mov rcx, qword [r13 + 0x88]
xor r9d, r9d
lea r8, [r14 + 0x50]
mov rdx, r14
call rax
test byte [r13 + 0x18c], 4
jne 0x46b470
cmp ebp, 1
je 0x46b418
add dword [r13 + 0x178], 1
mov ebx, 1
jmp 0x46ae7f
mov dword [rax], 2
mov eax, dword [rdi + 4]
mov dword [r15 + 4], eax
jmp 0x46b193
mov rbp, qword [sym.imp.msvcrt.dll__errno]
call rbp
mov r12d, dword [rax]
call rbp
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r13
call fcn.0046f900
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
jne 0x46b523
mov r8d, esi
mov rdx, rdi
mov rcx, r13
call fcn.0046a4a0
call rbp
mov dword [rax], r12d
jmp 0x46ae7f
mov rbp, qword [sym.imp.msvcrt.dll__errno]
call rbp
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r13
call fcn.0046f900
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
jne 0x46b4e1
mov r8d, esi
mov rdx, rdi
mov rcx, r13
call fcn.0046a4a0
mov rcx, r14
call sub.msvcrt.dll_free
call rbp
mov dword [rax], 0xc
jmp 0x46ae7f
mov rbp, qword [sym.imp.msvcrt.dll__errno]
call rbp
mov r12d, dword [rax]
call rbp
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea rdx, str.Error_allocating_memory:__s_n
mov r8, rax
mov rcx, r13
call fcn.0046f900
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
mov ebx, eax
jne 0x46b544
mov r8d, esi
mov rdx, rdi
mov rcx, r13
call fcn.0046a4a0
mov rcx, qword [r14 + 0x40]
call fcn.0046fd40
mov rcx, r14
call sub.msvcrt.dll_free
call rbp
mov dword [rax], r12d
jmp 0x46ae7f
mov qword [r13 + 0x18], rax
jmp 0x46b07d
mov qword [r13 + 0x10], rdx
jmp 0x46b070
cmp qword [r13 + 0x160], 0xffffffffffffffff
je 0x46b2d5
xor r9d, r9d
mov rcx, qword [r13 + 0x168]
mov r8d, 1
lea rdx, [0x004b5467]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x46b2d5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x46b2d5
lea rdx, str.Failed_to_signal_new_connection_via_inter_thread_communication_channel.
mov rcx, r13
call fcn.0046f900
jmp 0x46b2d5
mov rdx, qword [r13 + 0xe8]
lea rcx, [r14 + 0xa0]
lea r8, [0x0046ba20]
mov r9, r14
call fcn.00470630
test eax, eax
jne 0x46b2d5
call qword [sym.imp.msvcrt.dll__errno]
mov r12d, dword [rax]
mov ecx, r12d
call sub.msvcrt.dll_strerror
lea rdx, str.Failed_to_create_a_thread:__s_n
mov r8, rax
mov rcx, r13
call fcn.0046f900
jmp 0x46afbf
mov qword [r13 + 0x48], rax
jmp 0x46b046
mov qword [r13 + 0x40], rdx
jmp 0x46b039
mov qword [r13 + 0x18], r14
jmp 0x46b292
mov qword [r13 + 0x48], r14
jmp 0x46b270
lea r9, str.Close_socket_failed._n
mov r8d, 0x9bb
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.Close_socket_failed._n
mov r8d, 0x99a
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.Close_socket_failed._n
mov r8d, 0x9ac
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.Close_socket_failed._n
mov r8d, 0x9cf
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.Close_socket_failed._n
mov r8d, 0xa76
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.Close_socket_failed._n
mov r8d, 0x94b
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 + rax]