Function at 0x4023b0
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
sub esp, 0x34
mov eax, dword [0x41405c]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x44]
push edi
push 0
push 4
lea eax, [esp + 0x18]
push eax
push esi
call sub.WSOCK32.dll_recv
push 0
push 4
lea ecx, [esp + 0x1c]
push ecx
push esi
call sub.WSOCK32.dll_recv
mov edx, dword [esp + 0x10]
push edx
call sub.WSOCK32.dll_ntohl
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
push eax
call sub.WSOCK32.dll_ntohl
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 0x50], eax
mov word [esp + 0x20], 0x3f
mov dword [esp + 0x22], eax
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov dword [esp + 0x32], eax
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov word [esp + 0x3e], ax
je 0x40243e
push eax
push 0x20
lea ecx, [esp + 0x28]
push ecx
push esi
call sub.WSOCK32.dll_recv
mov eax, dword [esp + 0x10]
mov esi, eax
and eax, 0xff
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
and esi, 0xff00
xor ebp, ebp
mov edx, 0x4150f8
mov edi, edi
mov eax, dword [edx]
test eax, eax
je 0x4024e8
mov ecx, eax
and ecx, 0xff00
and eax, 0xff
cmp esi, ecx
je 0x40249d
mov edi, esi
and edi, 0xf00
cmp edi, 0xb00
jne 0x4024e8
mov edi, esi
and edi, 0xf000
or edi, 0xa00
cmp edi, ecx
jne 0x4024e8
cmp dword [esp + 0x1c], eax
jg 0x4024e8
xor ebx, ebx
lea eax, [edx + 0xc14]
mov ecx, 0x40
mov edi, dword [esp + 0x4c]
cmp dword [eax - 4], edi
jne 0x4024bc
add ebx, 1
cmp dword [eax], edi
jne 0x4024c3
add ebx, 1
cmp dword [eax + 4], edi
jne 0x4024cb
add ebx, 1
cmp dword [eax + 8], edi
jne 0x4024d3
add ebx, 1
add eax, 0x10
sub ecx, 1
jne 0x4024b0
test bl, 3
jne 0x402501
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jb 0x402501
add edx, 0x3020
add ebp, 1
cmp edx, 0x433238
jl 0x402460
mov edi, dword [esp + 0x4c]
cmp ebp, 0xa
jne 0x402559
push 0x6e6f2020
call sub.WSOCK32.dll_htonl
mov edx, dword [esp + 0x48]
push 0
push 4
lea ecx, [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x28], eax
call sub.WSOCK32.dll_send
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push eax
push edi
lea ecx, [esp + 0x28]
push ecx
push 0
push edx
push str.fail
call fcn.00401bd0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00403591
add esp, 0x34
ret
mov esi, ebp
imul esi, esi, 0x3020
mov eax, dword [esi + 0x418108]
test eax, 0xfff0
jne 0x4025e2
and al, 0xf
cmp al, 2
jne 0x4025e2
mov eax, dword [esi + 0x418114]
mov ecx, dword [esi + 0x418110]
mov edx, dword [esi + 0x41810c]
push eax
push ecx
push edx
call fcn.00402e50
add esp, 0xc
test eax, eax
je 0x4025e2
push 0x6e6f2020
call sub.WSOCK32.dll_htonl
mov ecx, dword [esp + 0x48]
push 0
mov dword [esp + 0x1c], eax
push 4
lea eax, [esp + 0x20]
push eax
push ecx
call sub.WSOCK32.dll_send
push ebp
push 0
push str.dongle_disconnected
push 0
push 0
push str.error
call fcn.00401bd0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00403591
add esp, 0x34
ret
push 0x6f6b2020
call sub.WSOCK32.dll_htonl
push 0
push 4
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
push edx
push eax
call sub.WSOCK32.dll_send
xor edx, edx
mov eax, ebx
div dword [esi + 0x415104]
test edx, edx
jne 0x40263b
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x4150f8]
add dword [esi + 0x415100], 1
push ecx
mov ecx, dword [esp + 0x14]
push edi
lea edx, [esp + 0x28]
push edx
and eax, 0xffff
push eax
push ecx
push str.grab
jmp 0x40265d
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x4150f8]
push edx
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x28]
push eax
and ecx, 0xffff
push ecx
push edx
push str.2grab
call fcn.00401bd0
add esp, 0x18
xor edi, edi
lea eax, [esi + 0x41550c]
lea ecx, [ecx]
cmp dword [eax - 4], 0
je 0x4026a4
cmp dword [eax], 0
je 0x402697
cmp dword [eax + 4], 0
je 0x40269c
cmp dword [eax + 8], 0
je 0x4026a1
add edi, 4
add eax, 0x10
cmp edi, 0x100
jl 0x402670
jmp 0x4026a4
add edi, 1
jmp 0x4026a4
add edi, 2
jmp 0x4026a4
add edi, 3
mov esi, ebp
imul esi, esi, 0xc08
add esi, edi
add esi, esi
push 0
add esi, esi
call fcn.004035a0
imul ebp, ebp, 0x181
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x415108], eax
mov eax, dword [esp + 0x14]
add ebp, edi
mov dword [esi + 0x415508], eax
shl ebp, 5
mov dword [esi + 0x415908], edx
lea eax, [esp + 0x24]
mov dword [esi + 0x415d08], ecx
lea edx, [ebp + 0x416108]
mov ecx, eax
add esp, 4
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x402700
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00403591
add esp, 0x34
ret