Function at 0x445700
Capabilities:
Decrypt data via sspi
Receive data
Receive data on socket
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
mov eax, dword [0x475d80]
xor eax, esp
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x64]
push ebx
push ebp
mov ebp, dword [esp + 0x68]
push esi
push edi
mov dword [esp + 0x24], eax
xor esi, esi
mov eax, dword [esp + 0x78]
push 0x30
mov dword [esp + 0x18], eax
lea eax, [esp + 0x3c]
push esi
push eax
mov dword [esp + 0x1c], ebp
call sub.VCRUNTIME140.dll_memset
mov ebp, dword [ebp + 0x74]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x18], eax
xor edi, edi
xor ebx, ebx
mov ecx, dword [ebp + 0x18]
add ecx, dword [ebp + 0x14]
add ecx, dword [ebp + 0x10]
mov dword [esp + 0x28], ecx
cmp dword [ebp + 0x34], eax
je 0x4457c0
mov esi, dword [ebp + 0x30]
mov ebx, dword [esp + 0x14]
cmp ebx, esi
cmovb esi, ebx
push esi
push dword [ebp + 0x38]
push dword [esp + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp + 0x30]
add esp, 0xc
mov ecx, dword [ebp + 0x38]
cmp eax, ebx
jbe 0x4457a9
sub eax, ebx
push eax
lea eax, [ecx + ebx]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, esi
sub dword [ebp + 0x30], ebx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00463052
add esp, 0x5c
ret
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xorps xmm0, xmm0
movq qword [ebp + 0x30], xmm0
mov dword [ebp + 0x38], edi
jmp 0x445a58
push ecx
push 1
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ecx, eax
add esp, 8
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x4457f7
push 0x80090300
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00463052
add esp, 0x5c
ret
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x74]
add eax, 0x24
mov dword [esp + 0x1c], eax
cmp dword [eax + 4], ebx
je 0x445844
push dword [eax]
push dword [eax + 8]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
push dword [ecx + 8]
mov dword [esp + 0x28], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [esp + 0x2c]
xorps xmm0, xmm0
add esp, 0x10
movq qword [eax], xmm0
mov dword [eax + 8], ebx
nop dword [eax]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x445854
cmp esi, 0x80090318
jne 0x44587f
mov eax, dword [esp + 0x28]
push 0
sub eax, ecx
push eax
mov eax, dword [esp + 0x28]
add eax, ecx
push eax
push dword [edx + 4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x445a70
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x2c]
push 0
push 0
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], 4
mov dword [esp + 0x48], 1
mov dword [esp + 0x44], ecx
mov eax, dword [eax + 0x74]
push dword [eax + 0xc]
call sub.Secur32.dll_DecryptMessage
mov esi, eax
cmp esi, 0x90317
je 0x445a84
test esi, esi
je 0x4458f8
cmp esi, 0x90321
je 0x4458f8
cmp esi, 0x80090318
je 0x445840
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
or esi, 0xffffffff
jmp 0x445a4e
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x38]
cmp ecx, 1
cmovne eax, edi
mov edi, eax
test ebx, ebx
jne 0x445918
cmp ecx, 5
lea eax, [esp + 0x38]
cmovne eax, ebx
mov ebx, eax
mov ecx, dword [esp + 0x48]
test edi, edi
jne 0x44592c
cmp ecx, 1
lea eax, [esp + 0x44]
cmovne eax, edi
mov edi, eax
test ebx, ebx
jne 0x44593c
cmp ecx, 5
lea eax, [esp + 0x44]
cmovne eax, ebx
mov ebx, eax
mov ecx, dword [esp + 0x54]
test edi, edi
jne 0x445950
cmp ecx, 1
lea eax, [esp + 0x50]
cmovne eax, edi
mov edi, eax
test ebx, ebx
jne 0x445960
cmp ecx, 5
lea eax, [esp + 0x50]
cmovne eax, ebx
mov ebx, eax
mov ecx, dword [esp + 0x60]
test edi, edi
jne 0x445974
cmp ecx, 1
lea eax, [esp + 0x5c]
cmovne eax, edi
mov edi, eax
test ebx, ebx
jne 0x445981
cmp ecx, 5
jne 0x4459ae
lea ebx, [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], 5
mov eax, dword [ebx]
push eax
push 1
mov dword [ecx], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ecx, dword [esp + 0x24]
push dword [ecx]
mov dword [ecx + 8], eax
push dword [ebx + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x14
test edi, edi
jne 0x4459e2
cmp esi, 0x90321
jne 0x445840
push edi
push edi
push dword [esp + 0x18]
call fcn.00445a90
mov esi, eax
add esp, 0xc
test esi, esi
je 0x445840
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea esi, [edi - 2]
jmp 0x445a4e
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov esi, dword [edi]
cmp esi, ebx
cmovb eax, esi
push eax
push dword [edi + 8]
mov dword [esp + 0x1c], eax
push dword [esp + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp esi, ebx
jbe 0x445a4a
sub esi, ebx
mov dword [ebp + 0x34], 1
push esi
push 1
mov dword [ebp + 0x30], esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ecx, eax
add esp, 8
mov dword [ebp + 0x38], ecx
test ecx, ecx
jne 0x445a3a
push 0x80090300
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, 0xfffffffe
jmp 0x445a4e
mov eax, dword [edi + 8]
push esi
add eax, ebx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x14]
push dword [esp + 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x6c]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00463052
add esp, 0x5c
ret
or esi, 0xffffffff
test eax, eax
jne 0x445a4e
push 0x2775
call dword [sym.imp.WS2_32.dll_WSASetLastError]
jmp 0x445a4e
xor esi, esi
jmp 0x445a4e