Function at 0x140024cd0
Capabilities:
Create thread
Send data
Send data on socket
Send http request

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
sub rsp, 0x30
movzx esi, byte [rsp + 0x80]
mov r13, r8
movsxd r12, r9d
mov rbp, rdx
mov rbx, rcx
mov r10, qword [rbx + 0xc8]
test r10, r10
je 0x140024d07
test sil, sil
je 0x1400254d1
jmp 0x140024d10
test sil, sil
je 0x140024d9e
test r10, r10
je 0x140024d9e
mov r9d, dword [rbx + 0xf0]
xor r8d, r8d
cmp r8d, r9d
jae 0x140024d55
xor edx, edx
mov eax, r8d
add rax, rbp
div r9
imul rbx, rdx, 0x1e8
add rbx, r10
mov eax, dword [rbx + 0x184]
cmp dword [rbx + 0x180], eax
jb 0x140024d50
inc r8d
jmp 0x140024d23
mov sil, 1
jmp 0x140024cf0
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140024d84
mov rcx, qword [0x1402f10b8]
lea r9, str.Close_socket_failed._n
mov r8d, 0x900
lea rdx, [0x1402e1ce8]
call qword [0x1402f10b0]
int3
call fcn.1401e1e4c
mov esi, reloc.WS2_32.dll_socket
mov dword [rax], esi
xor eax, eax
add rsp, 0x30
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [rbx + 0x184]
cmp dword [rbx + 0x180], eax
je 0x14002548f
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.140023ff0
test eax, eax
je 0x14002548f
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x140024e2a
mov rcx, qword [rbx + 0x68]
mov r8d, r12d
mov rdx, r13
call rax
test eax, eax
jne 0x140024e2a
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140024e0e
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e17e8]
mov r8d, 0x950
lea rdx, [0x1402e1c28]
call qword [0x1402f10b0]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.1400241c0
xor eax, eax
add rsp, 0x30
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov edx, 0x170
mov qword [rsp + 0x60], rdi
mov ecx, 1
call fcn.1401dbd84
mov rdi, rax
test rax, rax
jne 0x140024ec2
call fcn.1401e1e4c
mov edi, dword [rax]
call fcn.1401e1e4c
mov ecx, dword [rax]
call fcn.1401e2288
mov r8, rax
lea rdx, str.Error_allocating_memory:__s_n
mov rcx, rbx
call fcn.14002fa20
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140024e9a
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e1588]
mov r8d, 0x962
lea rdx, [0x1402e1bc8]
call qword [0x1402f10b0]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.1400241c0
call fcn.1401e1e4c
mov dword [rax], edi
xor eax, eax
mov rdi, qword [rsp + 0x60]
add rsp, 0x30
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x68], r14
mov ecx, 0x28
mov qword [rsp + 0x70], r15
mov r15, qword [rbx + 0xd8]
call fcn.1401da214
mov r14, rax
test rax, rax
je 0x140024f59
cmp r15, 0x8000
ja 0x140024ef7
mov rax, 0xffffffffffffffff
jmp 0x140024f0e
mov r9d, 4
mov r8d, 0x3000
mov rdx, r15
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov rcx, r14
mov qword [rcx], rax
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x140024f24
mov eax, 1
jmp 0x140024f43
mov rcx, r15
call fcn.1401da214
mov qword [r14], rax
test rax, rax
jne 0x140024f41
mov rcx, r14
call fcn.1401db01c
xor r14d, r14d
jmp 0x140024f59
xor eax, eax
mov rcx, r14
mov dword [rcx + 0x20], eax
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], r15
mov qword [r14 + 8], r15
mov qword [rdi + 0x40], r14
test r14, r14
jne 0x140024fd5
call fcn.1401e1e4c
mov ecx, dword [rax]
call fcn.1401e2288
mov r8, rax
lea rdx, [0x1402e1ba8]
mov rcx, rbx
call fcn.14002fa20
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140024faf
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e1468]
mov r8d, 0x971
lea rdx, [0x1402e1b68]
call qword [0x1402f10b0]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.1400241c0
mov rcx, rdi
call fcn.1401db01c
call fcn.1401e1e4c
mov dword [rax], ntohs
jmp 0x140025075
mov rax, qword [rbx + 0x188]
mov rcx, r12
mov qword [rdi + 0x108], rax
call fcn.1401da214
mov qword [rdi + 0x98], rax
test rax, rax
jne 0x140025092
call fcn.1401e1e4c
mov esi, dword [rax]
call fcn.1401e1e4c
mov ecx, dword [rax]
call fcn.1401e2288
mov r8, rax
lea rdx, [0x1402e1b48]
mov rcx, rbx
call fcn.14002fa20
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14002504f
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e1378]
mov r8d, 0x985
lea rdx, [0x1402e1b08]
call qword [0x1402f10b0]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.1400241c0
mov rcx, qword [rdi + 0x40]
call fcn.14002f830
mov rcx, rdi
call fcn.1401db01c
call fcn.1401e1e4c
mov dword [rax], esi
xor eax, eax
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x60]
add rsp, 0x30
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov r8, r12
mov rdx, r13
mov rcx, rax
call fcn.1401d2920
movzx eax, byte [rsp + 0x88]
mov byte [rdi + 0x120], al
mov dword [rdi + 0xf8], r12d
mov qword [rdi + 0x118], rbp
mov qword [rdi + 0x20], rbx
call fcn.14002f7f0
mov qword [rdi + 0x100], rax
mov eax, dword [rbx + 0x194]
and eax, 2
test al, al
jne 0x14002531c
lea rax, [0x140029960]
mov qword [rdi + 0x148], rax
lea rcx, [rbx + 0x130]
lea rax, [0x1400299e0]
mov qword [rdi + 0x150], rax
call qword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov eax, dword [rbx + 0x180]
cmp eax, dword [rbx + 0x184]
jb 0x14002513a
lea rcx, [rbx + 0x130]
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea rdx, [0x1402e1548]
mov rcx, rbx
call fcn.14002fa20
mov esi, reloc.WS2_32.dll_socket
jmp 0x140025321
inc eax
mov dword [rbx + 0x180], eax
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x14002518e
cmp qword [rdi + 0x10], 0
jne 0x14002551b
cmp qword [rdi + 0x18], 0
jne 0x140025565
mov rax, qword [rbx + 0x40]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
cmp qword [rbx + 0x48], 0
jne 0x140025182
mov qword [rbx + 0x48], rdi
jmp 0x14002518a
mov rax, qword [rbx + 0x40]
mov qword [rax + 0x18], rdi
mov qword [rbx + 0x40], rdi
cmp qword [rdi], 0
jne 0x1400255af
cmp qword [rdi + 8], 0
jne 0x1400255f9
mov rax, qword [rbx + 0x10]
mov qword [rdi], rax
mov qword [rdi + 8], 0
cmp qword [rbx + 0x18], 0
jne 0x1400251bf
mov qword [rbx + 0x18], rdi
jmp 0x1400251c7
mov rax, qword [rbx + 0x10]
mov qword [rax + 8], rdi
lea rcx, [rbx + 0x130]
mov qword [rbx + 0x10], rdi
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x1400251f7
mov rcx, qword [rbx + 0x88]
lea r8, [rdi + 0x50]
xor r9d, r9d
mov rdx, rdi
call rax
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
je 0x1400252ad
mov r15, qword [rbx + 0xe8]
mov ecx, 0x18
call fcn.1401da214
mov r14, rax
test rax, rax
je 0x14002528b
lea rax, [0x140024550]
mov qword [r14 + 8], rdi
mov qword [r14], rax
lea rax, str.MHD_connection
mov qword [r14 + 0x10], rax
mov eax, 0xffffffff
cmp r15, rax
jbe 0x140025251
call fcn.1401e1e4c
mov dword [rax], reloc.WS2_32.dll_shutdown
jmp 0x140025283
mov qword [rsp + 0x28], 0
lea r8, [0x14002fd80]
mov r9, r14
mov dword [rsp + 0x20], 0
mov edx, r15d
xor ecx, ecx
call fcn.1401ec70c
mov qword [rdi + 0xa0], rax
cmp rax, 0xffffffffffffffff
jne 0x1400252bb
mov rcx, r14
call fcn.1401db01c
call fcn.1401e1e4c
mov esi, dword [rax]
mov ecx, esi
call fcn.1401e2288
mov r8, rax
lea rdx, str.Failed_to_create_a_thread:__s_n
mov rcx, rbx
call fcn.14002fa20
jmp 0x140025321
movups xmm0, xmmword [rbx + 0xf8]
movups xmmword [rdi + 0xa0], xmm0
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x140025312
test sil, sil
je 0x140025312
cmp qword [rbx + 0x168], 0xffffffffffffffff
je 0x140025312
mov rcx, qword [rbx + 0x170]
lea rdx, [0x1402dea6c]
xor r9d, r9d
lea r8d, [r9 + 1]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x140025312
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x140025312
lea rdx, str.Failed_to_signal_new_connection_via_inter_thread_communication_channel.
mov rcx, rbx
call fcn.14002fa20
mov eax, 1
jmp 0x140025077
mov esi, reloc.WS2_32.dll_shutdown
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x140025343
mov rcx, qword [rbx + 0x88]
lea r8, [rdi + 0x50]
mov r9d, 1
mov rdx, rdi
call rax
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140025372
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e1278]
mov r8d, 0xa56
lea rdx, [0x1402e1858]
call qword [0x1402f10b0]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.1400241c0
lea rcx, [rbx + 0x130]
call qword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x1400253fc
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x1400253ad
cmp rdi, qword [rbx + 0x48]
jne 0x140025643
mov rcx, qword [rdi + 0x18]
test rcx, rcx
jne 0x1400253cb
cmp rdi, qword [rbx + 0x40]
jne 0x14002568d
test rcx, rcx
jne 0x1400253cb
mov qword [rbx + 0x40], rax
jmp 0x1400253cf
mov qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
test rcx, rcx
jne 0x1400253ec
xor edx, edx
mov qword [rbx + 0x48], rax
mov qword [rdi + 0x10], rdx
mov qword [rdi + 0x18], rdx
jmp 0x1400253fe
xor edx, edx
mov qword [rcx + 0x18], rax
mov qword [rdi + 0x10], rdx
mov qword [rdi + 0x18], rdx
jmp 0x1400253fe
xor edx, edx
mov rax, qword [rdi]
test rax, rax
jne 0x140025410
cmp rdi, qword [rbx + 0x18]
jne 0x1400256d7
mov rcx, qword [rdi + 8]
test rcx, rcx
jne 0x14002542e
cmp rdi, qword [rbx + 0x10]
jne 0x140025721
test rcx, rcx
jne 0x14002542e
mov qword [rbx + 0x10], rax
jmp 0x140025431
mov qword [rcx], rax
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
test rcx, rcx
jne 0x140025443
mov qword [rbx + 0x18], rax
jmp 0x140025447
mov qword [rcx + 8], rax
lea rcx, [rbx + 0x130]
mov qword [rdi], rdx
mov qword [rdi + 8], rdx
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov rcx, qword [rdi + 0x40]
call fcn.14002f830
mov rcx, qword [rdi + 0x98]
call fcn.1401db01c
mov rcx, rdi
call fcn.1401db01c
call fcn.1401e1e4c
test esi, esi
jne 0x140025073
mov esi, reloc.WS2_32.dll_shutdown
jmp 0x140025073
lea rdx, str.Server_reached_connection_limit._Closing_inbound_connection._n
mov rcx, rbx
call fcn.14002fa20
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x140024d84
mov rcx, qword [0x1402f10b8]
lea r9, [0x1402e18e8]
mov r8d, 0x93d
lea rdx, [0x1402e1c68]
call qword [0x1402f10b0]
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1d70]
lea rax, str._NULL__daemon__worker_pool____external_add_
mov r9d, 0x8ed
lea rdx, [0x1402e1d40]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1aa8]
lea rax, str.NULL___connection___nextX
mov r9d, 0x9fb
lea rdx, [0x1402e1a78]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1a18]
lea rax, str.NULL___connection___prevX
mov r9d, 0x9fb
lea rdx, [0x1402e19e8]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1988]
lea rax, [0x1402e19c8]
mov r9d, 0x9ff
lea rdx, [0x1402e18b8]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1948]
lea rax, str.NULL___connection___prev
mov r9d, 0x9ff
lea rdx, [0x1402e17b8]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e1778]
lea rax, [0x1402e1800]
mov r9d, 0xa61
lea rdx, [0x1402e1748]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e16b0]
lea rax, [0x1402e16f0]
mov r9d, 0xa61
lea rdx, [0x1402e1680]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e15f0]
lea rax, [0x1402e1630]
mov r9d, 0xa65
lea rdx, [0x1402e1518]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
lea r8, [0x1402e14d8]
lea rax, [0x1402e15a0]
mov r9d, 0xa65
lea rdx, [0x1402e1428]
mov qword [rsp + 0x20], rax
call fcn.1400108b0
mov ecx, 2
call fcn.1401d9d24
mov rcx, rax
call fcn.1401db71c
call fcn.1401e9cd4
int3