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

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x1c]
xor ecx, ecx
xor edx, edx
push ebx
mov cl, byte [eax + 1]
mov dh, byte [eax]
xor edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
push ebp
shl edx, 8
xor edx, ecx
xor ecx, ecx
mov cl, byte [eax + 3]
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
shl edx, 8
mov bl, byte [eax + 5]
xor edx, ecx
mov ecx, dword [esi]
push edi
xor edx, ecx
xor ecx, ecx
mov ch, byte [eax + 4]
mov edi, dword [esi + 4]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 6]
mov dword [esp + 0x24], edx
shl ecx, 8
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 7]
shl ecx, 8
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 9]
xor edi, ecx
xor ecx, ecx
mov dword [esp + 0x2c], edi
mov ch, byte [eax + 8]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xa]
shl ecx, 8
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xb]
shl ecx, 8
xor ecx, ebx
mov ebx, dword [esi + 8]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xd]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov ch, byte [eax + 0xc]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xe]
shl ecx, 8
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xf]
mov eax, dword [esi + 0xc]
shl ecx, 8
xor ecx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x2e]
xor eax, ecx
xor ecx, ecx
mov dword [esp + 0x18], eax
mov cl, byte [esp + 0x15]
mov ebp, dword [ebx*4 + 0x48dba4]
mov ebx, edx
mov ecx, dword [ecx*4 + 0x48dfa4]
shr ebx, 0x18
xor ecx, ebp
xor ecx, dword [ebx*4 + 0x48d7a4]
mov ebx, eax
add esi, 0x20
and ebx, 0xff
shr edi, 0x18
mov ebp, dword [ebx*4 + 0x48e3a4]
mov ebx, dword [esi - 0x10]
xor ecx, ebp
xor ecx, ebx
xor ebx, ebx
mov bl, ah
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx*4 + 0x48dfa4]
xor ebx, ebx
mov bl, byte [esp + 0x16]
mov ebp, dword [ebx*4 + 0x48dba4]
mov ebx, dword [edi*4 + 0x48d7a4]
mov edi, edx
xor eax, ebp
and edi, 0xff
xor eax, ebx
mov ebx, dword [edi*4 + 0x48e3a4]
mov edi, dword [esi - 0xc]
xor eax, ebx
xor ebx, ebx
xor eax, edi
mov bl, dh
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esp + 0x1a]
mov ebp, dword [ebx*4 + 0x48dfa4]
mov edx, dword [eax*4 + 0x48dba4]
mov eax, dword [esp + 0x14]
shr eax, 0x18
xor edx, ebp
mov edi, dword [eax*4 + 0x48d7a4]
mov eax, dword [esp + 0x2c]
xor edx, edi
mov edi, eax
and edi, 0xff
mov ebx, dword [edi*4 + 0x48e3a4]
mov edi, dword [esi - 8]
xor edx, ebx
xor ebx, ebx
mov bl, ah
xor edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
mov eax, dword [ebx*4 + 0x48dfa4]
xor ebx, ebx
mov bl, byte [esp + 0x26]
shr edi, 0x18
mov ebp, dword [ebx*4 + 0x48dba4]
mov ebx, dword [esi - 4]
xor eax, ebp
mov ebp, dword [edi*4 + 0x48d7a4]
mov edi, dword [esp + 0x14]
xor eax, ebp
and edi, 0xff
mov ebp, dword [edi*4 + 0x48e3a4]
mov edi, dword [esp + 0x28]
xor eax, ebp
sar edi, 1
xor eax, ebx
dec edi
mov dword [esp + 0x18], eax
je 0x4654e6
mov dword [esp + 0x28], edi
xor ecx, ecx
xor ebx, ebx
mov bl, byte [esp + 0x12]
mov cl, dh
mov edi, dword [ecx*4 + 0x48dfa4]
mov ecx, dword [ebx*4 + 0x48dba4]
xor edi, ecx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
shr ebx, 0x18
mov ebp, dword [ebx*4 + 0x48d7a4]
mov ebx, eax
and ebx, 0xff
xor edi, ebp
mov ebp, dword [ebx*4 + 0x48e3a4]
mov ebx, dword [esi]
xor edi, ebp
xor edi, ebx
xor ebx, ebx
mov bl, ah
xor eax, eax
mov al, byte [esp + 0x2e]
mov dword [esp + 0x24], edi
mov edi, dword [ebx*4 + 0x48dfa4]
mov ebx, dword [esi + 4]
mov ebp, dword [eax*4 + 0x48dba4]
mov eax, dword [esp + 0x10]
shr eax, 0x18
xor edi, ebp
mov ebp, dword [eax*4 + 0x48d7a4]
mov eax, ecx
and eax, 0xff
xor edi, ebp
mov ebp, dword [eax*4 + 0x48e3a4]
xor eax, eax
mov al, byte [esp + 0x1a]
xor edi, ebp
xor edi, ebx
xor ebx, ebx
mov eax, dword [eax*4 + 0x48dba4]
mov bl, ch
mov dword [esp + 0x2c], edi
mov ecx, dword [ebx*4 + 0x48dfa4]
xor eax, ecx
mov ecx, edx
shr ecx, 0x18
and edx, 0xff
mov ebx, dword [ecx*4 + 0x48d7a4]
mov ecx, dword [esp + 0x10]
xor eax, ebx
mov ebx, ecx
and ebx, 0xff
mov ebp, dword [ebx*4 + 0x48e3a4]
mov ebx, dword [esi + 8]
xor eax, ebp
xor eax, ebx
xor ebx, ebx
mov bl, ch
mov dword [esp + 0x14], eax
mov ecx, dword [ebx*4 + 0x48dfa4]
xor ebx, ebx
mov bl, byte [esp + 0x1e]
mov ebp, dword [ebx*4 + 0x48dba4]
mov ebx, dword [esp + 0x18]
shr ebx, 0x18
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x48d7a4]
mov ebx, dword [esi + 0xc]
xor ecx, ebp
mov ebp, dword [edx*4 + 0x48e3a4]
xor ecx, ebp
xor edx, edx
xor ecx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x2e]
mov dl, ah
mov dword [esp + 0x18], ecx
mov ebp, dword [edx*4 + 0x48dfa4]
mov edx, dword [ebx*4 + 0x48dba4]
xor ebp, edx
mov edx, dword [esp + 0x24]
mov ebx, edx
add esi, 0x20
shr ebx, 0x18
shr edi, 0x18
xor ebp, dword [ebx*4 + 0x48d7a4]
mov ebx, ecx
and ebx, 0xff
xor ebp, dword [ebx*4 + 0x48e3a4]
mov ebx, dword [esi - 0x10]
xor ebp, ebx
xor ebx, ebx
mov bl, ch
xor ecx, ecx
mov cl, byte [esp + 0x16]
mov dword [esp + 0x1c], ebp
mov ebx, dword [ebx*4 + 0x48dfa4]
mov ebp, dword [ecx*4 + 0x48dba4]
mov ecx, dword [edi*4 + 0x48d7a4]
xor ebx, ebp
xor ebx, ecx
mov ecx, edx
and ecx, 0xff
mov edi, dword [ecx*4 + 0x48e3a4]
mov ecx, dword [esi - 0xc]
xor ebx, edi
xor ebx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x1a]
mov dword [esp + 0x10], ebx
xor ebx, ebx
mov bl, dh
mov edx, dword [ecx*4 + 0x48dba4]
mov ecx, eax
and eax, 0xff
mov ebp, dword [ebx*4 + 0x48dfa4]
shr ecx, 0x18
xor edx, ebp
mov ebp, dword [esi - 8]
mov edi, dword [ecx*4 + 0x48d7a4]
mov ecx, dword [esp + 0x2c]
xor edx, edi
mov edi, ecx
and edi, 0xff
mov ebx, dword [edi*4 + 0x48e3a4]
xor edx, ebx
xor ebx, ebx
mov bl, ch
xor ecx, ecx
mov cl, byte [esp + 0x26]
xor edx, ebp
mov edi, dword [ebx*4 + 0x48dfa4]
mov ebp, dword [eax*4 + 0x48e3a4]
mov ebx, dword [ecx*4 + 0x48dba4]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
xor edi, ebx
mov dword [esp + 0x2c], edx
mov ebx, dword [ecx*4 + 0x48d7a4]
mov ecx, dword [esp + 0x28]
xor edi, ebx
mov ebx, dword [esi - 4]
xor edi, ebp
xor edi, ebx
dec ecx
mov eax, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
jne 0x4652b5
mov ecx, dword [esp + 0x1c]
xor ebx, ebx
mov bl, byte [esp + 0x12]
mov edi, dword [ebx*4 + str.ccccwwww]
xor ebx, ebx
mov bl, dh
and edi, 0xff0000
mov dword [esp + 0x24], edi
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor edi, ebx
mov ebx, ecx
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor edi, ebx
mov ebx, eax
and ebx, 0xff
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff
xor edi, ebx
mov ebx, dword [esi]
xor edi, ebx
mov dword [esp + 0x24], edi
mov ebx, edi
mov edi, dword [esp + 0x30]
shr ebx, 0x18
mov byte [edi], bl
mov ebx, dword [esp + 0x24]
shr ebx, 0x10
mov byte [edi + 1], bl
mov ebx, dword [esp + 0x24]
shr ebx, 8
mov byte [edi + 2], bl
mov bl, byte [esp + 0x24]
mov byte [edi + 3], bl
xor ebx, ebx
mov bl, byte [esp + 0x2e]
mov ebp, dword [ebx*4 + str.ccccwwww]
xor ebx, ebx
mov bl, ah
and ebp, 0xff0000
mov dword [esp + 0x2c], ebp
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebp, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor ebp, ebx
mov ebx, ecx
and ebx, 0xff
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff
xor ebp, ebx
mov ebx, dword [esi + 4]
xor ebp, ebx
mov ebx, ebp
mov dword [esp + 0x2c], ebp
shr ebx, 0x18
mov byte [edi + 4], bl
mov ebx, ebp
shr ebx, 0x10
mov byte [edi + 5], bl
mov ebx, ebp
shr ebx, 8
mov byte [edi + 6], bl
mov bl, byte [esp + 0x2c]
mov byte [edi + 7], bl
xor ebx, ebx
mov bl, byte [esp + 0x1a]
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff0000
mov dword [esp + 0x2c], ebx
xor ebx, ebx
mov bl, ch
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ecx, ebx
mov ebx, edx
shr ebx, 0x18
shr eax, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and edx, 0xff
and ebx, 0xff000000
xor ecx, ebx
mov ebx, dword [esp + 0x10]
and ebx, 0xff
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff
xor ecx, ebx
mov ebx, dword [esi + 8]
xor ecx, ebx
mov ebx, ecx
mov byte [edi + 0xb], cl
shr ebx, 0x18
mov byte [edi + 8], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [edi + 9], bl
mov ebx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x1e]
shr ebx, 8
mov byte [edi + 0xa], bl
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff0000
mov eax, dword [eax*4 + str.ccccwwww]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov cl, byte [esp + 0x11]
mov edx, dword [edx*4 + str.ccccwwww]
mov ebp, dword [esi + 0xc]
and eax, 0xff000000
mov ebx, dword [ecx*4 + str.ccccwwww]
mov ecx, dword [esp + 0x2c]
and ebx, 0xff00
and edx, 0xff
xor ecx, ebx
xor ecx, eax
xor ecx, edx
xor ecx, ebp
mov eax, ecx
mov edx, ecx
shr eax, 0x18
mov byte [edi + 0xc], al
mov eax, ecx
shr edx, 0x10
shr eax, 8
mov byte [edi + 0xd], dl
mov byte [edi + 0xe], al
mov byte [edi + 0xf], cl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret