Function at 0x10004660
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x20]
push ebx
push ebp
push esi
movsx edx, byte [eax]
mov cl, byte [eax + 1]
mov esi, dword [esp + 0x24]
shl edx, 8
and ecx, 0xff
mov ebx, dword [esi]
xor ecx, edx
mov dl, byte [eax + 2]
and edx, 0xff
push edi
movsx edi, byte [eax + 4]
shl ecx, 8
xor ecx, edx
mov dl, byte [eax + 3]
shl ecx, 8
and edx, 0xff
xor ecx, edx
mov dl, byte [eax + 5]
and edx, 0xff
xor ecx, ebx
mov bl, byte [eax + 6]
mov dword [esp + 0x20], ecx
shl edi, 8
xor edx, edi
and ebx, 0xff
shl edx, 8
xor edx, ebx
mov bl, byte [eax + 7]
movsx edi, byte [eax + 8]
shl edx, 8
and ebx, 0xff
xor edx, ebx
mov ebx, dword [esi + 4]
xor edx, ebx
mov bl, byte [eax + 0xa]
mov dword [esp + 0x30], edx
mov dl, byte [eax + 9]
and edx, 0xff
and ebx, 0xff
shl edi, 8
xor edx, edi
shl edx, 8
xor edx, ebx
mov bl, byte [eax + 0xb]
movsx edi, byte [eax + 0xc]
shl edx, 8
and ebx, 0xff
xor edx, ebx
mov ebx, dword [esi + 8]
xor edx, ebx
mov bl, byte [eax + 0xe]
mov dword [esp + 0x18], edx
mov dl, byte [eax + 0xd]
mov al, byte [eax + 0xf]
and edx, 0xff
shl edi, 8
xor edx, edi
and ebx, 0xff
shl edx, 8
xor edx, ebx
and eax, 0xff
shl edx, 8
xor edx, eax
mov eax, dword [esi + 0xc]
xor edx, eax
xor eax, eax
mov al, byte [esp + 0x19]
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [esp + 0x2a]
mov ebx, dword [eax*4 + 0x10011df8]
mov eax, ecx
mov edx, dword [edx*4 + 0x100119f8]
shr eax, 0x18
xor edx, ebx
xor edx, dword [eax*4 + 0x100115f8]
mov eax, dword [esp + 0x30]
mov edi, dword [esi + 0x10]
and eax, 0xff
add esi, 0x20
mov ebx, dword [eax*4 + 0x100121f8]
xor eax, eax
mov al, byte [esp + 0x29]
xor edx, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [esp + 0x22]
mov edi, dword [eax*4 + 0x10011df8]
mov dword [esp + 0x1c], edx
mov eax, dword [ebx*4 + 0x100119f8]
xor edi, eax
mov eax, dword [esp + 0x30]
shr eax, 0x18
mov ebx, dword [eax*4 + 0x100115f8]
mov eax, dword [esp + 0x18]
and eax, 0xff
xor edi, ebx
mov ebx, dword [eax*4 + 0x100121f8]
xor eax, eax
mov al, byte [esp + 0x32]
xor edi, ebx
mov ebx, dword [esi - 0xc]
mov eax, dword [eax*4 + 0x100119f8]
xor edi, ebx
xor ebx, ebx
mov dword [esp + 0x14], edi
mov bl, ch
mov ecx, dword [ebx*4 + 0x10011df8]
xor eax, ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x100115f8]
mov ecx, dword [esp + 0x28]
and ecx, 0xff
xor eax, edi
mov edi, dword [ecx*4 + 0x100121f8]
mov ecx, dword [esi - 8]
xor eax, edi
mov edi, dword [esi - 4]
xor eax, ecx
xor ecx, ecx
mov cl, byte [esp + 0x31]
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esp + 0x1a]
mov ebx, dword [ecx*4 + 0x10011df8]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax*4 + 0x100119f8]
shr ecx, 0x18
xor eax, ebx
mov ebx, dword [ecx*4 + 0x100115f8]
mov ecx, dword [esp + 0x20]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ecx*4 + 0x100121f8]
mov ecx, dword [esp + 0x2c]
xor eax, ebx
shr ecx, 1
xor eax, edi
dec ecx
mov dword [esp + 0x28], eax
je 0x10004ab0
mov edi, ecx
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x11]
mov al, byte [esp + 0x2a]
mov ebx, dword [ecx*4 + 0x10011df8]
mov eax, dword [eax*4 + 0x100119f8]
mov ecx, edx
xor eax, ebx
shr ecx, 0x18
mov ebx, dword [ecx*4 + 0x100115f8]
mov ecx, dword [esp + 0x14]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ecx*4 + 0x100121f8]
mov ecx, dword [esi]
xor eax, ebx
xor ebx, ebx
mov bl, byte [esp + 0x1e]
xor eax, ecx
xor ecx, ecx
mov dword [esp + 0x20], eax
mov cl, byte [esp + 0x29]
mov ebp, dword [ebx*4 + 0x100119f8]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ecx*4 + 0x10011df8]
shr ebx, 0x18
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x100115f8]
mov ebx, dword [esp + 0x10]
and ebx, 0xff
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x100121f8]
mov ebx, dword [esi + 4]
xor ecx, ebp
mov ebp, dword [esi + 8]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov cl, byte [esp + 0x16]
mov bl, dh
mov ecx, dword [ecx*4 + 0x100119f8]
mov edx, dword [ebx*4 + 0x10011df8]
xor ecx, edx
mov edx, dword [esp + 0x10]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x100115f8]
mov edx, dword [esp + 0x28]
and edx, 0xff
xor ecx, ebx
mov ebx, dword [edx*4 + 0x100121f8]
xor edx, edx
mov dl, byte [esp + 0x15]
xor ecx, ebx
xor ecx, ebp
mov ebx, dword [edx*4 + 0x10011df8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov cl, byte [esp + 0x12]
shr edx, 0x18
mov ecx, dword [ecx*4 + 0x100119f8]
xor ecx, ebx
mov ebx, dword [edx*4 + 0x100115f8]
mov edx, dword [esp + 0x1c]
xor ecx, ebx
and edx, 0xff
mov ebx, dword [edx*4 + 0x100121f8]
mov edx, dword [esi + 0xc]
xor ecx, ebx
xor ebx, ebx
xor ecx, edx
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x2a]
mov bl, ch
mov edx, dword [edx*4 + 0x100119f8]
mov ebp, dword [ebx*4 + 0x10011df8]
xor edx, ebp
mov ebx, eax
shr ebx, 0x18
add esi, 0x20
mov ebp, dword [ebx*4 + 0x100115f8]
mov ebx, dword [esp + 0x30]
and ebx, 0xff
xor edx, ebp
mov ebp, dword [ebx*4 + 0x100121f8]
mov ebx, dword [esi - 0x10]
xor edx, ebp
xor edx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x22]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dl, byte [esp + 0x29]
mov ebp, dword [ebx*4 + 0x100119f8]
mov ebx, dword [esp + 0x30]
mov edx, dword [edx*4 + 0x10011df8]
shr ebx, 0x18
xor edx, ebp
mov ebp, dword [ebx*4 + 0x100115f8]
mov ebx, ecx
and ebx, 0xff
xor edx, ebp
shr ecx, 0x18
mov ebp, dword [ebx*4 + 0x100121f8]
mov ebx, dword [esi - 0xc]
xor edx, ebp
xor edx, ebx
xor ebx, ebx
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, byte [esp + 0x32]
mov bl, ah
and eax, 0xff
mov ebp, dword [ebx*4 + 0x10011df8]
mov ebx, dword [ecx*4 + 0x100115f8]
mov edx, dword [edx*4 + 0x100119f8]
mov ecx, dword [esp + 0x28]
xor edx, ebp
and ecx, 0xff
xor edx, ebx
mov ebx, dword [ecx*4 + 0x100121f8]
mov ecx, dword [esi - 8]
xor edx, ebx
xor edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x31]
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [esp + 0x1a]
mov ebx, dword [ecx*4 + 0x10011df8]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx*4 + 0x100119f8]
shr ecx, 0x18
xor edx, ebx
mov ebx, dword [ecx*4 + 0x100115f8]
mov ecx, dword [eax*4 + 0x100121f8]
xor edx, ebx
mov ebx, dword [esi - 4]
xor edx, ecx
xor edx, ebx
dec edi
mov eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
jne 0x10004872
xor ecx, ecx
mov ebx, dword [esi]
mov cl, byte [esp + 0x2a]
mov ecx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
and ecx, 0xff0000
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov cl, byte [esp + 0x11]
mov edi, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ecx, dword [esp + 0x30]
and edi, 0xff00
xor ecx, edi
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + str.RRRR_t_t_t_tjjjj]
and edi, 0xff000000
xor ecx, edi
mov edi, dword [esp + 0x14]
and edi, 0xff
mov edi, dword [edi*4 + str.RRRR_t_t_t_tjjjj]
and edi, 0xff
xor ecx, edi
mov edi, dword [esp + 0x34]
xor ecx, ebx
mov ebx, ecx
mov byte [edi + 3], cl
shr ebx, 0x18
mov byte [edi], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [edi + 1], bl
mov ebx, ecx
shr ebx, 8
mov byte [edi + 2], bl
xor ecx, ecx
mov cl, byte [esp + 0x1e]
xor ebx, ebx
mov bl, ah
mov ecx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ecx, 0xff0000
and ebx, 0xff00
xor ecx, ebx
mov ebx, dword [esp + 0x14]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ebx, 0xff000000
xor ecx, ebx
mov ebx, dword [esp + 0x10]
and ebx, 0xff
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ebx, 0xff
xor ecx, ebx
mov ebx, dword [esi + 4]
xor ecx, ebx
mov ebx, ecx
mov byte [edi + 7], cl
shr ebx, 0x18
mov byte [edi + 4], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [edi + 5], bl
mov ebx, ecx
shr ebx, 8
mov byte [edi + 6], bl
xor ecx, ecx
mov cl, byte [esp + 0x16]
xor ebx, ebx
mov bl, dh
mov ecx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ecx, 0xff0000
and ebx, 0xff00
xor ecx, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ebx, 0xff000000
xor ecx, ebx
mov ebx, eax
and ebx, 0xff
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and edx, 0xff
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 + 0x12]
shr ebx, 8
mov byte [edi + 0xa], bl
mov ecx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
and ecx, 0xff0000
mov edx, dword [edx*4 + str.RRRR_t_t_t_tjjjj]
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov cl, byte [esp + 0x15]
mov ebp, dword [esi + 0xc]
shr eax, 0x18
mov ebx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax*4 + str.RRRR_t_t_t_tjjjj]
and ebx, 0xff00
xor ecx, ebx
and eax, 0xff000000
xor ecx, eax
and edx, 0xff
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, 0x14
ret