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

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
push edi
mov edi, 7
lea ebp, [ebp + ebp*2]
lea ebx, [esp + 0x18]
shl ebp, 3
mov eax, dword [ebp + 0x7c7fc0]
mov dword [esp + 0x10], eax
cmp edi, 0x200
mov esi, edi
jle 0x43b354
mov esi, 0x200
mov ecx, dword [esp + 0x10]
push 0
push esi
push ebx
push ecx
call sub.WSOCK32.dll_recv
test eax, eax
jge 0x43b39e
call fcn.00496219
cmp dword [eax], 4
je 0x43b3aa
call fcn.00496219
cmp dword [eax], 0xb
je 0x43b3aa
call fcn.00496219
cmp dword [eax], 0x2733
je 0x43b3aa
call fcn.00496219
cmp dword [eax], 0x2738
jne 0x43b3b2
mov eax, esi
xor esi, esi
sub edi, eax
add ebx, eax
jmp 0x43b3ac
xor esi, esi
cmp eax, esi
je 0x43b3b2
sub edi, eax
add ebx, eax
jmp 0x43b3ac
xor esi, esi
cmp edi, esi
jle 0x43b3d3
jmp 0x43b345
push str.SERVER:_Failed_to_get_message_header_from_client._n
call fcn.00435f80
mov edx, dword [esp + 0x2c]
push 1
push edx
call fcn.0043b080
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
cmp byte [esp + 0x18], 0x43
je 0x43b3fb
push str.SERVER:_Bad_header_magic_value_received_from_client._n
call fcn.00435f80
mov eax, dword [esp + 0x2c]
push 1
push eax
call fcn.0043b080
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x19]
and eax, 0xff
mov cl, byte [ebp + 0x7c7fb9]
and ecx, 0xff
cmp eax, ecx
je 0x43b45b
mov ecx, dword [ebp + 0x7c7fc8]
cmp ecx, esi
jne 0x43b423
mov ecx, str.Unknown
push eax
mov dl, byte [ebp + 0x7c7fb9]
and edx, 0xff
push edx
push ecx
push str.SERVER:_Messages_lost_from__s__expected__d__got__d_n
push 0x7c5e04
call fcn.00496365
mov al, byte [esp + 0x2d]
inc eax
mov byte [ebp + 0x7c7fb9], al
push 0x7c5e04
call fcn.00435f80
add esp, 0x18
jmp 0x43b469
mov cl, byte [ebp + 0x7c7fb9]
inc cl
mov byte [ebp + 0x7c7fb9], cl
mov edi, dword [esp + 0x1b]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1d]
and edi, 0xff
mov ecx, dword [esp + 0x1e]
and edx, 0xff
shl edi, 8
or edi, edx
and eax, 0xff
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x1a]
shl edi, 8
and ecx, 0xff
and eax, 0xff
or edi, ecx
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0xb
ja case.0x43b4b6.2
jmp dword [ecx*4 + 0x43bb78]
push 1
push str.Got_HELLO_from_client...
call fcn.00435f10
add esp, 8
cmp edi, 0x10000
jbe 0x43b4f5
push str.SERVER:_Client_HELLO_message_length_error.
call fcn.00435f80
mov edx, dword [esp + 0x2c]
push 1
push edx
call fcn.0043b080
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
lea eax, [edi - 7]
push eax
call fcn.00497380
mov ecx, dword [ebp + 0x7c7fc0]
mov esi, eax
add esp, 4
mov dword [esp + 0x14], ecx
lea ebx, [edi - 7]
mov dword [esp + 0x10], esi
cmp ebx, 0x200
mov edi, ebx
jle 0x43b523
mov edi, 0x200
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push 0
push edi
push edx
push eax
call sub.WSOCK32.dll_recv
test eax, eax
jge 0x43b56b
call fcn.00496219
cmp dword [eax], 4
je 0x43b579
call fcn.00496219
cmp dword [eax], 0xb
je 0x43b579
call fcn.00496219
cmp dword [eax], 0x2733
je 0x43b579
call fcn.00496219
cmp dword [eax], 0x2738
jne 0x43b57f
mov eax, edi
jmp 0x43b56d
je 0x43b57f
mov ecx, dword [esp + 0x10]
sub ebx, eax
add ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jle 0x43b5a0
jmp 0x43b514
push str.SERVER:_Failed_to_get_HELLO_message_content_from_client.
call fcn.00435f80
mov ecx, dword [esp + 0x2c]
push 1
push ecx
call fcn.0043b080
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
cmp dword [0x7c8030], 1
jg 0x43b5e4
xor edx, edx
xor eax, eax
mov dh, byte [esi]
mov al, byte [esi + 2]
mov dl, byte [esi + 1]
xor ecx, ecx
mov cl, byte [esi + 3]
push 0x1d
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [0x7c80e0], edx
lea edx, [esi + 4]
push edx
push 0x7c80e8
call fcn.00497920
add esp, 0xc
mov byte [0x7c8105], 0
lea eax, [esi + 4]
push eax
call fcn.0049d280
mov dword [ebp + 0x7c7fc4], eax
mov byte [ebp + 0x7c7fb8], 0
mov edi, 0x7c80e8
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
add ebx, 0xe
call fcn.00496b6b
push ebx
call fcn.00497380
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [eax], 0x53
inc eax
mov cl, byte [ebp + 0x7c7fb8]
mov byte [eax], cl
inc eax
mov dl, byte [ebp + 0x7c7fb8]
inc dl
mov byte [ebp + 0x7c7fb8], dl
mov cl, byte [0x7c8124]
test cl, cl
je 0x43b654
cmp dword [0x7c8030], 1
jle 0x43b654
mov byte [eax], 0x80
jmp 0x43b657
mov byte [eax], 0
mov ecx, ebx
inc eax
shr ecx, 0x18
mov byte [eax], cl
mov edx, ebx
mov ecx, ebx
mov byte [eax + 3], bl
shr edx, 0x10
shr ecx, 8
mov byte [eax + 1], dl
mov dl, byte [esp + 0x28]
mov byte [eax + 2], cl
add eax, 4
mov edi, 0x7c80e8
push 1
mov byte [eax], 0xa
inc eax
inc dl
push str.SERVER:_Sending_welcome_information_to_new_client...
mov byte [eax], dl
mov ecx, dword [0x7c80e4]
inc eax
shr ecx, 0x18
mov byte [eax], cl
mov edx, dword [0x7c80e4]
shr edx, 0x10
mov byte [eax + 1], dl
mov ecx, dword [0x7c80e4]
shr ecx, 8
mov byte [eax + 2], cl
mov dl, byte [0x7c80e4]
mov byte [eax + 3], dl
lea edx, [eax + 4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00435f10
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x7c7fc0]
push ebx
push ecx
push edx
call fcn.0043b290
add esp, 0x14
test al, al
jne 0x43b719
push str.SERVER:_Failed_to_send_welcome_message_to_client.
call fcn.00435f80
mov eax, dword [esp + 0x2c]
push 1
push eax
call fcn.0043b080
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00496b6b
push 1
push str.SERVER:_Waiting_for_a_response_from_the_client...
call fcn.00435f10
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov byte [ebp + 0x7c7fbb], 1
mov byte [ebp + 0x7c7fbd], 0
mov byte [ebp + 0x7c7fbc], 0
mov eax, 0x7c7fbd
mov cl, byte [eax - 2]
test cl, cl
je 0x43b76f
cmp byte [eax], 0
je 0x43b824
mov cl, byte [eax - 1]
test cl, cl
jne 0x43b824
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43b754
mov dword [0x7c8120], esi
mov al, byte [0x7c5108]
test al, al
jne 0x43b7bf
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [0x7c50fa]
test al, al
je 0x43b7bf
mov al, byte [0x738232]
test al, al
jne 0x43b7bf
mov al, byte [0x738233]
test al, al
jne 0x43b7bf
mov al, byte [0x738231]
test al, al
jne 0x43b7bf
push 0x28
call edi
mov al, byte [0x7c5108]
test al, al
je 0x43b78e
mov al, byte [0x7c8125]
test al, al
mov edx, dword [0x7c80d8]
je 0x43ba60
mov dword [edx*8 + 0x7c8034], 7
mov eax, dword [0x7c80d8]
mov ecx, dword [esp + 0x28]
mov dword [eax*8 + 0x7c8038], ecx
mov eax, dword [0x7c80d8]
inc eax
xor edx, edx
mov ecx, 0x14
div ecx
mov dword [0x7c80d8], edx
mov edx, dword [0x7c80d8]
mov dword [edx*8 + 0x7c8034], 5
mov eax, dword [0x7c80d8]
mov dword [eax*8 + 0x7c8038], esi
jmp 0x43ba7b
mov dword [0x7c8120], 1
jmp 0x43b77f
mov byte [ebp + 0x7c7fbb], 1
mov byte [ebp + 0x7c7fbd], 0
mov byte [ebp + 0x7c7fbc], 0
mov eax, 0x7c7fbd
mov cl, byte [eax - 2]
test cl, cl
je 0x43b860
cmp byte [eax], 0
je 0x43b8c9
mov cl, byte [eax - 1]
test cl, cl
jne 0x43b8c9
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43b84d
mov dword [0x7c8120], esi
mov al, byte [0x7c5108]
test al, al
jne 0x43b7bf
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [0x7c50fa]
test al, al
je 0x43b7bf
mov al, byte [0x738232]
test al, al
jne 0x43b7bf
mov al, byte [0x738233]
test al, al
jne 0x43b7bf
mov al, byte [0x738231]
test al, al
jne 0x43b7bf
push 0x28
call edi
mov al, byte [0x7c5108]
test al, al
je 0x43b883
jmp 0x43b7bf
mov dword [0x7c8120], 1
jmp 0x43b870
mov byte [ebp + 0x7c7fbb], 1
mov byte [ebp + 0x7c7fbd], 0
mov byte [ebp + 0x7c7fbc], 0
mov eax, 0x7c7fbd
mov cl, byte [eax - 2]
test cl, cl
je 0x43b902
cmp byte [eax], 0
je 0x43b927
mov cl, byte [eax - 1]
test cl, cl
jne 0x43b927
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43b8ef
mov dword [0x7c8120], esi
mov edx, dword [esp + 0x28]
push edx
call fcn.0043c520
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov dword [0x7c8120], 1
jmp 0x43b912
mov al, byte [ebp + 0x7c7fbb]
test al, al
je 0x43b983
mov byte [ebp + 0x7c7fbc], 0
mov byte [ebp + 0x7c7fbd], 1
mov eax, 0x7c7fbd
mov cl, byte [eax - 2]
test cl, cl
je 0x43b96b
cmp byte [eax], 0
je 0x43bb65
mov cl, byte [eax - 1]
test cl, cl
jne 0x43bb65
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43b950
mov dword [0x7c8120], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, 1
mov byte [ebp + 0x7c7fbb], cl
mov byte [ebp + 0x7c7fbd], cl
mov byte [ebp + 0x7c7fbc], 0
mov eax, 0x7c7fbd
mov dl, byte [eax - 2]
test dl, dl
je 0x43b9bb
cmp byte [eax], 0
je 0x43ba4f
mov dl, byte [eax - 1]
test dl, dl
jne 0x43ba4f
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43b9a0
mov dword [0x7c8120], esi
cmp dword [0x7c8030], ecx
jle 0x43ba98
mov al, byte [0x7c8124]
test al, al
jne case.0x43b4b6.2
mov al, byte [0x7c5108]
test al, al
jne 0x43ba20
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [0x7c50fa]
test al, al
je 0x43ba20
mov al, byte [0x738232]
test al, al
jne 0x43ba20
mov al, byte [0x738233]
test al, al
jne 0x43ba20
mov al, byte [0x738231]
test al, al
jne 0x43ba20
push 0x28
call edi
mov al, byte [0x7c5108]
test al, al
je 0x43b9ef
mov al, byte [0x7c8125]
test al, al
je 0x43ba5a
mov eax, dword [0x7c80d8]
mov dword [eax*8 + 0x7c8034], 7
mov ecx, dword [0x7c80d8]
mov edx, dword [esp + 0x28]
mov dword [ecx*8 + 0x7c8038], edx
jmp 0x43b7ed
mov dword [0x7c8120], ecx
jmp 0x43b9cb
mov edx, dword [0x7c80d8]
mov dword [edx*8 + 0x7c8034], 2
mov eax, dword [0x7c80d8]
mov ecx, dword [esp + 0x28]
mov dword [eax*8 + 0x7c8038], ecx
mov eax, dword [0x7c80d8]
inc eax
xor edx, edx
mov ecx, 0x14
div ecx
mov dword [0x7c80d8], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov byte [ebp + 0x7c7fbd], 1
mov eax, 0x7c7fbd
mov dl, byte [eax - 2]
test dl, dl
je 0x43bab7
cmp byte [eax], 0
je 0x43bacf
mov dl, byte [eax - 1]
test dl, dl
jne 0x43bacf
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43baa4
mov dword [0x7c8120], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
mov dword [0x7c8120], ecx
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x28]
mov dword [edx*4 + 0x7c8108], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
shr eax, 7
mov byte [ebp + 0x7c7fbc], al
mov al, byte [ebp + 0x7c7fbc]
test al, al
je 0x43bb10
mov eax, dword [esp + 0x28]
inc eax
push eax
push str.SERVER:_Client__d_has_paused.
jmp 0x43bb1b
mov ecx, dword [esp + 0x28]
inc ecx
push ecx
push str.SERVER:_Client__d_has_resumed.
push 0x7c5e04
call fcn.00496365
add esp, 0xc
push 0x7c5e04
call fcn.00435f80
add esp, 4
mov eax, 0x7c7fbd
mov cl, byte [eax - 2]
test cl, cl
je 0x43bb4d
cmp byte [eax], 0
je 0x43bb65
mov cl, byte [eax - 1]
test cl, cl
jne 0x43bb65
add eax, 0x18
cmp eax, 0x7c8035
jl 0x43bb3a
mov dword [0x7c8120], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
mov dword [0x7c8120], 1
pop ebx
add esp, 0x14
ret