Function at 0x4145aa
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4d3034]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], 1
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0x10]
and ecx, 0xffff
movzx edx, cx
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
sub eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1f
ja case.0x4145a3.2
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx + 0x414a7c]
jmp dword [edx*4 + 0x414a68]
mov dword [ebp - 0x18], 0
jmp 0x4145bc
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x15e
jge 0x4145ee
imul ecx, dword [ebp - 0x18], 0x34
mov edx, dword [0x4d70d8]
cmp dword [edx + ecx], 0
jne 0x4145d7
jmp 0x4145b3
imul eax, dword [ebp - 0x18], 0x34
mov ecx, dword [0x4d70d8]
mov edx, dword [ecx + eax + 8]
cmp edx, dword [ebp - 0x24]
jne 0x4145ec
jmp 0x4145ee
jmp 0x4145b3
cmp dword [ebp - 0x18], 0x15e
jne 0x4145ff
or eax, 0xffffffff
jmp case.0x4145a3.2
mov eax, 1
test eax, eax
je 0x4146a9
push 0
imul ecx, dword [ebp - 0x18], 0x34
mov edx, dword [0x4d70d8]
mov eax, 0x186a0
sub eax, dword [edx + ecx + 0x28]
push eax
imul ecx, dword [ebp - 0x18], 0x34
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
mov ecx, dword [eax + ecx + 0x24]
mov eax, dword [0x4d70d8]
add ecx, dword [eax + edx + 0x28]
push ecx
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jg 0x414685
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x41466a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x41466a
xor eax, eax
jmp case.0x4145a3.2
push 0x2712
imul ecx, dword [ebp - 0x18], 0x34
add ecx, dword [0x4d70d8]
call fcn.00404a52
xor eax, eax
jmp case.0x4145a3.2
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
mov ecx, dword [eax + edx + 0x28]
add ecx, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
mov dword [eax + edx + 0x28], ecx
jmp 0x4146a9
mov ecx, 1
test ecx, ecx
je 0x4147fb
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
cmp dword [eax + edx + 0x28], 1
jge 0x4146e1
push 0x2713
imul ecx, dword [ebp - 0x18], 0x34
add ecx, dword [0x4d70d8]
call fcn.00404a52
xor eax, eax
jmp case.0x4145a3.2
imul ecx, dword [ebp - 0x18], 0x34
mov edx, 1
imul eax, edx, 0
mov edx, dword [0x4d70d8]
mov ecx, dword [edx + ecx + 0x24]
mov dl, byte [eax + ecx]
mov byte [ebp - 0x19], dl
movzx eax, byte [ebp - 0x19]
cmp dword [eax*4 + 0x4d75b8], 0
jne 0x414726
push 0x3ea
imul ecx, dword [ebp - 0x18], 0x34
add ecx, dword [0x4d70d8]
call fcn.00404a52
xor eax, eax
jmp case.0x4145a3.2
imul ecx, dword [ebp - 0x18], 0x34
movzx edx, byte [ebp - 0x19]
mov eax, dword [0x4d70d8]
mov ecx, dword [eax + ecx + 0x28]
cmp ecx, dword [edx*4 + 0x4d70e0]
jge 0x414748
or eax, 0xffffffff
jmp case.0x4145a3.2
mov edx, dword [ebp - 0x18]
push edx
movzx eax, byte [ebp - 0x19]
mov ecx, dword [eax*4 + 0x4d75b8]
call ecx
add esp, 4
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
cmp dword [eax + edx], 0
je 0x4147e4
imul ecx, dword [ebp - 0x18], 0x34
movzx edx, byte [ebp - 0x19]
mov eax, dword [0x4d70d8]
mov ecx, dword [eax + ecx + 0x28]
sub ecx, dword [edx*4 + 0x4d70e0]
push ecx
imul edx, dword [ebp - 0x18], 0x34
movzx eax, byte [ebp - 0x19]
mov ecx, dword [0x4d70d8]
mov edx, dword [ecx + edx + 0x24]
add edx, dword [eax*4 + 0x4d70e0]
push edx
imul eax, dword [ebp - 0x18], 0x34
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [0x4d70d8]
add edx, dword [ecx + eax + 0x24]
push edx
call fcn.00405a74
add esp, 0xc
imul edx, dword [ebp - 0x18], 0x34
movzx eax, byte [ebp - 0x19]
mov ecx, dword [0x4d70d8]
mov edx, dword [ecx + edx + 0x28]
sub edx, dword [eax*4 + 0x4d70e0]
imul eax, dword [ebp - 0x18], 0x34
mov ecx, dword [0x4d70d8]
mov dword [ecx + eax + 0x28], edx
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
cmp dword [eax + edx + 0x28], 0
jne 0x4147f6
jmp 0x4147fb
jmp 0x4146a9
mov eax, dword [ebp - 0x2c]
jmp case.0x4145a3.2
mov dword [ebp - 0x18], 0
jmp 0x414815
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x15e
jge 0x414846
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
cmp dword [eax + edx], 0
jne 0x41482f
jmp 0x41480c
imul ecx, dword [ebp - 0x18], 0x34
mov edx, dword [0x4d70d8]
mov eax, dword [edx + ecx + 8]
cmp eax, dword [ebp - 0x24]
jne 0x414844
jmp 0x414846
jmp 0x41480c
cmp dword [ebp - 0x18], 0x15e
jne 0x414857
or eax, 0xffffffff
jmp case.0x4145a3.2
push 0
push 0
push 0
imul ecx, dword [ebp - 0x18], 0x34
add ecx, dword [0x4d70d8]
call fcn.0040515a
mov eax, 1
jmp case.0x4145a3.2
mov dword [ebp - 0x30], 0x10
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x190]
push ecx
call dword [sym.imp.WS2_32.dll_accept]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
jmp 0x4148aa
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x15e
jge 0x4148c7
imul eax, dword [ebp - 0x20], 0x34
mov ecx, dword [0x4d70d8]
cmp dword [ecx + eax], 0
jne 0x4148c5
jmp 0x4148c7
jmp 0x4148a1
cmp dword [ebp - 0x20], 0x15e
jne 0x4148d7
xor eax, eax
jmp case.0x4145a3.2
lea edx, [ebp - 0x38]
push edx
push 0x8004667e
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x414900
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp case.0x4145a3.2
push 4
lea edx, [ebp - 0x3c]
push edx
push 1
push 6
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x41492a
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp case.0x4145a3.2
imul edx, dword [ebp - 0x20], 0x34
mov eax, dword [0x4d70d8]
mov dword [eax + edx], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
imul ecx, dword [ebp - 0x20], 0x34
mov edx, dword [0x4d70d8]
mov dword [edx + ecx + 4], eax
imul eax, dword [ebp - 0x20], 0x34
mov ecx, dword [0x4d70d8]
mov edx, dword [ebp - 0x24]
mov dword [ecx + eax + 8], edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push 0x4b934c
imul ecx, dword [ebp - 0x20], 0x34
mov edx, dword [0x4d70d8]
lea eax, [edx + ecx + 0xc]
push eax
call fcn.00406762
add esp, 0xc
imul ecx, dword [ebp - 0x20], 0x34
mov edx, dword [0x4d70d8]
mov dword [edx + ecx + 0x20], 0
imul eax, dword [ebp - 0x20], 0x34
mov ecx, dword [0x4d70d8]
mov dword [ecx + eax + 0x28], 0
imul edx, dword [ebp - 0x20], 0x34
mov eax, dword [0x4d70d8]
mov dword [eax + edx + 0x2c], 0
mov ecx, 0x4d7a88
call fcn.00403bca
mov ecx, dword [0x4e3dd8]
push ecx
mov edx, 1
imul eax, edx, 0
add eax, 0x4d7a88
push eax
push 1
imul ecx, dword [ebp - 0x20], 0x34
add ecx, dword [0x4d70d8]
call fcn.0040515a
mov eax, 1
jmp case.0x4145a3.2
mov dword [ebp - 0x18], 0
jmp 0x414a04
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x15e
jge 0x414a35
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [0x4d70d8]
cmp dword [eax + edx], 0
jne 0x414a1e
jmp 0x4149fb
imul ecx, dword [ebp - 0x18], 0x34
mov edx, dword [0x4d70d8]
mov eax, dword [edx + ecx + 8]
cmp eax, dword [ebp - 0x24]
jne 0x414a33
jmp 0x414a35
jmp 0x4149fb
cmp dword [ebp - 0x18], 0x15e
jne 0x414a42
xor eax, eax
jmp case.0x4145a3.2
push 0
imul ecx, dword [ebp - 0x18], 0x34
add ecx, dword [0x4d70d8]
call fcn.00404a52
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403198
mov esp, ebp
pop ebp
ret 0xc