Function at 0x432350
Capabilities:
Connect socket
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0xbc
mov edx, dword [eax + 0x184]
cmp edx, 0x15
ja case.0x43236b.0
jmp dword [edx*4 + 0x482c68]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x2ac]
mov esi, dword [eax + 0x40]
add eax, 0x4c
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
call dword [sym.imp.WS2_32.dll_recv]
sub esp, 0x10
test eax, eax
js 0x432d83
mov ecx, dword [ebx + 0x2ac]
mov edx, dword [ebx + 0x18]
mov edi, dword [ebx + 0x180]
lea ebp, [ecx + 0x4c]
jne 0x432cf0
cmp esi, 1
sbb eax, eax
and eax, 0x646e734a
sub eax, 0x646e7334
mov dword [esp + 0x28], eax
xor esi, esi
test edi, edi
je 0x4323f8
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4323f8
mov dword [esp + 8], eax
mov ecx, 2
mov eax, edi
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00431f90
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4324a0
mov ecx, dword [ebx + 0x2ac]
mov dword [ecx + 0x44], esi
mov edx, ecx
mov eax, ebx
add dword [ebx + 0x16c], esi
add dword [ebx + 0x168], 1
call fcn.00431920
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4326b3
mov eax, dword [ebx + 0x184]
lea edx, [eax + 1]
mov dword [ebx + 0x184], edx
mov eax, dword [ebx + 0x2ac]
test byte [eax + 0x4e], 2
je 0x4326ac
cmp dword [ebx + 0x2c], 2
je 0x4326ac
add edx, 1
mov dword [ebx + 0x184], edx
movzx eax, word [ebx + 0x30]
cmp word [ebx + 0xb0], ax
je 0x432ba1
lea edx, [ebx + 0x18]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
lea edx, [ebx + 0x1c]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
je 0x432b72
lea esi, [esi]
lea esi, [esi]
cmp eax, 0x2714
je 0x4326b3
jl 0x4324be
lea edx, [eax - 0x2733]
cmp edx, 2
mov edx, 0xb
cmovbe eax, edx
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
cmp cl, 5
jne case.0x432e3c.0
cmp byte [eax + 0x4d], 0
jne case.0x432e3c.0
mov dword [ebx + 0x184], 0x11
lea esi, [esi]
cmp word [ebx + 0xb0], 0x17
mov eax, 0xa
mov edx, 0x16
mov dword [ebx + 0x29c], 2
cmovne edx, eax
mov eax, dword [ebx + 0x298]
mov dword [eax + 0x44], edx
mov edx, 0x105
mov word [eax + 0x4c], dx
mov byte [eax + 0x4e], 0
cmp word [ebx + 0xb0], 0x17
je 0x432db0
mov byte [eax + 0x4f], 1
mov edx, dword [ebx + 0xb4]
mov dword [eax + 0x50], edx
movzx edx, word [ebx + 0xb2]
mov word [eax + 0x54], dx
add dword [ebx + 0x184], 1
mov eax, ebx
call fcn.00431e90
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
add dword [ebx + 0x184], 1
mov dword [ebx + 0x2b4], 2
mov dword [ebx + 0x2b0], 0xa
mov eax, ebx
call fcn.00432130
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
mov eax, dword [ebx + 0x2ac]
cmp byte [eax + 0x4c], 5
jne 0x432c64
cmp byte [eax + 0x4e], 0
jne 0x432c64
movzx edx, byte [eax + 0x4d]
test dl, dl
jne 0x432e33
movzx eax, byte [eax + 0x4f]
cmp al, 1
je case.0x43236b.21
cmp al, 4
jne case.0x432e3c.0
add dword [ebx + 0x184], 1
mov dword [ebx + 0x2b4], 2
mov dword [ebx + 0x2b0], 0xc
mov eax, ebx
call fcn.00432130
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
mov eax, dword [ebx + 0x298]
mov esi, dword [ebx + 0x2a0]
mov dword [esp], eax
call fcn.004758b8
mov dword [ebx + 0x298], esi
mov dword [ebx + 0x2a0], 0
mov dword [ebx + 0x29c], 0
mov dword [ebx + 0x2b4], 0
mov dword [ebx + 0x2b0], 0
mov dword [ebx + 0x184], 8
mov eax, ebx
call fcn.00431e90
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
add dword [ebx + 0x184], 1
mov eax, ebx
call fcn.00432130
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
add dword [ebx + 0x184], 1
cmp dword [ebx + 0x2c], 1
je 0x432693
lea edx, [ebx + 0x1c]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
mov edx, dword [ebx + 0x2ac]
mov eax, ebx
call fcn.00431920
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
xor eax, eax
jmp 0x4324be
mov edx, dword [ebx + 0x184]
jmp 0x432362
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0xc]
movzx ecx, word [edx]
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, dword [ecx*4 + 0x484f40]
mov dword [esp + 8], ecx
call dword [sym.imp.WS2_32.dll_connect]
sub esp, 0xc
test eax, eax
jne 0x432c14
mov esi, dword [ebx + 0x180]
mov dword [esp + 0x28], 0
test esi, esi
je 0x432709
mov edx, dword [esi + 4]
test edx, edx
jne 0x432c2f
mov eax, dword [ebx + 0x2a0]
mov esi, dword [ebx + 0x298]
mov dword [esp], eax
call fcn.004758b8
lea eax, [ebx + 0x298]
mov dword [ebx + 0x2a0], esi
mov dword [ebx + 0x298], 0
mov dword [esp], eax
call fcn.0042cd00
mov eax, dword [ebx + 0x298]
mov ecx, 0x105
mov dword [ebx + 0x29c], 2
mov word [eax + 0x4c], cx
mov esi, dword [ebx + 0x10]
mov dword [eax + 0x44], 3
test esi, esi
setne dl
add edx, edx
mov byte [eax + 0x4e], dl
add dword [ebx + 0x184], 1
mov eax, ebx
call fcn.00431e90
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
add dword [ebx + 0x184], 1
mov dword [ebx + 0x2b4], 2
mov dword [ebx + 0x2b0], 2
mov eax, ebx
call fcn.00432130
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
mov eax, dword [ebx + 0x2ac]
mov edx, dword [ebx + 0x10]
movzx ecx, byte [eax + 0x4c]
test edx, edx
je 0x4324d0
cmp cl, 5
jne case.0x432e3c.0
cmp byte [eax + 0x4d], 2
jne case.0x432e3c.0
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x432e7f
mov dword [esp], edx
call sub.msvcrt.dll_strlen
mov edi, eax
lea eax, [eax - 1]
cmp eax, 0xfe
ja 0x432e7f
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov esi, eax
lea eax, [eax - 1]
cmp eax, 0xfe
ja 0x432e7f
mov eax, dword [ebx + 0x298]
lea edx, [edi + 3]
mov dword [ebx + 0x29c], 2
lea ecx, [esi + edx]
mov dword [esp + 0x1c], edx
mov dword [eax + 0x44], ecx
mov ecx, edi
lea ebp, [eax + 0x4c]
add eax, 0x4e
mov byte [eax - 2], 1
mov byte [eax - 1], cl
mov ecx, dword [ebx + 0x10]
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, esi
mov edx, dword [esp + 0x1c]
mov byte [ebp + edi + 2], al
mov eax, dword [ebx + 0x14]
add edx, ebp
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
add dword [ebx + 0x184], 1
lea esi, [esi]
nop
mov eax, ebx
call fcn.00431e90
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
add dword [ebx + 0x184], 1
mov dword [ebx + 0x2b4], 2
mov dword [ebx + 0x2b0], 2
mov eax, ebx
call fcn.00432130
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
mov eax, dword [ebx + 0x2ac]
cmp byte [eax + 0x4c], 1
jne 0x432c64
cmp byte [eax + 0x4d], 0
jne case.0x432e3c.2
add dword [ebx + 0x184], 1
jmp case.0x43236b.17
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0xb0]
mov edi, dword [sym.imp.WS2_32.dll_connect]
jmp 0x432930
mov dword [esp + 4], eax
mov edx, dword [ebx + 0x18]
mov eax, ebp
mov ecx, 2
mov dword [esp], esi
call fcn.0042a840
mov eax, dword [esp + 0x28]
cmp eax, 0x16
je 0x432cb0
cmp eax, 0x6b
jne 0x432d76
mov eax, dword [ebx + 0x18]
movzx edx, word [ebx + 0xb0]
mov dword [esp + 4], esi
mov dword [esp], eax
mov edx, dword [edx*4 + 0x484f40]
mov dword [esp + 8], edx
call edi
sub esp, 0xc
test eax, eax
jne 0x432c80
mov ebp, dword [ebx + 0x180]
mov dword [esp + 0x28], 0
test ebp, ebp
je 0x43296f
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x432901
add dword [ebx + 0x184], 1
mov eax, dword [ebx + 0x298]
mov dword [esp + 0xc], 0
add eax, 0x4c
mov edx, dword [eax - 8]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 8], edx
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_send]
sub esp, 0x10
test eax, eax
js 0x432d40
mov esi, eax
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x298]
mov dword [esp + 0x28], 0
mov edi, dword [ebx + 0x180]
lea ebp, [eax + 0x4c]
mov ecx, edx
test edi, edi
je 0x4329fc
mov eax, dword [edi + 4]
test eax, eax
je 0x4329fa
xor eax, eax
mov dword [esp + 8], eax
mov ecx, 2
mov eax, edi
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00431cf0
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4324a0
mov edx, dword [ebx + 0x18]
mov ecx, edx
add dword [ebx + 0x164], esi
add dword [ebx + 0x160], 1
add dword [ebx + 0x184], 1
jmp 0x432375
lea edx, [ebx + 0x1c]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
lea eax, [ebx + 0x30]
lea ecx, [esp + 0x28]
mov edx, 1
call fcn.00428710
mov dword [ebx + 0x1c], eax
cmp eax, 0xffffffff
je 0x432e20
add dword [ebx + 0x184], 1
jmp 0x4326c3
mov eax, dword [ebx + 0x1c]
movzx edx, word [ebx + 0xb0]
lea edi, [ebx + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov edx, dword [edx*4 + 0x484f40]
mov dword [esp + 8], edx
call dword [sym.imp.WS2_32.dll_connect]
sub esp, 0xc
test eax, eax
jne 0x432df0
mov esi, dword [ebx + 0x180]
mov dword [esp + 0x28], 0
test esi, esi
je 0x432ac9
mov ebp, dword [esi + 4]
test ebp, ebp
je 0x432ac9
mov dword [esp + 4], eax
mov edx, dword [ebx + 0x1c]
mov eax, esi
mov ecx, 1
mov dword [esp], edi
call fcn.0042a840
mov eax, dword [esp + 0x28]
test eax, eax
je 0x432ac9
cmp eax, 0x2748
jne 0x4324a0
add dword [ebx + 0x184], 1
jmp case.0x43236b.8
movzx eax, word [ebx + 0x30]
cmp word [ebx + 0xb0], ax
je 0x432da4
lea edx, [ebx + 0x18]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
lea edx, [ebx + 0x1c]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
lea edi, [ebx + 0x36]
lea edx, [ebx + 0x32]
mov dword [ebx + 0x32], 0
mov dword [ebx + 0xac], 0
and edi, 0xfffffffc
sub edx, edi
lea ecx, [edx + 0x7e]
mov edx, 2
shr ecx, 2
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
movzx eax, word [ebx + 0xb0]
mov word [ebx + 0x30], ax
lea eax, [ebx + 0x30]
call fcn.00428710
mov dword [ebx + 0x18], eax
cmp eax, 0xffffffff
je 0x432e20
mov edx, dword [ebx + 0x184]
add edx, 1
mov dword [ebx + 0x184], edx
jmp 0x4328f3
lea edi, [ebx + 0x36]
lea ecx, [ebx + 0x32]
mov dword [ebx + 0x32], 0
mov dword [ebx + 0xac], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x7e
shr ecx, 2
rep stosd dword es:[edi], eax
movzx eax, word [ebx + 0xb0]
mov word [ebx + 0x30], ax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x2c], pe_nt_image_headers32
cmp eax, 0xffffffff
je 0x432bd5
lea edx, [esp + 0x2c]
lea esi, [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], esi
call dword [sym.imp.WS2_32.dll_getpeername]
sub esp, 0xc
test eax, eax
je 0x432d20
lea edx, [ebx + 0x1c]
mov eax, ebx
call fcn.004289c0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4324a0
lea eax, [ebx + 0x30]
lea ecx, [esp + 0x28]
mov edx, 1
call fcn.00428710
mov dword [ebx + 0x1c], eax
cmp eax, 0xffffffff
je 0x432e20
add dword [ebx + 0x184], 1
jmp 0x432a57
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, dword [ebx + 0x180]
mov dword [esp + 0x28], eax
test esi, esi
je 0x432c4c
mov edi, dword [esi + 4]
test edi, edi
je 0x432c4c
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xc]
mov ecx, 1
mov edx, dword [ebx + 0x1c]
mov dword [esp], eax
mov eax, esi
call fcn.0042a840
mov eax, dword [esp + 0x28]
test eax, eax
je 0x432709
cmp eax, 0x2748
jne 0x4324a0
jmp 0x432709
add esp, 0xbc
mov eax, 0x86
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x81
jmp 0x4324be
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, dword [ebx + 0x180]
mov dword [esp + 0x28], eax
test ebp, ebp
je 0x43291b
mov edx, dword [ebp + 4]
test edx, edx
jne 0x432901
jmp 0x43291b
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 8], 0x10
mov dword [esp], eax
call edi
sub esp, 0xc
jmp 0x43292d
mov dword [esp + 0x28], 0
mov esi, eax
test edi, edi
je 0x432406
mov eax, dword [edi + 4]
test eax, eax
je 0x432406
xor eax, eax
jmp 0x4323dd
mov eax, 0x9b918cc4
jmp 0x4324be
lea edx, [ebx + 0xb0]
mov eax, esi
call fcn.004282e0
test eax, eax
je 0x432639
jmp 0x432bd5
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [ebx + 0x298]
mov dword [esp + 0x28], eax
lea ebp, [edi + 0x4c]
mov edi, dword [ebx + 0x180]
test edi, edi
je 0x432e89
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x18]
xor esi, esi
test ecx, ecx
jne 0x4329d4
jmp 0x4329ef
test eax, eax
jne 0x4324a0
jmp 0x43296f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebx + 0x2ac]
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x28], eax
mov edi, dword [ebx + 0x180]
lea ebp, [ecx + 0x4c]
jmp 0x4323d0
mov eax, dword [ebx + 0x18]
jmp 0x432b64
mov byte [eax + 0x4f], 4
mov esi, dword [ebx + 0xb8]
mov dword [eax + 0x50], esi
mov esi, dword [ebx + 0xbc]
mov dword [eax + 0x54], esi
mov esi, dword [ebx + 0xc0]
mov dword [eax + 0x58], esi
mov ecx, dword [ebx + 0xc4]
mov dword [eax + 0x5c], ecx
movzx edx, word [ebx + 0xb2]
mov word [eax + 0x60], dx
jmp 0x43254b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, dword [ebx + 0x180]
mov dword [esp + 0x28], eax
test esi, esi
je 0x432aba
mov ebp, dword [esi + 4]
test ebp, ebp
jne 0x432aa0
jmp 0x432aba
mov eax, dword [esp + 0x28]
jmp 0x4324a0
mov eax, 0xd
jmp 0x4324be
cmp dl, 8
ja case.0x432e3c.0
jmp dword [edx*4 + 0x482cc0]
mov eax, 0x87
jmp 0x4324be
mov eax, 0x8a
jmp 0x4324be
mov eax, 0x6b
jmp 0x4324be
mov eax, 0x6e
jmp 0x4324be
mov eax, 0x76
jmp 0x4324be
mov eax, 0x74
jmp 0x4324be
mov eax, 0x16
jmp 0x4324be
xor esi, esi
jmp 0x4329ef