Function at 0x425dc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
cmp dword [ebp + 0x18], 0x2a2a2a2a
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], ecx
jne 0x425e2a
add eax, 0xffffffff
js 0x425e1b
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + eax*4]
test esi, esi
jne 0x425dfe
sub eax, 1
jns 0x425de3
mov esi, 1
mov eax, esi
shr eax, 5
and esi, 0x1f
jmp 0x425e2c
mov edx, closesocket
xor ecx, ecx
test edx, esi
jne 0x425e11
inc ecx
shr edx, 1
cmp ecx, 0x20
jb 0x425e05
lea esi, [eax + 1]
shl esi, 5
sub esi, ecx
jne 0x425e20
mov esi, 1
mov eax, esi
shr eax, 5
and esi, 0x1f
jmp 0x425e2c
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov ecx, 0x4f
mov edi, dword [ebp + 8]
mov edx, 0x20
mov dword [ebp - 4], eax
shl eax, 5
cmp ecx, eax
mov eax, 1
mov edi, dword [edi]
sbb ecx, ecx
and ecx, 2
inc ecx
shl eax, cl
mov dword [ebp - 0x20], eax
imul eax, ebx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp + 0x20]
lea eax, [ecx + eax*4]
lea ecx, [ebx*4]
mov dword [ebp - 8], eax
lea ebx, [edi*2 + 4]
add eax, ecx
and ebx, 8
mov dword [ebp - 0x10], eax
add ebx, edi
nop dword [eax]
mov eax, edi
shr edx, 1
imul eax, ebx
mov ecx, 2
sub ecx, eax
imul ebx, ecx
cmp edx, 8
jae 0x425e80
push dword [ebp - 0x10]
mov edi, dword [ebp + 0x20]
neg ebx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
push edi
push dword [ebp - 0x20]
mov dword [ebp - 0x28], ebx
push dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.00425c20
lea eax, [ebx*4]
push eax
push edi
push dword [ebp - 0x14]
call fcn.0042b1a0
add esp, 0x24
xor edi, edi
mov dword [ebp - 0xc], edi
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov edx, eax
push dword [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x1c], esi
push ebx
push dword [ebp + 8]
push ebx
push eax
call fcn.004258b0
add esp, 0x18
test esi, esi
jne 0x425efa
mov esi, 0x1f
jmp 0x425efb
dec esi
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], esi
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], eax
inc edi
mov dword [ebp - 0x34], eax
mov edx, dword [ecx + eax*4]
mov ecx, esi
mov eax, dword [ebp - 0xc]
shr edx, cl
add eax, eax
and edx, 1
or eax, edx
mov dword [ebp - 0xc], eax
cmp edi, dword [ebp - 0x2c]
je 0x425f3b
test esi, esi
jne 0x425ed1
cmp dword [ebp - 4], esi
jne 0x426031
cmp dword [ebp + 0x18], 0x2a2a2a2a
jne 0x425f66
imul eax, ebx
lea ecx, [ebx*4]
push ecx
mov ecx, dword [ebp + 0x20]
lea eax, [ecx + eax*4]
push eax
push dword [ebp - 8]
call fcn.0042b1a0
add esp, 0xc
jmp 0x42600d
mov edx, dword [ebp + 0x20]
xor ecx, ecx
mov esi, dword [ebp - 8]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], ecx
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [0x44f640]
xor eax, ecx
mov ecx, dword [0x44f640]
xor ecx, eax
mov eax, dword [0x44f640]
xor ecx, dword [ebp - 0xc]
xor eax, ecx
mov edi, eax
neg eax
shr edi, 1
neg edi
or edi, eax
shr edi, 0x1f
dec edi
cmp esi, edx
je 0x425fee
test ebx, ebx
je 0x425fee
mov ecx, edx
mov eax, esi
sub ecx, esi
mov dword [ebp - 0x30], ecx
nop dword [eax + eax]
mov esi, dword [0x44f640]
lea eax, [eax + 4]
mov edx, dword [ecx + eax - 4]
xor esi, edi
mov ecx, dword [eax - 4]
not esi
and ecx, esi
and edx, edi
or edx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax - 4], edx
sub ebx, 1
jne 0x425fc0
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
lea eax, [ebx*4]
inc ecx
add edx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
cmp ecx, dword [ebp - 0x20]
jb 0x425f80
mov esi, dword [ebp - 0x24]
push dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov ecx, edx
push dword [ebp - 0x28]
push ebx
push dword [ebp + 8]
push ebx
push dword [ebp - 8]
call fcn.004258b0
add esp, 0x18
mov dword [ebp - 0xc], 0
xor edi, edi
test esi, esi
jne 0x425ed1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], eax
test eax, eax
jne 0x425ed1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret