Function at 0x425df0
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 0x425e5a
add eax, 0xffffffff
js 0x425e4b
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + eax*4]
test esi, esi
jne 0x425e2e
sub eax, 1
jns 0x425e13
mov esi, 1
mov eax, esi
shr eax, 5
and esi, 0x1f
jmp 0x425e5c
mov edx, closesocket
xor ecx, ecx
test edx, esi
jne 0x425e41
inc ecx
shr edx, 1
cmp ecx, 0x20
jb 0x425e35
lea esi, [eax + 1]
shl esi, 5
sub esi, ecx
jne 0x425e50
mov esi, 1
mov eax, esi
shr eax, 5
and esi, 0x1f
jmp 0x425e5c
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 0x425eb0
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.00425c50
lea eax, [ebx*4]
push eax
push edi
push dword [ebp - 0x14]
call fcn.0042b1d0
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.004258e0
add esp, 0x18
test esi, esi
jne 0x425f2a
mov esi, 0x1f
jmp 0x425f2b
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 0x425f6b
test esi, esi
jne 0x425f01
cmp dword [ebp - 4], esi
jne 0x426061
cmp dword [ebp + 0x18], 0x2a2a2a2a
jne 0x425f96
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.0042b1d0
add esp, 0xc
jmp 0x42603d
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 0x42601e
test ebx, ebx
je 0x42601e
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 0x425ff0
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 0x425fb0
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.004258e0
add esp, 0x18
mov dword [ebp - 0xc], 0
xor edi, edi
test esi, esi
jne 0x425f01
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], eax
test eax, eax
jne 0x425f01
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret