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

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
push edi
push 0
push 0
push dword [0x4f99e8]
mov ebx, ecx
mov dword [esp + 0x24], 0
push dword [ebx + 0x10]
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
lea eax, [esp + 0x18]
push eax
push 0x8004667e
push dword [ebx + 0x10]
call dword [sym.imp.WSOCK32.dll_ioctlsocket]
lea ebp, [ebx + 0x18]
mov edi, dword [sym.imp.WSOCK32.dll_recv]
xor esi, esi
mov eax, dword [ebx + 0x20]
cmp esi, eax
jae 0x4079ee
mov ecx, dword [ebp]
nop dword [eax]
cmp byte [ecx + esi], 0
je 0x407a2e
mov eax, dword [ebx + 0x20]
inc esi
cmp esi, eax
jb 0x4079e0
cmp eax, dword [ebx + 0x1c]
jne 0x407a0f
mov eax, dword [ebp + 4]
test eax, eax
je 0x4079fe
add eax, eax
jmp 0x407a03
mov eax, 0x800
push eax
mov ecx, ebp
call fcn.0040c8c0
test eax, eax
jne 0x407a34
mov eax, dword [ebx + 0x1c]
sub eax, dword [ebx + 0x20]
push 0
push eax
mov eax, dword [ebp]
add eax, dword [ebx + 0x20]
push eax
push dword [ebx + 0x10]
call edi
cmp eax, 0xffffffff
je 0x407a34
add dword [ebx + 0x20], eax
jmp 0x4079d2
mov dword [esp + 0x1c], esi
jmp 0x407a48
mov ecx, str.An_internal_error_has_occurred_in_the_debugger_engine._nContinue_running_the_script_without_the_debugger_
call fcn.0040bff0
mov esi, eax
test esi, esi
jne 0x407c44
mov ebp, dword [ebp]
push 0x20
push ebp
mov dword [esp + 0x1c], ebp
call dword [sym.imp.VCRUNTIME140.dll_strchr]
add esp, 8
xor edi, edi
mov ecx, 0x4ce18e
mov dword [esp + 0x10], ecx
test eax, eax
je 0x407c6a
lea esi, [eax + 1]
mov byte [eax], 0
mov al, byte [esi]
test al, al
je 0x407c71
nop
mov edx, edi
cmp edi, 0x10
je 0x407b7f
cmp al, 0x2d
jne 0x407b7f
mov al, byte [esi + 1]
inc esi
test al, al
je 0x407b7f
cmp byte [esi + 1], 0x20
jne 0x407aae
cmp byte [esi + 2], 0x2d
je 0x407aae
inc esi
mov byte [esi], al
mov dword [esp + edi*4 + 0x20], esi
inc edi
cmp al, 0x69
je 0x407abf
cmp al, 0x2d
je 0x407c75
cmp al, 0x69
lea ebp, [esi + 1]
cmovne ebp, dword [esp + 0x10]
cmovne edx, edi
cmp byte [esi + 1], 0x22
lea edi, [esi + 1]
mov dword [esp + 0x10], edx
jne 0x407b2a
mov al, byte [esi + 2]
add esi, 2
cmp al, 0x22
je 0x407b06
mov cl, al
cmp al, 0x5c
jne 0x407aec
mov cl, byte [esi + 1]
lea edx, [esi + 1]
cmovne edx, esi
test cl, cl
je 0x407b6b
mov byte [edi], cl
lea esi, [edx + 1]
mov al, byte [esi]
inc edi
cmp al, 0x22
jne 0x407ae3
mov edx, dword [esp + 0x10]
inc esi
mov byte [edi], 0
cmp byte [esi], 0
je 0x407b74
push 2
push 0x4ce52c
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x407b6b
mov ecx, dword [esp + 0x10]
jmp 0x407b50
push 0x4ce52c
push edi
call dword [sym.imp.VCRUNTIME140.dll_strstr]
mov ecx, dword [esp + 0x18]
mov esi, eax
add esp, 8
mov dword [esp + 0x10], ebp
mov edi, ecx
test esi, esi
je 0x407c75
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
mov dword [esp + 0x10], ebp
mov edi, ecx
test al, al
jne 0x407a80
mov dword [esp + 0x10], ebp
jmp 0x407c79
mov esi, 1
mov ecx, ebp
jmp 0x407b88
mov edi, edx
mov dword [esp + 0x10], ebp
jmp 0x407c79
mov esi, 1
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x30], 0
lea edi, [ebx + 0x28]
mov dword [ebx + 0x34], 0
cmp dword [ebx + 0x10], 0xffffffff
je 0x407c44
push ecx
push dword [esp + 0x18]
push str._response_command__s__transaction_id__e
push edi
call fcn.0040c210
add esp, 0x10
cmp dword [edi + 0xc], 0
jne 0x407be1
mov eax, dword [edi + 8]
mov ecx, edi
add eax, 2
push eax
call fcn.0040c8c0
test eax, eax
jne 0x407be1
mov edx, dword [edi + 8]
mov ecx, dword [edi]
mov ax, word [0x4cef28]
mov word [edx + ecx], ax
add dword [edi + 8], 2
push esi
push str._error_code__i_____response_
push edi
call fcn.0040c210
add esp, 0xc
mov ecx, ebx
call fcn.0040b920
mov esi, eax
test esi, esi
jne 0x407c44
cmp dword [ebx + 0x20], 0
lea ebp, [ebx + 0x18]
je 0x407c2d
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
inc edi
cmp edi, eax
jae 0x407c28
mov ecx, dword [ebp]
sub eax, edi
push eax
lea eax, [ecx + edi]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp + 8]
add esp, 0xc
sub eax, edi
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x38]
cmp eax, 2
je 0x4079ca
test eax, eax
je 0x407c44
mov ecx, ebx
call fcn.00407960
mov eax, dword [ebx + 0x10]
cmp eax, 0xffffffff
je 0x407c60
push 0x21
push 0x408
push dword [0x4f99e8]
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
mov ebp, 0x4ce18e
jmp 0x407c79
mov ebp, ecx
jmp 0x407c79
mov ebp, dword [esp + 0x10]
xor esi, esi
nop dword [eax + eax]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi*8 + 0x4f7018]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407cb0
test dl, dl
je 0x407cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x407c90
xor eax, eax
jmp 0x407cb5
sbb eax, eax
or eax, 1
test eax, eax
je 0x407cc9
inc esi
cmp esi, 0x1a
jne 0x407c80
mov esi, 4
jmp 0x407b84
push ebp
push edi
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
mov eax, dword [esi*8 + 0x4f701c]
call eax
mov esi, eax
test esi, esi
jne 0x407d12
cmp dword [ebx + 0x30], eax
jne 0x407cfc
push ebp
push dword [esp + 0x18]
lea eax, [ebx + 0x28]
push str._response_command__s__transaction_id__e___
push eax
call fcn.0040c210
add esp, 0x10
mov ecx, ebx
call fcn.0040b920
mov esi, eax
test esi, esi
jne 0x407c44
jmp 0x407bfd
cmp esi, 0xffffffff
jne 0x407b84
xor esi, esi
jmp 0x407bfd