Function at 0x441a80
Capabilities:
Create thread
Initialize winsock library
Resolve dns

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
mov r15, rcx
mov edi, edx
mov rbx, r8
mov r13, r9
lea rdx, [rsp + 0xb0]
mov ecx, 0x202
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x442150
lea rcx, [0x0055d088]
call sub.KERNEL32.dll_QueryPerformanceCounter
lea rcx, [0x0055d060]
mov r14, qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call r14
test rbx, rbx
je 0x441d34
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
mov r12, rax
mov ebp, eax
mov rsi, rbx
je 0x441ce0
lea r12, [rsp + 0x60]
xor r8d, r8d
mov r9d, 2
mov qword [rsp + 0x62], 0
mov word [rsp + 0x60], r9w
movzx ecx, di
mov dword [r12 + 0xa], 0
mov word [r12 + 0xe], r8w
call qword [sym.imp.WS2_32.dll_htons]
test r15, r15
mov word [rsp + 0x62], ax
mov dword [rsp + 0x64], 0
je 0x441be7
movabs rax, 0x100000002
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
xor edx, edx
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
lea r9, [rsp + 0x70]
mov qword [rsp + 0x84], rax
mov qword [rsp + 0x70], 0
lea r8, [rsp + 0x80]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x441e29
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 0x20]
mov eax, dword [rax + 4]
mov dword [rsp + 0x64], eax
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
movsxd rdi, ebp
mov rdx, r12
mov r8d, 0x10
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
mov r12d, eax
je 0x441ca0
mov edx, 5
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
mov r12d, eax
je 0x441df0
mov ecx, 0x48
call fcn.0040e980
test rax, rax
mov r15, rax
je 0x441d10
mov rcx, rax
call r14
mov edx, pe_nt_image_headers64
mov ecx, 0x40
call fcn.0040e940
test rax, rax
mov qword [r15 + 0x28], rax
mov dword [r15 + 0x38], 0
je 0x441d10
lea rdx, [0x00543744]
mov rcx, r15
call fcn.0043fe00
test al, al
jne 0x441e70
test rbx, rbx
je 0x441e60
mov r12d, 0xffffffff
mov eax, r12d
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov rdi, rax
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str.bind:__s_n
lea rcx, [rax + 0x60]
xor edx, edx
mov r9, rdi
call fcn.0043d670
test rbx, rbx
jne 0x441c82
mov rcx, rsi
call fcn.0040ea80
jmp 0x441c88
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov rbx, rax
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str.socket:__s_n
lea rcx, [rax + 0x60]
mov r9, rbx
xor edx, edx
call fcn.0043d670
jmp 0x441c88
call qword [sym.imp.msvcrt.dll___iob_func]
lea r9, str.Insufficient_memory_available
lea rcx, [rax + 0x60]
lea r8, [0x005436e0]
xor edx, edx
call fcn.0043d670
jmp 0x441c79
mov ecx, 0x14
call fcn.0040e980
mov rsi, rax
call fcn.0043e700
mov ebp, eax
call fcn.0043e700
lea r8, str._08x_08x
mov r9d, eax
mov edx, 0x14
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.0043d5c0
mov r12, qword [sym.imp.msvcrt.dll___iob_func]
call r12
lea r8, str.Generated_authentication_password:__s_n
lea rcx, [rax + 0x30]
xor edx, edx
mov r9, rsi
call fcn.0043d670
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
mov ebp, eax
jne 0x441b03
mov qword [rsp + 0x30], rax
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov rbx, rax
call r12
lea r8, str.socket:__s_n
lea rcx, [rax + 0x60]
mov r9, rbx
xor edx, edx
call fcn.0043d670
mov rcx, rsi
call fcn.0040ea80
mov r10, qword [rsp + 0x30]
mov r12d, r10d
jmp 0x441c88
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov rdi, rax
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str.listen:__s_n
lea rcx, [rax + 0x60]
xor edx, edx
mov r9, rdi
call fcn.0043d670
test rbx, rbx
jne 0x441c82
jmp 0x441cd0
mov ecx, eax
call fcn.00527de0
mov rdi, rax
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str._s:__s_n
lea rcx, [rax + 0x60]
xor edx, edx
mov qword [rsp + 0x20], rdi
mov r9, r15
call fcn.0043d670
test rbx, rbx
jne 0x441c82
nop dword [rax]
mov rcx, rsi
call fcn.0040ea80
jmp 0x441c82
mov edx, 0x98
mov ecx, 0x10000
call fcn.0040e940
test rax, rax
mov qword [r15 + 0x30], rax
mov dword [r15 + 0x3c], 0
je 0x441d10
lea rdx, [0x00543744]
mov rcx, r15
call fcn.004402f0
test al, al
je 0x441c79
mov edx, 4
mov ecx, 0x100
call fcn.0040e940
test rax, rax
mov qword [r15 + 0x40], rax
je 0x441d10
mov edx, 4
mov ecx, 0x40
call fcn.0040e940
test r13, r13
mov r12, rax
je 0x442272
mov rcx, r13
call fcn.0040ea30
test rax, rax
mov qword [rsp + 0x38], rax
je 0x441d10
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
lea rdx, [0x00543a35]
mov r13d, 1
mov qword [rsp + 0x80], 0
mov r8, rax
mov qword [rsp + 0x30], rax
call fcn.0052aeb0
nop dword [rax + rax]
xor edx, edx
mov r8d, 0x10
mov rcx, rax
call fcn.0041cb00
mov r8, qword [rsp + 0x30]
lea rdx, [0x00543a35]
mov dword [r12 + r13*4 - 4], eax
xor ecx, ecx
mov r14d, r13d
add r13, 1
call fcn.0052aeb0
test rax, rax
jne 0x441f30
mov rcx, qword [rsp + 0x38]
call fcn.0040ea80
mov edx, 0x28
mov ecx, 0x100
call fcn.0040e940
xor edx, edx
test rax, rax
mov qword [rsp + 0x30], rax
je 0x441d10
nop dword [rax]
mov dword [rax + 8], edx
add edx, 1
mov qword [rax + 0x10], rsi
mov qword [rax], r15
mov qword [rax + 0x18], r12
add rax, 0x28
mov dword [rax - 8], r14d
cmp edx, 0x100
jne 0x441f90
mov r13, qword [sym.imp.msvcrt.dll___iob_func]
call r13
lea r8, str.Brain_server_started_n
lea rcx, [rax + 0x30]
xor edx, edx
call fcn.0043d670
lea rdx, [0x0043d5a0]
mov ecx, 2
call sub.msvcrt.dll_signal
cmp rax, 0xffffffffffffffff
mov r14, rax
je 0x44227a
mov eax, dword [rsp + 0x2c0]
mov qword [rsp + 0x70], r15
lea r9, [rsp + 0x70]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x00440060]
xor edx, edx
xor ecx, ecx
mov r14, qword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [rsp + 0x78], eax
call r14
mov qword [rsp + 0x38], rax
cmp byte [0x00532020], 0
je 0x44218b
mov edx, 1
mov ecx, ebp
call fcn.0041cd10
cmp eax, 0xffffffff
je 0x442184
test eax, eax
je 0x44202b
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x58]
mov rcx, rdi
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x58], 0x10
call qword [sym.imp.WS2_32.dll_accept]
movzx ecx, word [rsp + 0x82]
mov r12, rax
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [rsp + 0x84]
mov word [rsp + 0x40], ax
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov qword [rsp + 0x48], rax
call r13
lea rcx, [rax + 0x30]
movzx eax, word [rsp + 0x40]
mov r9, qword [rsp + 0x48]
lea r8, str.Connection_from__s:_d_n
xor edx, edx
mov dword [rsp + 0x20], eax
call fcn.0043d670
mov rax, qword [r15 + 0x40]
mov edx, 1
add rax, 4
jmp 0x4420fa
add rdx, 1
add rax, 4
cmp rdx, 0x100
je 0x4422bb
mov ecx, dword [rax]
test ecx, ecx
jne 0x4420e5
mov dword [rax], 1
lea rax, [rdx + rdx*4]
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
lea r8, [0x00440550]
lea r9, [rdx + rax*8]
xor edx, edx
mov dword [r9 + 0xc], r12d
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call r14
test rax, rax
je 0x4422de
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x44202b
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
mov r12d, 0xffffffff
call sub.msvcrt.dll_strerror
mov rbx, rax
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.WSAStartup:__s_n
lea rcx, [rax + 0x60]
mov r8, rbx
call sub.msvcrt.dll_fprintf
jmp 0x441c88
mov byte [0x00532020], 0
call r13
lea r8, str.Brain_server_stopping_n
lea rcx, [rax + 0x30]
xor edx, edx
call fcn.0043d670
mov edx, 0xffffffff
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rdx, [0x00543744]
mov rcx, r15
call fcn.0043fb10
test al, al
je 0x441c79
lea rdx, [0x00543744]
mov rcx, r15
call fcn.0043ff90
test al, al
je 0x441c79
xor edi, edi
cmp dword [r15 + 0x38], 0
jle 0x442204
mov rcx, rdi
add rdi, 1
shl rcx, 7
add rcx, qword [r15 + 0x28]
call fcn.0043f520
movsxd rax, dword [r15 + 0x38]
cmp rax, rdi
jg 0x4421e7
cmp dword [r15 + 0x3c], 0
jle 0x442230
xor r13d, r13d
xor edi, edi
mov rcx, qword [r15 + 0x30]
add rdi, 1
add rcx, r13
add r13, 0x98
call fcn.0043f6d0
movsxd rax, dword [r15 + 0x3c]
cmp rax, rdi
jg 0x442210
mov rcx, qword [r15 + 0x28]
call fcn.0040ea80
mov rcx, qword [r15 + 0x30]
call fcn.0040ea80
mov rcx, r15
call fcn.0040ea80
mov rcx, qword [rsp + 0x30]
call fcn.0040ea80
test rbx, rbx
je 0x442317
mov ecx, ebp
xor r12d, r12d
call sub.msvcrt.dll__close
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x441c88
xor r14d, r14d
jmp 0x441f6e
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov rdi, rax
call r13
lea r8, str.signal:__s_n
lea rcx, [rax + 0x60]
xor edx, edx
mov r9, rdi
call fcn.0043d670
test rbx, rbx
jne 0x441c82
mov rcx, rsi
mov r12d, r14d
call fcn.0040ea80
jmp 0x441c88
call r13
lea r8, str.Too_many_clients_n
lea rcx, [rax + 0x60]
or edx, 0xffffffff
call fcn.0043d670
mov ecx, r12d
call sub.msvcrt.dll__close
jmp 0x44202b
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov qword [rsp + 0x40], rax
call r13
mov r9, qword [rsp + 0x40]
lea rcx, [rax + 0x60]
lea r8, str.pthread_create:__s_n
xor edx, edx
call fcn.0043d670
mov ecx, r12d
call sub.msvcrt.dll__close
jmp 0x44202b
mov rcx, rsi
call fcn.0040ea80
jmp 0x44225d