Function at 0x63e730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp byte [0x7eaba0], 0
je 0x63e745
xor eax, eax
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
not eax
add edx, esi
push edi
mov dword [ebp - 0x10], edx
lea ecx, [esi + 3]
and ecx, 0xfffffffc
cmp ecx, edx
ja 0x63e78c
xor edi, edi
mov ebx, ecx
sub ebx, esi
cmp esi, ecx
cmova ebx, edi
test ebx, ebx
je 0x63e78c
movzx ecx, byte [esi]
inc edi
movzx edx, al
inc esi
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x7251a0]
cmp edi, ebx
jne 0x63e771
mov edx, dword [ebp - 0x10]
mov ecx, edx
sub ecx, esi
cmp ecx, 0x10
jl 0x63eb0a
movzx ebx, byte [esi + 3]
movzx ecx, byte [esi + 2]
shl ebx, 8
or ebx, ecx
movzx ecx, byte [esi + 1]
shl ebx, 8
or ebx, ecx
movzx ecx, byte [esi]
shl ebx, 8
or ebx, ecx
movzx ecx, byte [esi + 7]
shl ecx, 8
xor ebx, eax
movzx eax, byte [esi + 6]
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xa]
mov dword [ebp - 4], ecx
movzx ecx, byte [esi + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xf]
mov dword [ebp - 8], ecx
movzx ecx, byte [esi + 0xe]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0xd]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0xc]
shl eax, 8
add esi, 0x10
or eax, ecx
mov ecx, edx
sub ecx, esi
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
jl 0x63e9b7
lea edi, [esi + 6]
mov dword [ebp - 0xc], edi
movzx edx, byte [edi - 3]
movzx ecx, byte [edi - 4]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi - 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi]
shl edx, 8
or edx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7259a0]
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x725da0]
mov ecx, ebx
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7255a0]
movzx ecx, bl
xor edx, dword [ecx*4 + 0x7261a0]
movzx ecx, byte [edi]
mov ebx, edx
movzx edx, byte [edi + 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi - 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi - 2]
mov edi, dword [ebp - 4]
shl edx, 8
or edx, ecx
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7259a0]
mov ecx, edi
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x725da0]
mov ecx, edi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7255a0]
mov ecx, edi
mov edi, dword [ebp - 0xc]
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7261a0]
movzx ecx, byte [edi + 4]
mov dword [ebp - 4], edx
movzx edx, byte [edi + 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 3]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 2]
mov edi, dword [ebp - 8]
shl edx, 8
or edx, ecx
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7259a0]
mov ecx, edi
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x725da0]
mov ecx, edi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7255a0]
mov ecx, edi
mov edi, dword [ebp - 0xc]
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7261a0]
movzx ecx, byte [edi + 8]
mov dword [ebp - 8], edx
movzx edx, byte [edi + 9]
shl edx, 8
or edx, ecx
add esi, 0x10
movzx ecx, byte [edi + 7]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 6]
shl edx, 8
add edi, 0x10
or edx, ecx
mov dword [ebp - 0xc], edi
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7259a0]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x725da0]
mov ecx, eax
shr ecx, 0x18
movzx eax, al
xor edx, dword [ecx*4 + 0x7255a0]
mov ecx, dword [ebp - 0x14]
xor edx, dword [eax*4 + 0x7261a0]
sub ecx, 0x10
mov dword [ebp - 0x14], ecx
mov eax, edx
cmp ecx, 0x10
jge 0x63e835
mov edx, dword [ebp - 0x10]
mov edi, edx
sub edi, esi
cmp edi, 4
jl 0x63ea2b
movzx edx, byte [esi + 3]
sub edi, 4
movzx ecx, byte [esi + 2]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi + 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi]
shl edx, 8
add esi, 4
or edx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7259a0]
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x725da0]
mov ecx, ebx
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7255a0]
movzx ecx, bl
mov ebx, dword [ebp - 4]
xor edx, dword [ecx*4 + 0x7261a0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, edx
mov dword [ebp - 4], ecx
cmp edi, 4
jge 0x63e9c0
movzx ecx, bl
shr ebx, 8
mov edx, dword [ebp - 4]
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
xor edx, ebx
mov ebx, dword [ebp - 8]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x7251a0]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x7251a0]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x7251a0]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x7251a0]
xor ebx, edx
mov edx, dword [ebp - 0x10]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x7251a0]
xor eax, ebx
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x7251a0]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x7251a0]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x7251a0]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x7251a0]
mov ebx, edx
xor ecx, ecx
sub ebx, esi
xor edi, edi
cmp esi, edx
cmova ebx, ecx
test ebx, ebx
je 0x63eb3a
nop dword [eax + eax]
movzx ecx, byte [esi]
lea esi, [esi + 1]
movzx edx, al
inc edi
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x7251a0]
cmp edi, ebx
jne 0x63eb20
pop edi
pop esi
not eax
pop ebx
mov esp, ebp
pop ebp
ret