Function at 0x535ccf
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, edi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], ebx
and eax, reloc.WS2_32.dll_getsockopt
jns 0x535d0b
dec eax
or eax, 0xfffffff8
inc eax
jne 0x536050
cmp edi, 0x10
jl 0x536050
mov edi, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
xor ebx, ebx
sub edi, eax
lea eax, [edi + ebx*4]
push dword [ebp + eax - 0x1c]
call fcn.006aefd4
mov dword [ebp + ebx*4 - 0x1c], eax
inc ebx
pop ecx
cmp ebx, 4
jl 0x535d24
push dword [esi]
call fcn.006aefd4
push dword [esi + 4]
mov ebx, eax
call fcn.006aefd4
mov edi, dword [ebp + 0xc]
mov edx, eax
pop ecx
pop ecx
mov esi, 0xe3779b90
mov dword [ebp - 0x20], 0x10
mov ecx, ebx
mov eax, ebx
shr ecx, 5
add ecx, dword [ebp - 0x10]
shl eax, 4
add eax, dword [ebp - 0x14]
xor ecx, eax
lea eax, [esi + ebx]
xor ecx, eax
sub edx, ecx
mov ecx, edx
mov eax, edx
shl ecx, 4
add ecx, dword [ebp - 0x1c]
shr eax, 5
add eax, dword [ebp - 0x18]
xor ecx, eax
lea eax, [esi + edx]
xor ecx, eax
lea esi, [esi + 0x61c88647]
sub ebx, ecx
sub dword [ebp - 0x20], 1
jne 0x535d5f
push ebx
mov dword [ebp - 0x24], edx
call fcn.006aefd4
push dword [ebp - 0x24]
mov ebx, eax
mov dword [ebp - 0xc], ebx
call fcn.006aefd4
mov esi, dword [ebp - 0x28]
pop ecx
pop ecx
movzx ecx, bl
and ecx, 7
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2c]
sub edi, ecx
sub edi, 0xa
cmp dword [eax], edi
jl 0x536050
mov dword [eax], edi
xor eax, eax
test edi, edi
js 0x536052
mov dword [ebp - 0x20], esi
add esi, 8
inc ecx
mov dword [ebp - 0x28], esi
inc eax
mov dword [ebp - 0x24], eax
cmp ecx, 8
jge 0x535df8
inc ecx
inc eax
mov dword [ebp - 0x24], eax
cmp ecx, 8
jne 0x535e9c
push dword [esi]
call fcn.006aefd4
push dword [esi + 4]
mov ebx, eax
call fcn.006aefd4
pop ecx
pop ecx
mov esi, eax
mov dword [ebp - 0x34], 0x10
mov edi, 0xe3779b90
mov edx, ebx
lea eax, [edi + ebx]
shr edx, 5
mov ecx, ebx
add edx, dword [ebp - 0x10]
shl ecx, 4
add ecx, dword [ebp - 0x14]
xor edx, ecx
xor edx, eax
sub esi, edx
mov ecx, esi
mov eax, esi
shl ecx, 4
add ecx, dword [ebp - 0x1c]
shr eax, 5
add eax, dword [ebp - 0x18]
xor ecx, eax
lea eax, [edi + esi]
xor ecx, eax
lea edi, [edi + 0x61c88647]
sub ebx, ecx
sub dword [ebp - 0x34], 1
jne 0x535e1f
push ebx
call fcn.006aefd4
push esi
mov dword [ebp - 0xc], eax
call fcn.006aefd4
mov edi, dword [ebp - 0x20]
xor edx, edx
mov esi, dword [ebp - 0x28]
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
pop ecx
pop ecx
sub edi, eax
lea ecx, [ebp - 0xc]
add ecx, edx
mov al, byte [ecx + edi]
xor byte [ecx], al
inc edx
cmp edx, 8
jl 0x535e7e
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], esi
add esi, 8
mov dword [ebp - 0x28], esi
xor ecx, ecx
cmp eax, 2
jle 0x535deb
mov ebx, dword [ebp - 0x2c]
mov ebx, dword [ebx]
mov dword [ebp - 0x24], ebx
jmp 0x535f70
cmp ecx, 8
jge 0x535ec8
mov edx, dword [ebp - 0x30]
mov al, byte [ebp + ecx - 0xc]
mov byte [edx], al
inc edx
inc ecx
mov dword [ebp - 0x30], edx
dec ebx
jmp 0x535eaa
jne 0x535f70
push dword [esi]
call fcn.006aefd4
push dword [esi + 4]
mov dword [ebp - 0x34], eax
call fcn.006aefd4
mov esi, dword [ebp - 0x34]
mov ebx, eax
pop ecx
pop ecx
mov edi, 0xe3779b90
mov dword [ebp - 0x2c], 0x10
mov edx, esi
lea eax, [edi + esi]
shr edx, 5
mov ecx, esi
add edx, dword [ebp - 0x10]
shl ecx, 4
add ecx, dword [ebp - 0x14]
xor edx, ecx
xor edx, eax
sub ebx, edx
mov ecx, ebx
mov eax, ebx
shl ecx, 4
add ecx, dword [ebp - 0x1c]
shr eax, 5
add eax, dword [ebp - 0x18]
xor ecx, eax
lea eax, [edi + ebx]
xor ecx, eax
lea edi, [edi + 0x61c88647]
sub esi, ecx
sub dword [ebp - 0x2c], 1
jne 0x535ef3
push esi
call fcn.006aefd4
push ebx
mov dword [ebp - 0xc], eax
call fcn.006aefd4
mov edi, dword [ebp - 0x20]
xor edx, edx
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
pop ecx
pop ecx
sub edi, eax
lea ecx, [ebp - 0xc]
add ecx, edx
mov al, byte [ecx + edi]
xor byte [ecx], al
inc edx
cmp edx, 8
jl 0x535f55
mov dword [ebp - 0x20], esi
add esi, 8
mov dword [ebp - 0x28], esi
xor ecx, ecx
test ebx, ebx
jne 0x535eb2
xor edx, edx
inc edx
mov dword [ebp - 0x2c], edx
cmp ecx, 8
jge 0x535f99
mov al, byte [ebp + ecx - 0xc]
inc ecx
test al, al
jne 0x536050
inc edx
mov dword [ebp - 0x2c], edx
jmp 0x536042
jne 0x536042
push dword [esi]
call fcn.006aefd4
push dword [esi + 4]
mov ebx, eax
call fcn.006aefd4
pop ecx
pop ecx
mov esi, eax
mov dword [ebp - 0x30], 0x10
mov edi, 0xe3779b90
mov edx, ebx
lea eax, [edi + ebx]
shr edx, 5
mov ecx, ebx
add edx, dword [ebp - 0x10]
shl ecx, 4
add ecx, dword [ebp - 0x14]
xor edx, ecx
xor edx, eax
sub esi, edx
mov ecx, esi
mov eax, esi
shl ecx, 4
add ecx, dword [ebp - 0x1c]
shr eax, 5
add eax, dword [ebp - 0x18]
xor ecx, eax
lea eax, [edi + esi]
xor ecx, eax
lea edi, [edi + 0x61c88647]
sub ebx, ecx
sub dword [ebp - 0x30], 1
jne 0x535fc0
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x28]
push ebx
call fcn.006aefd4
push dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
call fcn.006aefd4
mov dword [ebp - 8], eax
xor edx, edx
pop ecx
lea eax, [ebp - 0xc]
pop ecx
sub edi, eax
lea ecx, [ebp - 0xc]
add ecx, edx
mov al, byte [ecx + edi]
xor byte [ecx], al
inc edx
cmp edx, 8
jl 0x536024
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], esi
add esi, 8
mov dword [ebp - 0x28], esi
xor ecx, ecx
cmp edx, 7
jle 0x535f7e
xor eax, eax
inc eax
jmp 0x536052
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret