Function at 0x100050d0
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
test ecx, ecx
je 0x100055a4
test eax, eax
je 0x100055a4
mov esi, dword [esp + 0x1c]
mov edi, 0xc0
lea edx, [edi - 0x40]
cmp esi, edx
jne 0x10005453
mov dword [eax + 0xf0], 0xa
mov edi, dword [ecx]
mov ebx, edi
ror ebx, 8
mov esi, 0xff00ff00
and ebx, esi
rol edi, 8
mov edx, 0xff00ff
and edi, edx
or ebx, edi
mov dword [eax], ebx
mov edi, dword [ecx + 4]
mov ebp, edi
ror ebp, 8
and ebp, esi
rol edi, 8
and edi, edx
or ebp, edi
lea ebx, [eax + 4]
mov dword [ebx], ebp
mov edi, dword [ecx + 8]
mov dword [esp + 0x14], ebx
mov ebx, edi
ror ebx, 8
and ebx, esi
rol edi, 8
and edi, edx
or ebx, edi
mov dword [eax + 8], ebx
mov edi, dword [ecx + 0xc]
mov ebx, edi
ror ebx, 8
and ebx, esi
rol edi, 8
and edi, edx
or ebx, edi
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x80
jne 0x1000527e
mov esi, dword [eax + 0xc]
mov edx, esi
shr edx, 0x10
lea ecx, [ebx + 0x7f]
and edx, ecx
mov edx, dword [edx*4 + 0x10014760]
mov edi, esi
xor edx, 0x1000000
shr edi, 8
and edi, ecx
mov ebp, dword [edi*4 + 0x10014b60]
mov ebx, 0xff000000
and edx, ebx
mov edi, 0xff0000
and ebp, edi
xor edx, ebp
mov ebp, esi
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
and esi, ecx
mov ebp, dword [esi*4 + 0x10013f60]
mov esi, 0xff00
and ebp, esi
xor edx, ebp
xor edx, dword [eax]
mov ebp, dword [esp + 0x14]
mov ebp, dword [ebp]
mov dword [eax + 0x10], edx
xor ebp, edx
mov edx, dword [eax + 8]
xor edx, ebp
mov dword [eax + 0x18], edx
xor edx, dword [eax + 0xc]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], 0x10013ee4
mov ebp, dword [eax + 0x18]
mov edx, ebp
mov dword [esp + 0x10], ebp
add eax, 0x10
shr ebp, 0x10
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10014760]
shr edx, 8
and edx, ecx
mov edx, dword [edx*4 + 0x10014b60]
and ebp, ebx
and edx, edi
xor edx, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10013f60]
and ebp, esi
xor edx, ebp
xor edx, dword [eax - 4]
mov ebp, dword [esp + 0x14]
xor edx, dword [ebp]
add dword [esp + 0x14], 4
mov dword [eax + 0xc], edx
mov ebp, dword [eax]
xor ebp, edx
mov dword [eax + 0x10], ebp
mov edx, dword [eax + 4]
xor edx, ebp
mov dword [eax + 0x14], edx
mov ebp, dword [eax + 8]
xor ebp, edx
cmp dword [esp + 0x14], 0x10013f08
mov dword [eax + 0x18], ebp
jne 0x100051f6
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret
mov edi, dword [ecx + 0x10]
mov ebp, edi
ror ebp, 8
and ebp, esi
rol edi, 8
and edi, edx
or ebp, edi
mov dword [eax + 0x10], ebp
mov edi, dword [ecx + 0x14]
mov ebp, edi
ror ebp, 8
and ebp, esi
rol edi, 8
and edi, edx
or ebp, edi
mov dword [eax + 0x14], ebp
cmp ebx, 0xc0
je 0x10005485
mov edi, dword [ecx + 0x18]
mov ebp, edi
ror ebp, 8
and ebp, esi
rol edi, 8
and edi, edx
or ebp, edi
mov dword [eax + 0x18], ebp
mov ecx, dword [ecx + 0x1c]
mov edi, ecx
ror edi, 8
and edi, esi
rol ecx, 8
and ecx, edx
or edi, ecx
mov dword [eax + 0x1c], edi
cmp ebx, 0x100
jne 0x10005275
mov esi, edi
mov edx, esi
shr edx, 0x10
lea ecx, [ebx - 1]
and edx, ecx
mov edx, dword [edx*4 + 0x10014760]
xor edx, 0x1000000
shr edi, 8
and edi, ecx
mov ebp, dword [edi*4 + 0x10014b60]
mov ebx, 0xff000000
and edx, ebx
mov edi, 0xff0000
and ebp, edi
xor edx, ebp
mov ebp, esi
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
and esi, ecx
mov ebp, dword [esi*4 + 0x10013f60]
mov esi, 0xff00
and ebp, esi
xor edx, ebp
xor edx, dword [eax]
mov ebp, dword [esp + 0x14]
mov ebp, dword [ebp]
xor ebp, edx
mov dword [eax + 0x20], edx
mov edx, dword [eax + 8]
xor edx, ebp
mov dword [eax + 0x24], ebp
mov ebp, dword [eax + 0xc]
xor ebp, edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ebp
add eax, 0x30
mov dword [esp + 0x14], 0x10013ee4
mov ebp, dword [eax - 4]
mov edx, ebp
mov dword [esp + 0x10], ebp
shr ebp, 8
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10013f60]
and ebp, esi
shr edx, 0x10
and edx, ecx
mov edx, dword [edx*4 + 0x10014b60]
and edx, edi
xor edx, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
mov ebp, dword [ebp*4 + 0x10014760]
and ebp, ebx
xor edx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ecx
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
xor edx, dword [eax - 0x20]
mov ebp, dword [eax - 0x1c]
xor ebp, edx
mov dword [eax], edx
mov edx, dword [eax - 0x18]
xor edx, ebp
mov dword [eax + 4], ebp
mov ebp, dword [eax - 0x14]
xor ebp, edx
mov dword [eax + 0xc], ebp
mov dword [eax + 8], edx
mov ebp, dword [eax + 0xc]
mov edx, ebp
mov dword [esp + 0x10], ebp
add eax, 0x20
shr ebp, 0x10
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10014760]
shr edx, 8
and edx, ecx
mov edx, dword [edx*4 + 0x10014b60]
and ebp, ebx
and edx, edi
xor edx, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10013f60]
and ebp, esi
xor edx, ebp
xor edx, dword [eax - 0x30]
mov ebp, dword [esp + 0x14]
xor edx, dword [ebp]
add dword [esp + 0x14], 4
mov dword [eax - 0x10], edx
mov ebp, dword [eax - 0x2c]
xor ebp, edx
mov dword [eax - 0xc], ebp
mov edx, dword [eax - 0x28]
xor edx, ebp
mov dword [eax - 8], edx
mov ebp, dword [eax - 0x24]
xor ebp, edx
cmp dword [esp + 0x14], 0x10013efc
mov dword [eax - 4], ebp
jne 0x10005364
jmp 0x10005275
cmp esi, 0x100
jne 0x10005479
cmp esi, edx
je 0x100050fa
xor edx, edx
cmp esi, edi
setne dl
lea edx, [edx + edx + 0xc]
mov dword [eax + 0xf0], edx
jmp 0x10005104
cmp esi, edi
je 0x1000545b
push 0xfffffffffffffffe
pop eax
jmp 0x10005277
mov esi, ebp
mov edx, esi
shr edx, 0x10
mov edi, esi
mov ecx, 0xff
and edx, ecx
mov edx, dword [edx*4 + 0x10014760]
xor edx, 0x1000000
shr edi, 8
and edi, ecx
mov ebp, dword [edi*4 + 0x10014b60]
mov ebx, 0xff000000
and edx, ebx
mov edi, 0xff0000
and ebp, edi
xor edx, ebp
mov ebp, esi
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
and esi, ecx
mov ebp, dword [esi*4 + 0x10013f60]
mov esi, 0xff00
and ebp, esi
xor edx, ebp
xor edx, dword [eax]
mov ebp, dword [esp + 0x14]
mov ebp, dword [ebp]
xor ebp, edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ebp
mov dword [eax + 0x1c], ebp
mov ebp, dword [eax + 0xc]
xor ebp, edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ebp
add eax, 0x28
mov dword [esp + 0x14], 0x10013ee4
mov edx, dword [eax - 0x18]
xor edx, dword [eax - 4]
mov ebp, dword [eax - 0x14]
xor ebp, edx
mov dword [eax + 4], ebp
mov dword [eax], edx
mov ebp, dword [eax + 4]
mov edx, ebp
mov dword [esp + 0x10], ebp
add eax, 0x18
shr ebp, 0x10
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10014760]
shr edx, 8
and edx, ecx
mov edx, dword [edx*4 + 0x10014b60]
and ebp, ebx
and edx, edi
xor edx, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x10014360]
xor edx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ecx
mov ebp, dword [ebp*4 + 0x10013f60]
and ebp, esi
xor edx, ebp
xor edx, dword [eax - 0x28]
mov ebp, dword [esp + 0x14]
xor edx, dword [ebp]
add dword [esp + 0x14], 4
mov dword [eax - 0x10], edx
mov ebp, dword [eax - 0x24]
xor ebp, edx
mov dword [eax - 0xc], ebp
mov edx, dword [eax - 0x20]
xor edx, ebp
mov dword [eax - 8], edx
mov ebp, dword [eax - 0x1c]
xor ebp, edx
cmp dword [esp + 0x14], 0x10013f00
mov dword [eax - 4], ebp
jne 0x1000550b
jmp 0x10005275
or eax, 0xffffffff
jmp 0x10005277