Function at 0x412170
Capabilities:
Encode data using xor
Initialize winsock library
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
mov eax, dword [0x43d008]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov dword [ebp - 0x1a0], ecx
jmp 0x41219e
jmp 0x4121b0
jmp 0x4121c2
push 0x10000000
pop dword [0x5d5f1c]
jmp 0x4121db
cmp dword [0x5d5f1c], 0x10000000
je 0x41220d
xorps xmm0, xmm0
movups xmmword [0x439274], xmm0
movups xmmword [0x439264], xmm0
movups xmmword [0x439254], xmm0
movups xmmword [0x439244], xmm0
movups xmmword [0x439234], xmm0
lea eax, [ebp - 0x19c]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x4123ec
mov ebx, dword [ebp - 0x1a0]
mov ecx, ebx
push 0x310c
push 0xd
push 0x43da40
call fcn.004128e0
push eax
mov ecx, ebx
call fcn.00411f20
test al, al
je 0x4123f3
push dword [ebp + 8]
mov ecx, ebx
call fcn.00412040
mov ecx, dword [ebx + 4]
test al, al
je 0x41240a
push 0
push 0x4c
lea eax, [ebx + 0x2d]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0x4c
jne 0x41241f
mov al, byte [ebx + 0x30]
cmp al, byte [ebx + 0x2c]
jne 0x412436
lea edx, [ebx + 0x32]
mov edi, 0xc
add byte [edx - 1], 0xda
movzx ecx, byte [ebx + 0x30]
add byte [edx], 0xda
add cl, 0x25
xor byte [edx - 1], cl
movzx ecx, byte [ebx + 0x30]
add byte [edx + 1], 0xda
add cl, 0x25
xor byte [edx], cl
movzx ecx, byte [ebx + 0x30]
add byte [edx + 2], 0xda
add cl, 0x25
xor byte [edx + 1], cl
movzx ecx, byte [ebx + 0x30]
add byte [edx + 3], 0xda
add cl, 0x25
xor byte [edx + 2], cl
movzx ecx, byte [ebx + 0x30]
add byte [edx + 4], 0xda
add cl, 0x25
xor byte [edx + 3], cl
movzx ecx, byte [ebx + 0x30]
add cl, 0x25
xor byte [edx + 4], cl
add edx, 6
sub edi, 1
jne 0x412291
cmp byte [ebx + 0x32], 1
jne 0x41244d
lea eax, [ebx + 0x35]
mov ecx, 0x5d55c4
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412320
test dl, dl
je 0x41231c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412320
add eax, 2
add ecx, 2
test dl, dl
jne 0x412300
xor eax, eax
jmp 0x412325
sbb eax, eax
or eax, 1
test eax, eax
jne 0x412464
mov ecx, ebx
call fcn.00411df0
test al, al
je 0x41247b
lea ecx, [ebx + 8]
lea eax, [ebx + 0x55]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412362
test dl, dl
je 0x41235e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412362
add eax, 2
add ecx, 2
test dl, dl
jne 0x412342
xor eax, eax
jmp 0x412367
sbb eax, eax
or eax, 1
test eax, eax
jne 0x412492
push eax
mov ecx, ebx
call fcn.004124d0
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebx + 4], 0xffffffff
xorps xmm0, xmm0
movups xmmword [ebx + 8], xmm0
movups xmmword [ebx + 0x18], xmm0
mov dword [ebx + 0x28], 0
movups xmmword [ebx + 0x35], xmm0
movups xmmword [ebx + 0x45], xmm0
movups xmmword [ebx + 0x55], xmm0
movups xmmword [ebx + 0x65], xmm0
mov dword [ebx + 0x75], 0
jmp 0x4123c2
jmp 0x4123d9
mov ecx, dword [ebp - 8]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004163e0
mov esp, ebp
pop ebp
ret 4
push 0
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 1
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
push 2
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 3
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 4
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 5
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 6
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 7
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_closesocket]
push 8
mov dword [ebx + 4], 0xffffffff
call fcn.00411d80
int3