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

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
xor edx, edx
xor ecx, ecx
push ebx
mov dl, byte [eax + 1]
mov ch, byte [eax]
xor ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
push ebp
shl ecx, 8
xor ecx, edx
push esi
xor edx, edx
push edi
mov dl, byte [eax + 3]
mov edi, dword [esp + 0x30]
shl ecx, 8
xor ecx, edx
mov edx, dword [edi]
xor ecx, edx
xor edx, edx
mov dh, byte [eax + 4]
xor ebx, ebx
mov bl, byte [eax + 5]
mov esi, dword [edi + 4]
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 6]
mov dword [esp + 0x20], ecx
shl edx, 8
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 7]
shl edx, 8
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 9]
xor esi, edx
xor edx, edx
mov dword [esp + 0x18], esi
mov dh, byte [eax + 8]
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xa]
shl edx, 8
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xb]
shl edx, 8
xor edx, ebx
mov ebx, dword [edi + 8]
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xd]
mov dword [esp + 0x14], edx
xor edx, edx
mov dh, byte [eax + 0xc]
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xe]
shl edx, 8
xor edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xf]
xor eax, eax
shl edx, 8
xor edx, ebx
mov ebx, dword [edi + 0xc]
xor edx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x15]
mov dword [esp + 0x28], edx
mov al, byte [esp + 0x2a]
mov edx, dword [eax*4 + 0x415918]
mov eax, dword [ebx*4 + 0x415d18]
xor edx, eax
mov eax, ecx
shr eax, 0x18
xor edx, dword [eax*4 + 0x415518]
mov eax, esi
and eax, 0xff
shr esi, 0x18
mov ebx, dword [eax*4 + 0x416118]
mov eax, dword [edi + 0x10]
xor edx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x22]
xor edx, eax
xor eax, eax
mov dword [esp + 0x1c], edx
mov al, byte [esp + 0x29]
mov ebp, dword [ebx*4 + 0x415918]
mov ebx, dword [esi*4 + 0x415518]
mov esi, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x415d18]
and esi, 0xff
xor eax, ebp
xor eax, ebx
mov ebx, dword [esi*4 + 0x416118]
mov esi, dword [edi + 0x14]
xor eax, ebx
xor eax, esi
xor ebx, ebx
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esp + 0x1a]
mov bl, ch
mov eax, dword [eax*4 + 0x415918]
mov ecx, dword [ebx*4 + 0x415d18]
xor eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
mov ebx, dword [edi + 0x18]
mov esi, dword [ecx*4 + 0x415518]
mov ecx, dword [esp + 0x28]
and ecx, 0xff
xor eax, esi
mov esi, dword [ecx*4 + 0x416118]
xor ecx, ecx
mov cl, byte [esp + 0x19]
xor eax, esi
xor eax, ebx
mov esi, dword [ecx*4 + 0x415d18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
xor eax, eax
mov al, byte [esp + 0x16]
shr ecx, 0x18
mov eax, dword [eax*4 + 0x415918]
xor eax, esi
mov esi, dword [ecx*4 + 0x415518]
mov ecx, dword [esp + 0x20]
xor eax, esi
and ecx, 0xff
mov esi, dword [ecx*4 + 0x416118]
mov ecx, dword [edi + 0x1c]
xor eax, esi
lea esi, [edi + 0x20]
mov edi, dword [edi + 0xf0]
xor eax, ecx
sar edi, 1
dec edi
mov dword [esp + 0x28], eax
je 0x401ac4
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x31]
mov al, byte [esp + 0x2a]
mov ebx, dword [ecx*4 + 0x415d18]
mov eax, dword [eax*4 + 0x415918]
mov ecx, edx
xor eax, ebx
shr ecx, 0x18
mov ebx, dword [ecx*4 + 0x415518]
mov ecx, dword [esp + 0x10]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ecx*4 + 0x416118]
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 + 0x415918]
mov ebx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x415d18]
shr ebx, 0x18
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x415518]
mov ebx, dword [esp + 0x30]
and ebx, 0xff
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x416118]
mov ebx, dword [esi + 4]
xor ecx, ebp
mov ebp, dword [esi + 8]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov cl, byte [esp + 0x12]
mov bl, dh
mov ecx, dword [ecx*4 + 0x415918]
mov edx, dword [ebx*4 + 0x415d18]
xor ecx, edx
mov edx, dword [esp + 0x30]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x415518]
mov edx, dword [esp + 0x28]
and edx, 0xff
xor ecx, ebx
mov ebx, dword [edx*4 + 0x416118]
xor edx, edx
mov dl, byte [esp + 0x11]
xor ecx, ebx
xor ecx, ebp
mov ebx, dword [edx*4 + 0x415d18]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov cl, byte [esp + 0x32]
shr edx, 0x18
mov ecx, dword [ecx*4 + 0x415918]
xor ecx, ebx
mov ebx, dword [edx*4 + 0x415518]
mov edx, dword [esp + 0x1c]
xor ecx, ebx
and edx, 0xff
mov ebx, dword [edx*4 + 0x416118]
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 + 0x14]
mov dl, byte [esp + 0x2a]
mov bl, ch
mov edx, dword [edx*4 + 0x415918]
mov ebp, dword [ebx*4 + 0x415d18]
xor edx, ebp
mov ebx, eax
shr ebx, 0x18
add esi, 0x20
mov ebp, dword [ebx*4 + 0x415518]
mov ebx, dword [esp + 0x18]
and ebx, 0xff
xor edx, ebp
mov ebp, dword [ebx*4 + 0x416118]
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 + 0x415918]
mov ebx, dword [esp + 0x18]
mov edx, dword [edx*4 + 0x415d18]
shr ebx, 0x18
xor edx, ebp
mov ebp, dword [ebx*4 + 0x415518]
mov ebx, ecx
and ebx, 0xff
xor edx, ebp
shr ecx, 0x18
mov ebp, dword [ebx*4 + 0x416118]
mov ebx, dword [esi - 0xc]
xor edx, ebp
xor edx, ebx
xor ebx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [esp + 0x1a]
mov bl, ah
and eax, 0xff
mov ebp, dword [ebx*4 + 0x415d18]
mov ebx, dword [ecx*4 + 0x415518]
mov edx, dword [edx*4 + 0x415918]
mov ecx, dword [esp + 0x28]
xor edx, ebp
mov ebp, dword [esi - 8]
and ecx, 0xff
xor edx, ebx
mov ebx, dword [ecx*4 + 0x416118]
xor ecx, ecx
mov cl, byte [esp + 0x19]
xor edx, ebx
xor edx, ebp
mov ebp, dword [eax*4 + 0x416118]
mov ebx, dword [ecx*4 + 0x415d18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], edx
xor edx, edx
mov dl, byte [esp + 0x16]
shr ecx, 0x18
mov edx, dword [edx*4 + 0x415918]
xor edx, ebx
mov ebx, dword [ecx*4 + 0x415518]
xor edx, ebx
mov ebx, dword [esi - 4]
xor edx, ebp
xor edx, ebx
dec edi
mov eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
jne 0x401886
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 + 0x28], ecx
xor ecx, ecx
mov cl, byte [esp + 0x31]
mov edi, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ecx, dword [esp + 0x28]
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 + 0x10]
and edi, 0xff
mov edi, dword [edi*4 + str.RRRR_t_t_t_tjjjj]
and edi, 0xff
xor ecx, edi
mov edi, dword [esp + 0x2c]
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 + 0x10]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.RRRR_t_t_t_tjjjj]
and ebx, 0xff000000
xor ecx, ebx
mov ebx, dword [esp + 0x30]
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 + 0x12]
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 + 0x30]
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 + 0x32]
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 + 0x28], ecx
xor ecx, ecx
mov cl, byte [esp + 0x11]
mov ebp, dword [esi + 0xc]
shr eax, 0x18
mov ebx, dword [ecx*4 + str.RRRR_t_t_t_tjjjj]
mov ecx, dword [esp + 0x28]
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