Function at 0x4377a4
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Get socket status
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1680
call fcn.0044e520
push ebx
push edi
lea edi, [esi + 0x4c]
push edi
mov eax, esi
call fcn.00437f9b
test eax, eax
jne 0x4377da
push edi
push esi
call fcn.00437fc3
test eax, eax
je 0x4377da
mov eax, 0x190
jmp 0x437c2d
push 0xfff
lea eax, [esp + 0x28d]
push 0
push eax
mov byte [esp + 0x294], 0
call fcn.0043c260
add esp, 0xc
push dword [esi]
mov ebx, str.TYPE_A_r_n
call fcn.0043761e
pop ecx
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
cmp eax, 0xc8
je 0x437826
mov eax, 0x191
jmp 0x437c2d
push dword [esi]
mov ebx, str.PASV_r_n
call fcn.0043761e
pop ecx
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
cmp eax, 0xe3
je 0x437853
mov eax, 0x192
jmp 0x437c2d
xor ebx, ebx
push 0xff
lea eax, [esp + 0x18d]
push ebx
push eax
mov byte [esp + 0x194], bl
call fcn.0043c260
xor eax, eax
mov byte [esp + 0x34], bl
lea edi, [esp + 0x35]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x44], bl
lea edi, [esp + 0x45]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 0xc
xor edx, edx
stosb byte es:[edi], al
cmp byte [esp + 0x288], bl
je 0x437924
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x188]
lea eax, [esp + 0x288]
mov dword [esp + 0xc], ecx
movsx ecx, byte [eax]
sub ecx, 0x28
je 0x43791c
dec ecx
je 0x437918
sub ecx, 3
jne 0x4378dc
inc edx
cmp edx, 5
mov byte [eax], 0x2e
jge 0x43791f
lea ecx, [edx - 1]
cmp ecx, 3
ja 0x4378f2
mov edi, dword [esp + 0xc]
mov cl, byte [eax]
inc dword [esp + 0xc]
mov byte [edi], cl
jmp 0x43791f
cmp edx, 5
jne 0x437905
mov edi, dword [esp + 0x14]
mov cl, byte [eax]
inc dword [esp + 0x14]
mov byte [edi], cl
jmp 0x43791f
cmp edx, 6
jne 0x43791f
mov edi, dword [esp + 0x10]
mov cl, byte [eax]
inc dword [esp + 0x10]
mov byte [edi], cl
jmp 0x43791f
xor edx, edx
jmp 0x43791f
xor edx, edx
inc edx
inc eax
cmp byte [eax], bl
jne 0x4378c3
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 4], eax
cmp eax, 0xffffffff
jne 0x437942
mov eax, 0x193
jmp 0x437c2d
push 2
pop eax
mov word [esp + 0x18], ax
lea eax, [esp + 0x188]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x28]
push eax
call fcn.0044009e
mov edi, eax
pop ecx
lea eax, [esp + 0x38]
push eax
shl edi, 8
call fcn.0044009e
pop ecx
add eax, edi
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x1a], ax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4379a4
mov eax, 0x194
jmp 0x437c2d
push dword [esi + 0x3c]
lea eax, [esp + 0x28c]
push str.LIST__s_r_n
push eax
call fcn.0043fe3d
add esp, 0xc
push dword [esi]
lea ebx, [esp + 0x28c]
call fcn.0043761e
pop ecx
push dword [esi]
mov edi, ebx
call fcn.004376d4
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
cmp eax, 1
je 0x4379ea
mov eax, 0x195
jmp 0x437c2d
push 0x3ff
xor edi, edi
lea eax, [esp + 0x128d]
push edi
push eax
mov byte [esp + 0x1294], 0
call fcn.0043c260
mov ebx, dword [sym.imp.WS2_32.dll_closesocket]
add esp, 0xc
mov dword [esp + 0xc], edi
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x84], eax
mov eax, dword [esi + 4]
inc edx
mov dword [esp + 0x80], edx
cmp eax, 0xffffffff
je 0x437a55
xor ecx, ecx
cmp dword [esp + ecx*4 + 0x84], eax
je 0x437a3f
inc ecx
cmp ecx, edx
jb 0x437a31
cmp ecx, edx
jne 0x437a55
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], 2
push edi
push edi
push edi
lea eax, [esp + 0x8c]
push eax
push edi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x437ae7
lea eax, [esp + 0x80]
push eax
push dword [esi + 4]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x437ab0
mov eax, dword [esp + 0xc]
push edi
mov ecx, 0x400
sub ecx, eax
push ecx
lea eax, [esp + eax + 0x1290]
push eax
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, edi
jg 0x437aac
push dword [esi + 4]
call ebx
or dword [esi + 4], 0xffffffff
jmp 0x437ab0
add dword [esp + 0xc], eax
lea eax, [esp + 0x80]
push eax
push dword [esi]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x437a14
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
xor edi, edi
cmp eax, 1
je 0x437a14
push dword [esi + 4]
call ebx
or dword [esi + 4], 0xffffffff
cmp dword [esp + 0xc], edi
jle 0x437b19
push dword [esp + 0xc]
lea eax, [esp + 0x128c]
lea ebx, [esp + 0x4c]
call fcn.004385e0
pop ecx
test eax, eax
je 0x437b19
mov eax, dword [esp + 0x5c]
cdq
jmp 0x437bd8
push dword [esi]
mov ebx, str.TYPE_I_r_n
call fcn.0043761e
pop ecx
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
cmp eax, 0xc8
je 0x437b46
mov eax, 0x198
jmp 0x437c2d
push dword [esi + 0x3c]
lea eax, [esp + 0x28c]
push str.SIZE__s_r_n
push eax
call fcn.0043fe3d
add esp, 0xc
push dword [esi]
lea ebx, [esp + 0x28c]
call fcn.0043761e
pop ecx
push dword [esi]
mov edi, ebx
call fcn.004376d4
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
cmp eax, 2
je 0x437b8c
mov eax, 0x197
jmp 0x437c2d
lea eax, [esp + 0x288]
xor edi, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x437b98
sub eax, edx
je 0x437bca
lea eax, [esp + edi + 0x288]
cmp byte [eax], 0x20
je 0x437bca
mov byte [eax], 0x20
lea eax, [esp + 0x288]
inc edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x437bbd
sub eax, ecx
cmp edi, eax
jb 0x437ba3
lea eax, [esp + 0x288]
push eax
call fcn.004400a9
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
push dword [esi]
mov ebx, str.REST_100_r_n
call fcn.0043761e
pop ecx
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
cmp eax, 3
je 0x437c0c
lea eax, [ecx + 0x64]
jmp 0x437c2d
push dword [esi]
mov ebx, str.REST_0_r_n
call fcn.0043761e
pop ecx
push dword [esi]
lea edi, [esp + 0x28c]
call fcn.004376d4
pop ecx
mov eax, 0xce
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 4