Function at 0x14004d9f0
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 ebp, byte [rsp + 0x80]
mov r13, r8
movsxd r12, r9d
mov rsi, rdx
mov rbx, rcx
mov r10, qword [rbx + 0xc8]
test r10, r10
je 0x14004da27
test bpl, bpl
je 0x14004e21e
jmp 0x14004da30
test bpl, bpl
je 0x14004dabe
test r10, r10
je 0x14004dabe
mov r9d, dword [rbx + 0xf0]
xor r8d, r8d
cmp r8d, r9d
jae 0x14004da75
xor edx, edx
mov eax, r8d
add rax, rsi
div r9
imul rbx, rdx, 0x1e8
add rbx, r10
mov eax, dword [rbx + 0x184]
cmp dword [rbx + 0x180], eax
jb 0x14004da70
inc r8d
jmp 0x14004da43
mov bpl, 1
jmp 0x14004da10
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004daa4
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400bfe08]
mov r8d, 0x897
lea rdx, [0x1400c0150]
call qword [0x1400cd5a8]
int3
call fcn.140063860
mov ebp, reloc.WS2_32.dll_socket
mov dword [rax], ebp
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 0x14004e1dc
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cd60
test eax, eax
je 0x14004e1dc
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x14004db4a
mov rcx, qword [rbx + 0x68]
mov r8d, r12d
mov rdx, r13
call rax
test eax, eax
jne 0x14004db4a
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004db2e
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c0138]
mov r8d, 0x8e6
lea rdx, [0x1400c02e0]
call qword [0x1400cd5a8]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cf30
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.1400637a0
mov rdi, rax
test rax, rax
jne 0x14004dbe2
call fcn.140063860
mov edi, dword [rax]
call fcn.140063860
mov ecx, dword [rax]
call fcn.1400663c0
mov r8, rax
lea rdx, [0x1400c01a8]
mov rcx, rbx
call fcn.140058130
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004dbba
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c01c8]
mov r8d, 0x8f8
lea rdx, [0x1400c0370]
call qword [0x1400cd5a8]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cf30
call fcn.140063860
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.140061ddc
mov r14, rax
test rax, rax
je 0x14004dc79
cmp r15, 0x8000
ja 0x14004dc17
mov rax, 0xffffffffffffffff
jmp 0x14004dc2e
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 0x14004dc44
mov eax, 1
jmp 0x14004dc63
mov rcx, r15
call fcn.140061ddc
mov qword [r14], rax
test rax, rax
jne 0x14004dc61
mov rcx, r14
call fcn.140062194
xor r14d, r14d
jmp 0x14004dc79
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 0x14004dcf5
call fcn.140063860
mov ecx, dword [rax]
call fcn.1400663c0
mov r8, rax
lea rdx, [0x1400c02a8]
mov rcx, rbx
call fcn.140058130
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004dccf
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c0238]
mov r8d, 0x907
lea rdx, [0x1400c03f0]
call qword [0x1400cd5a8]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cf30
mov rcx, rdi
call fcn.140062194
call fcn.140063860
mov dword [rax], listen
jmp 0x14004dd95
mov rax, qword [rbx + 0x188]
mov rcx, r12
mov qword [rdi + 0x108], rax
call fcn.140061ddc
mov qword [rdi + 0x98], rax
test rax, rax
jne 0x14004ddb2
call fcn.140063860
mov ebp, dword [rax]
call fcn.140063860
mov ecx, dword [rax]
call fcn.1400663c0
mov r8, rax
lea rdx, [0x1400c0338]
mov rcx, rbx
call fcn.140058130
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004dd6f
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c02c8]
mov r8d, 0x91b
lea rdx, [0x1400c04b0]
call qword [0x1400cd5a8]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cf30
mov rcx, qword [rdi + 0x40]
call fcn.140057f60
mov rcx, rdi
call fcn.140062194
call fcn.140063860
mov dword [rax], ebp
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.14005ac20
movzx eax, byte [rsp + 0x88]
mov byte [rdi + 0x120], al
mov dword [rdi + 0xf8], r12d
mov qword [rdi + 0x118], rsi
mov qword [rdi + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
movabs rax, 0x624dd2f1a9fbe77
sub rcx, qword [0x1400cda18]
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 9
mov qword [rdi + 0x100], rcx
mov eax, dword [rbx + 0x194]
and eax, 2
test al, al
jne 0x14004e061
lea rax, [0x140052750]
mov qword [rdi + 0x148], rax
lea rcx, [rbx + 0x130]
lea rax, [0x1400527e0]
mov qword [rdi + 0x150], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [rbx + 0x180]
cmp eax, dword [rbx + 0x184]
jb 0x14004de7f
lea rcx, [rbx + 0x130]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, str.Server_reached_connection_limit._Closing_inbound_connection._n
mov rcx, rbx
call fcn.140058130
mov ebp, reloc.WS2_32.dll_socket
jmp 0x14004e066
inc eax
mov dword [rbx + 0x180], eax
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x14004ded3
cmp qword [rdi + 0x10], 0
jne 0x14004e268
cmp qword [rdi + 0x18], 0
jne 0x14004e2b2
mov rax, qword [rbx + 0x40]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
cmp qword [rbx + 0x48], 0
jne 0x14004dec7
mov qword [rbx + 0x48], rdi
jmp 0x14004decf
mov rax, qword [rbx + 0x40]
mov qword [rax + 0x18], rdi
mov qword [rbx + 0x40], rdi
cmp qword [rdi], 0
jne 0x14004e2fc
cmp qword [rdi + 8], 0
jne 0x14004e346
mov rax, qword [rbx + 0x10]
mov qword [rdi], rax
mov qword [rdi + 8], 0
cmp qword [rbx + 0x18], 0
jne 0x14004df04
mov qword [rbx + 0x18], rdi
jmp 0x14004df0c
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 0x14004df3c
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 0x14004dff2
mov r15, qword [rbx + 0xe8]
mov ecx, 0x18
call fcn.140061ddc
mov r14, rax
test rax, rax
je 0x14004dfd0
lea rax, [0x14004d2c0]
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 0x14004df96
call fcn.140063860
mov dword [rax], reloc.WS2_32.dll_shutdown
jmp 0x14004dfc8
mov qword [rsp + 0x28], 0
lea r8, [0x140058460]
mov r9, r14
mov dword [rsp + 0x20], 0
mov edx, r15d
xor ecx, ecx
call fcn.140065f24
mov qword [rdi + 0xa0], rax
cmp rax, 0xffffffffffffffff
jne 0x14004e000
mov rcx, r14
call fcn.140062194
call fcn.140063860
mov ebp, dword [rax]
mov ecx, ebp
call fcn.1400663c0
mov r8, rax
lea rdx, str.Failed_to_create_a_thread:__s_n
mov rcx, rbx
call fcn.140058130
jmp 0x14004e066
movups xmm0, xmmword [rbx + 0xf8]
movups xmmword [rdi + 0xa0], xmm0
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x14004e057
test bpl, bpl
je 0x14004e057
cmp qword [rbx + 0x168], 0xffffffffffffffff
je 0x14004e057
mov rcx, qword [rbx + 0x170]
lea rdx, [0x1400bfc2c]
xor r9d, r9d
lea r8d, [r9 + 1]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x14004e057
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14004e057
lea rdx, str.Failed_to_signal_new_connection_via_inter_thread_communication_channel.
mov rcx, rbx
call fcn.140058130
mov eax, 1
jmp 0x14004dd97
mov ebp, reloc.WS2_32.dll_shutdown
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x14004e090
mov rcx, qword [rbx + 0x88]
lea r8, [rdi + 0x50]
mov r9d, 1
mov rdx, rdi
call rax
nop dword [rax + rax]
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004e0bf
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c0498]
mov r8d, 0x9db
lea rdx, [0x1400c0af0]
call qword [0x1400cd5a8]
int3
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
call fcn.14004cf30
lea rcx, [rbx + 0x130]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [rbx + 0x194]
and eax, 4
test al, al
jne 0x14004e149
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x14004e0fa
cmp rdi, qword [rbx + 0x48]
jne 0x14004e390
mov rcx, qword [rdi + 0x18]
test rcx, rcx
jne 0x14004e118
cmp rdi, qword [rbx + 0x40]
jne 0x14004e3da
test rcx, rcx
jne 0x14004e118
mov qword [rbx + 0x40], rax
jmp 0x14004e11c
mov qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
test rcx, rcx
jne 0x14004e139
xor edx, edx
mov qword [rbx + 0x48], rax
mov qword [rdi + 0x10], rdx
mov qword [rdi + 0x18], rdx
jmp 0x14004e14b
xor edx, edx
mov qword [rcx + 0x18], rax
mov qword [rdi + 0x10], rdx
mov qword [rdi + 0x18], rdx
jmp 0x14004e14b
xor edx, edx
mov rax, qword [rdi]
test rax, rax
jne 0x14004e15d
cmp rdi, qword [rbx + 0x18]
jne 0x14004e424
mov rcx, qword [rdi + 8]
test rcx, rcx
jne 0x14004e17b
cmp rdi, qword [rbx + 0x10]
jne 0x14004e46e
test rcx, rcx
jne 0x14004e17b
mov qword [rbx + 0x10], rax
jmp 0x14004e17e
mov qword [rcx], rax
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
test rcx, rcx
jne 0x14004e190
mov qword [rbx + 0x18], rax
jmp 0x14004e194
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.140057f60
mov rcx, qword [rdi + 0x98]
call fcn.140062194
mov rcx, rdi
call fcn.140062194
call fcn.140063860
test ebp, ebp
jne 0x14004dd93
mov ebp, reloc.WS2_32.dll_shutdown
jmp 0x14004dd93
lea rdx, [0x1400c00f8]
mov rcx, rbx
call fcn.140058130
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
je 0x14004daa4
mov rcx, qword [0x1400cd5b0]
lea r9, [0x1400c0088]
mov r8d, 0x8d3
lea rdx, [0x1400c0250]
call qword [0x1400cd5a8]
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c00a0]
lea rax, str._NULL__daemon__worker_pool____external_add_
mov r9d, 0x884
lea rdx, [0x1400c0058]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c06d0]
lea rax, [0x1400c03c8]
mov r9d, 0x982
lea rdx, [0x1400c0508]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0770]
lea rax, [0x1400c05c8]
mov r9d, 0x982
lea rdx, [0x1400c0688]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0870]
lea rax, [0x1400c0668]
mov r9d, 0x986
lea rdx, [0x1400c0728]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0910]
lea rax, [0x1400c07c8]
mov r9d, 0x986
lea rdx, [0x1400c07e8]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0cd0]
lea rax, [0x1400c0b90]
mov r9d, 0x9e4
lea rdx, [0x1400c08c8]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0d70]
lea rax, [0x1400c0e10]
mov r9d, 0x9e4
lea rdx, [0x1400c0988]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0f00]
lea rax, [0x1400c0eb0]
mov r9d, 0x9e8
lea rdx, [0x1400c0a38]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
lea r8, [0x1400c0fa0]
lea rax, [0x1400c1060]
mov r9d, 0x9e8
lea rdx, [0x1400c0b48]
mov qword [rsp + 0x20], rax
call fcn.140005c40
mov ecx, 2
call fcn.1400622c8
mov rcx, rax
call fcn.140063028
call fcn.1400638ac
int3