Function at 0x445ab0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], 0x10
mov ecx, dword [0x4850bc]
mov dword [esp + 0x2c], 0
test ecx, ecx
je 0x445add
call fcn.004420f0
cmp dword [edi + 0xc], 0
jne 0x445dc5
mov esi, dword [reloc.WS2_32.dll_closesocket]
nop dword [eax]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x34]
push eax
push dword [edi]
call dword [0x454344]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x445b28
cmp dword [edi + 0xc], 1
je 0x445dc5
call dword [0x454314]
push eax
push str.Server:_accept_failed__ld
push 0
push 1
jmp 0x445dae
push 4
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 1
push eax
push 1
push 6
push ebx
call dword [0x454330]
push dword [esp + 0x34]
call dword [0x454348]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x445b72
push ebx
call esi
push str.Server:_unknown_IP_address
push 0
push 1
push 0x4850d0
call fcn.00436d50
add esp, 0x10
jmp 0x445dbb
mov eax, dword [esp + 0x34]
mov ecx, 0x47b624
mov esi, dword [0x484f18]
mov dword [esp + 0x14], eax
xor eax, eax
lock xadd dword [ecx], eax
test eax, eax
je 0x445d6d
push esi
call dword [0x454138]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x445d13
mov eax, dword [esi + 0x1c]
test eax, eax
jle 0x445d13
push 0x434320
push 0x20
push eax
push ecx
lea eax, [esp + 0x24]
push eax
call fcn.0041c3a8
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x445d13
mov ecx, dword [eax + 8]
cmp ecx, dword [0x47b5fc]
jl 0x445d13
cmp dword [eax + 4], 0
je 0x445d13
push 0
call fcn.004179b1
mov ecx, dword [esp + 0x24]
add esp, 4
cmp dword [ecx + 4], eax
jl 0x445d13
push esi
call dword [0x454134]
mov esi, dword [reloc.WS2_32.dll_setsockopt]
lea eax, [esp + 0x24]
push 4
push eax
push 0x1002
push 0xffff
push ebx
mov dword [esp + 0x38], 0x20000
mov dword [esp + 0x3c], 0x20000
call esi
push 4
lea eax, [esp + 0x2c]
push eax
push 0x1001
push 0xffff
push ebx
call esi
push 0x454420
push 0x1e8
call fcn.00408b10
mov esi, eax
add esp, 8
mov dword [esp + 0x20], esi
test esi, esi
je 0x445d98
push dword [esp + 0x32]
call dword [0x45434c]
movzx ecx, ax
push ecx
push dword [esp + 0x14]
mov ecx, esi
push dword [esp + 0x3c]
push ebx
call fcn.0044a640
mov dword [esp + 0x20], eax
test eax, eax
je 0x445d98
mov ecx, dword [0x4850bc]
test ecx, ecx
je 0x445ca0
call fcn.004420f0
lea esi, [edi + 0x38]
push esi
call dword [0x454138]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x178], eax
cmp dword [edi + 8], 0
mov dword [edi + 0x10], ecx
jne 0x445cf8
lea eax, [esp + 0x2c]
push eax
push 0
push edi
push 0x445a60
push 0x100000
push 0
call fcn.0041a80d
add esp, 0x18
mov dword [edi + 8], eax
test eax, eax
jne 0x445cf8
push str.Server:__beginthreadex_error
push eax
push 2
push 0x4850d0
call fcn.00436d50
add esp, 0x10
push esi
call dword [0x454134]
push dword [edi + 0x1c]
call dword [0x45416c]
mov esi, dword [reloc.WS2_32.dll_closesocket]
jmp 0x445dbb
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x445d66
mov eax, dword [esi + 0x28]
test eax, eax
jle 0x445d66
push 0x434320
push 0x20
push eax
push ecx
lea eax, [esp + 0x24]
push eax
call fcn.0041c3a8
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x445d66
mov ecx, dword [eax + 8]
cmp ecx, dword [0x47b5fc]
jl 0x445d66
push 0
call fcn.004179b1
mov ecx, dword [esp + 0x24]
add esp, 4
cmp dword [ecx + 4], eax
jl 0x445d66
push esi
call dword [0x454134]
jmp 0x445d84
push esi
call dword [0x454134]
push dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x38]
call fcn.00445470
test eax, eax
jne 0x445c09
push 2
push ebx
call dword [0x454318]
mov esi, dword [reloc.WS2_32.dll_closesocket]
push ebx
call esi
jmp 0x445dbb
mov esi, dword [reloc.WS2_32.dll_closesocket]
push ebx
call esi
push dword [esp + 0x10]
push str.Server:__s_not_enough_memory_for_new_user
push 0
push 2
push 0x4850d0
call fcn.00436d50
add esp, 0x14
cmp dword [edi + 0xc], 0
je 0x445af0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret