Function at 0x40a280
Capabilities:
Create thread
Receive data
Receive data on socket

Disassembly:
push ebp
lea ebp, [esp - 0x1a0]
sub esp, 0x220
mov eax, dword [0x42a2e4]
xor eax, ebp
mov dword [ebp + 0x19c], eax
push ebx
mov ebx, dword [0x441d28]
push edi
xor edi, edi
mov eax, ebx
xor ecx, ecx
cmp eax, edi
je 0x40a307
mov eax, dword [eax + 0x4514]
inc ecx
cmp eax, edi
jne 0x40a2ad
cmp ecx, 0x64
jl 0x40a307
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x78]
push eax
push edi
push 0x204
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 0x1a8]
mov dword [ebp - 0x7c], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
jle 0x40a2ff
push dword [ebp - 0x74]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.max_number_of_threads_reached__connection_from__s_dropped
push 1
call fcn.004010eb
add esp, 0xc
or eax, 0xffffffff
jmp 0x40a4e5
push esi
mov esi, ebx
jmp 0x40a31b
cmp dword [esi + 4], edi
je 0x40a315
cmp dword [esi], edi
je 0x40a31f
mov esi, dword [esi + 0x4514]
cmp esi, edi
jne 0x40a30c
xor eax, eax
cmp esi, edi
sete al
mov dword [ebp - 0x80], eax
cmp eax, edi
je 0x40a374
cmp ebx, edi
je 0x40a345
mov eax, dword [ebx + 0x4514]
cmp eax, edi
je 0x40a341
mov ebx, eax
cmp ebx, edi
jne 0x40a331
cmp ebx, edi
jne 0x40a358
push 0x4518
push 1
call fcn.0040fb53
mov dword [0x441d28], eax
jmp 0x40a36a
push 0x4518
push 1
call fcn.0040fb53
mov dword [ebx + 0x4514], eax
pop ecx
mov esi, eax
pop ecx
mov dword [esi + 0x4514], edi
mov eax, esi
call fcn.0040a077
lea ecx, [ebp - 0x7c]
push ecx
lea ebx, [esi + 0x4268]
push ebx
push 0
mov eax, 0x204
push eax
lea edi, [esi + 0x4278]
push edi
push dword [ebp + 0x1a8]
mov dword [ebp - 0x7c], eax
call dword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
jge 0x40a3e3
call fcn.0040cc32
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Error_:_RecvFrom_returns__d:___s_
push 0
call fcn.004010eb
add esp, 0x10
cmp dword [esi + 4], 0
jne 0x40a4e1
mov eax, dword [0x441d28]
jmp 0x40a3d7
mov eax, ecx
mov ecx, dword [eax + 0x4514]
cmp ecx, esi
jne 0x40a3d5
jmp 0x40a42b
push edi
push ebx
mov ebx, eax
call fcn.0040a1ae
pop ecx
pop ecx
test eax, eax
je 0x40a443
push dword [esi + 0x426c]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.Warning_:_Unaccepted_request_received_from__s
push 1
call fcn.004010eb
add esp, 0xc
cmp dword [esi + 4], 0
jne 0x40a4e1
mov eax, dword [0x441d28]
jmp 0x40a421
mov eax, ecx
mov ecx, dword [eax + 0x4514]
cmp ecx, esi
jne 0x40a41f
mov ecx, dword [esi + 0x4514]
push esi
mov dword [eax + 0x4514], ecx
call fcn.0040ed04
pop ecx
jmp 0x40a4e1
movzx eax, word [esi + 0x426a]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
push eax
push dword [esi + 0x426c]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
xor edi, edi
push str.Connection_received_from__s_on_port__d
inc edi
push edi
call fcn.004010eb
xor ebx, ebx
add esp, 0x10
mov dword [esi], edi
cmp dword [ebp - 0x80], ebx
je 0x40a4c0
lea edi, [esi + 0xc]
push edi
push ebx
push esi
push 0x40bb7b
push 0x2000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push esi
push dword [0x441d28]
mov dword [esi + 8], eax
push dword [esi + 0x18]
push dword [edi]
push str.Thread__d_transfer__d_started__records__p__p__n
call fcn.0040cc99
push dword [esi + 8]
push str.thread__d_started
push 9
call fcn.004010eb
add esp, 0x20
jmp 0x40a4e1
push dword [esi + 0x18]
push dword [esi + 0xc]
push str.waking_up_thread__d_for_transfer__d_n
call fcn.0040cc99
mov esi, dword [esi + 0x10]
add esp, 0xc
cmp esi, ebx
je 0x40a4e1
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
xor eax, eax
inc eax
pop esi
mov ecx, dword [ebp + 0x19c]
pop edi
xor ecx, ebp
pop ebx
call fcn.0040e92f
add ebp, 0x1a0
leave
ret