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

Disassembly:
push 0x24
mov eax, 0x4cecd0
call fcn.0040193b
mov edi, ecx
mov ebx, 0x11000
mov esi, 0x90312
push ebx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
push ebx
push 0
push eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.msvcrt.dll_memset]
add esp, 0x10
mov dword [ebp - 0x24], ebx
and dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
and dword [ebp - 0x14], 0
push 0x64
call fcn.00456ec2
push 0x64
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.00456ec2
mov ebx, dword [ebp - 0x20]
cmp esi, 0x90312
je 0x456685
cmp esi, 0x80090318
je 0x456685
cmp esi, 0x90320
jne 0x45681b
cmp byte [edi + 0x818], 0
jne 0x45669f
xor ecx, ecx
mov dword [ebx + 8], ecx
mov dword [ebx + 4], 2
jmp 0x456734
mov eax, dword [edi + 0x84c]
test eax, eax
je 0x4566cf
push eax
push dword [edi + 0x844]
push dword [ebp - 0x28]
call dword [sym.imp.msvcrt.dll_memcpy]
mov eax, dword [ebp - 0x14]
add esp, 0xc
add eax, dword [edi + 0x84c]
and dword [edi + 0x84c], 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x14]
push 0
push 0x10000
push eax
push dword [edi]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
je 0x456822
cmp esi, 0xffffffff
je 0x456822
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
add ecx, esi
push 2
pop edx
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], ecx
mov dword [edi + 0x82c], ecx
mov dword [edi + 0x834], eax
mov dword [edi + 0x830], edx
mov dword [ebx + 8], ecx
mov dword [ebx + 4], edx
push ecx
mov dword [ebx], ecx
lea eax, [edi + 0x838]
mov dl, byte [edi + 0x818]
lea esi, [edi + 0x824]
mov dword [eax], ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x1c]
push ecx
push eax
xor ecx, ecx
mov dword [edi + 0x840], ebx
test dl, dl
mov dword [edi + 0x83c], 1
mov eax, esi
cmovne eax, ecx
test dl, dl
push eax
push ecx
lea eax, [edi + 0x82c]
cmovne ecx, eax
lea eax, [edi + 0xc]
push ecx
push 0
push 0
push 0x8c11c
push eax
xor eax, eax
test dl, dl
cmovne eax, esi
push eax
lea eax, [edi + 0x81c]
push eax
call dword [sym.imp.Secur32.dll_InitializeSecurityContextW]
mov esi, eax
mov dword [ebp - 0x18], esi
cmp esi, 0x80090318
je 0x456669
and dword [ebp - 0x14], 0
test esi, esi
js 0x45681f
mov al, byte [edi + 0x818]
test al, al
jne 0x4567f5
cmp esi, 0x90312
jne 0x45681f
test al, al
jne 0x4567f5
push dword [ebx]
mov ecx, edi
push dword [ebx + 8]
call fcn.0045511b
push dword [ebx + 8]
mov esi, eax
call dword [sym.imp.Secur32.dll_FreeContextBuffer]
cmp esi, dword [ebx]
jne 0x45681f
mov esi, dword [ebp - 0x18]
mov byte [edi + 0x818], 1
jmp 0x456669
push dword [ebx]
mov ecx, edi
push dword [ebx + 8]
call fcn.0045511b
push dword [ebx + 8]
mov esi, eax
call dword [sym.imp.Secur32.dll_FreeContextBuffer]
cmp esi, dword [ebx]
jne 0x45681f
mov esi, dword [ebp - 0x18]
test esi, esi
jne 0x456669
xor esi, esi
jmp 0x456822
or esi, 0xffffffff
mov byte [ebp - 4], 1
mov edi, dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
test ebx, ebx
je 0x456834
push ebx
call edi
pop ecx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x456843
push eax
call edi
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x456852
push eax
call edi
pop ecx
mov eax, esi
call fcn.00401a13
ret