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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov eax, dword [0x100e7260]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
and dword [ebp - 0x8c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x618]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x90]
add eax, 0x70
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], 0x80
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x84]
push eax
push 0
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x154]
add eax, 4
push eax
mov eax, dword [ebp - 0x88]
push dword [eax + 0x15c]
mov eax, dword [ebp - 0x88]
push dword [eax + 0x14]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x14c], eax
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x148], 0
jne 0x100a1695
push dword [ebp - 0x98]
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x88]
add eax, 0xc8
push eax
call fcn.1003dae0
add esp, 0xc
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x98]
mov dword [eax + 0x148], ecx
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x14c], 4
jge 0x100a16c8
push str.Received_too_short_packet
push dword [ebp - 0x90]
call fcn.10083b69
pop ecx
pop ecx
mov eax, dword [ebp - 0x88]
mov dword [eax + 0xc], 7
jmp 0x100a18e1
mov eax, dword [ebp - 0x88]
add eax, 0x15c
push eax
call fcn.100a2eee
pop ecx
mov word [ebp - 0xa0], ax
movzx eax, word [ebp - 0xa0]
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 3
je 0x100a1735
cmp dword [ebp - 0x94], 4
je 0x100a1861
cmp dword [ebp - 0x94], 5
je 0x100a1813
cmp dword [ebp - 0x94], 6
je 0x100a1863
jmp 0x100a18a8
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x14c], 4
jle 0x100a180e
mov eax, dword [ebp - 0x88]
movzx esi, word [eax + 0x40]
inc esi
and esi, 0xffff
mov eax, dword [ebp - 0x88]
add eax, 0x15c
push eax
call fcn.100a2ec7
pop ecx
movzx eax, ax
cmp esi, eax
jne 0x100a180e
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x14c]
sub eax, 4
push eax
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x15c]
add eax, 4
push eax
push 1
push dword [ebp + 8]
call fcn.100830dd
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x100a17cc
push 5
push dword [ebp - 0x88]
call fcn.100a1b9f
pop ecx
pop ecx
mov eax, dword [ebp - 0x8c]
jmp 0x100a18e7
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x14c]
sub eax, 4
cdq
mov ecx, dword [ebp - 0x9c]
add eax, dword [ecx + 0x20]
adc edx, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x9c]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov eax, dword [ebp - 0x9c]
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [ebp - 0x90]
call fcn.1008ebae
add esp, 0xc
jmp 0x100a18c0
mov eax, dword [ebp - 0x88]
add eax, 0x15c
push eax
call fcn.100a2ec7
pop ecx
mov word [ebp - 0xa4], ax
movzx eax, word [ebp - 0xa4]
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x15c]
add eax, 4
push eax
push 0x100ed55c
push dword [ebp - 0x90]
call fcn.100837f8
add esp, 0xc
jmp 0x100a18c0
jmp 0x100a18c0
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x14c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x15c]
inc eax
inc eax
push eax
push dword [ebp - 0x88]
call fcn.100a2b86
add esp, 0xc
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x100a18a6
mov eax, dword [ebp - 0x8c]
jmp 0x100a18e7
jmp 0x100a18c0
push str.Internal_error:_Unexpected_packet
push 0x100ed584
push dword [ebp - 0x90]
call fcn.10083b69
add esp, 0xc
push dword [ebp + 8]
call fcn.1008f085
pop ecx
test eax, eax
je 0x100a18e1
push 5
push dword [ebp - 0x88]
call fcn.100a1b9f
pop ecx
pop ecx
push 0x2a
pop eax
jmp 0x100a18e7
mov eax, dword [ebp - 0x8c]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003d588
mov esp, ebp
pop ebp
ret