Function at 0x437770
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d295
mov eax, dword fs:[0]
push eax
mov eax, 0x1530
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x153c], ebx
mov dword [ebp - 0x1538], ebx
mov dword [ebp - 0x152c], 0
push ecx
push str.CheckPrinterDriverInstall::GetMIBVersion
lea ecx, [ebp - 0x1394]
mov dword [ebp - 4], 1
call fcn.0040a480
mov byte [ebp - 4], 2
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x437817
test byte [ecx + 0x1c], 1
je 0x437817
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5caa20
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x74
call fcn.00401840
add esp, 0xc
push 0x1000
lea eax, [ebp - 0x134c]
push 0
push eax
call fcn.00571c00
add esp, 0xc
mov dword [ebp - 0x40], 0x1022e30
mov dword [ebp - 0x3c], 0x630a0400
mov dword [ebp - 0x38], 0x6e6f6e61
mov dword [ebp - 0x34], 0x6573755f
mov dword [ebp - 0x30], 0x21da072
mov dword [ebp - 0x2c], 0x1020001
mov dword [ebp - 0x28], 0x10200
mov dword [ebp - 0x24], 0x10301230
mov dword [ebp - 0x20], 0x62b0c06
mov dword [ebp - 0x1c], 0x8c010401
mov dword [ebp - 0x18], 0x1010142
mov dword [ebp - 0x14], 0x50004
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x437ae6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
lea eax, [ebp - 0x1524]
mov dword [ebp - 0x152c], 1
push eax
push 0x101
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov edi, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0xffffffff
jne 0x4378c3
call edi
lea eax, [ebp - 0x1528]
mov dword [ebp - 0x1528], 0
push eax
push dword [ebp + 0xc]
push 2
call dword [sym.imp.WS2_32.dll_InetPtonW]
or esi, 0xffffffff
cmp eax, 1
mov eax, 2
cmove esi, dword [ebp - 0x1528]
push 0xa1
mov word [ebp - 0x135c], ax
call dword [sym.imp.WSOCK32.dll_htons]
push 0
push 2
push 2
mov word [ebp - 0x135a], ax
mov dword [ebp - 0x1358], esi
call dword [sym.imp.WSOCK32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
je 0x437a36
push 0x10
lea eax, [ebp - 0x135c]
push eax
push esi
call dword [sym.imp.WSOCK32.dll_connect]
cmp eax, 0xffffffff
jne 0x43793e
call edi
movzx ebx, byte [ebp - 0x3f]
lea eax, [ebp - 0x40]
push 0
push 0x30
push eax
push esi
mov dword [ebp - 0x1530], ebx
call dword [sym.imp.WSOCK32.dll_send]
cmp eax, 0xffffffff
jne 0x43795e
call edi
push 0
push 0x1000
lea eax, [ebp - 0x134c]
push eax
push esi
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
jne 0x43797a
call edi
mov bl, byte [ebp + ebx - 0x134b]
movsx eax, bl
push 0x104
mov dword [ebp - 0x1534], eax
lea eax, [ebp - 0x144]
push 0
push eax
call fcn.00571c00
add esp, 0xc
test bl, bl
jle 0x4379c8
mov eax, dword [ebp - 0x1530]
lea ecx, [ebp - 0x134a]
push dword [ebp - 0x1534]
add eax, ecx
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.00571100
add esp, 0xc
push 0x208
lea eax, [ebp - 0x34c]
push 0
push eax
call fcn.00571c00
add esp, 0xc
lea eax, [ebp - 0x34c]
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x144]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [ebp - 0x34c]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x437a10
mov ebx, dword [ebp - 0x1538]
lea eax, [ebp - 0x34c]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, ebx
call fcn.00403bb0
jmp 0x437a38
call edi
push esi
call dword [sym.imp.WSOCK32.dll_closesocket]
cmp eax, 0xffffffff
jne 0x437a46
call edi
call dword [sym.imp.WSOCK32.dll_WSACleanup]
cmp eax, 0xffffffff
jne 0x437a53
call edi
mov byte [ebp - 0x1390], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x437a9c
test byte [ecx + 0x1c], 1
je 0x437a9c
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebx]
cmovae eax, dword [0x608f54]
mov edx, 0x5caa20
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x75
call fcn.00405920
add esp, 0x10
lea ecx, [ebp - 0x1394]
call fcn.0040a570
mov byte [ebp - 4], 0
or ecx, 0xffffffff
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x437ac6
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.004013a0
int3