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

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
xor ecx, ecx
xor edx, edx
push ebx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
push ebp
mov ebp, dword [esp + 0x28]
push esi
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
xor ebx, ebx
shl ecx, 8
add ecx, edx
mov edx, dword [ebp]
xor ecx, edx
xor edx, edx
mov dl, byte [eax + 4]
mov bl, byte [eax + 9]
mov esi, edx
xor edx, edx
mov dl, byte [eax + 5]
push edi
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [eax + 6]
mov edi, dword [ebp + 8]
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [eax + 7]
mov dword [esp + 0x20], ecx
shl esi, 8
add esi, edx
mov edx, dword [ebp + 4]
xor esi, edx
xor edx, edx
mov dl, byte [eax + 8]
mov dword [esp + 0x14], esi
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xa]
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xb]
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 0xc]
xor edx, edi
mov edi, ebx
xor ebx, ebx
mov bl, byte [eax + 0xd]
mov dword [esp + 0x18], edx
shl edi, 8
add edi, ebx
xor ebx, ebx
mov bl, byte [eax + 0xe]
shl edi, 8
add edi, ebx
xor ebx, ebx
mov bl, byte [eax + 0xf]
xor eax, eax
shl edi, 8
add edi, ebx
mov ebx, dword [ebp + 0xc]
xor edi, ebx
xor ebx, ebx
mov dword [esp + 0x28], edi
mov bl, dh
mov al, byte [esp + 0x2a]
mov edx, dword [eax*4 + 0x48afa4]
mov eax, dword [ebx*4 + 0x48b3a4]
mov edi, dword [ebp + 0x10]
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov ebx, dword [eax*4 + 0x48aba4]
mov eax, esi
and eax, 0xff
xor edx, ebx
shr esi, 0x18
mov ebx, dword [eax*4 + 0x48b7a4]
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 + 0x48b3a4]
mov dword [esp + 0x1c], edx
mov eax, dword [ebx*4 + 0x48afa4]
mov ebx, dword [ebp + 0x14]
xor edi, eax
mov eax, dword [esi*4 + 0x48aba4]
xor edi, eax
mov eax, dword [esp + 0x18]
and eax, 0xff
mov esi, dword [eax*4 + 0x48b7a4]
xor eax, eax
xor edi, esi
mov al, byte [esp + 0x16]
xor edi, ebx
xor ebx, ebx
mov bl, ch
mov ecx, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x48afa4]
mov dword [esp + 0x10], edi
mov edi, dword [ebx*4 + 0x48b3a4]
shr ecx, 0x18
xor eax, edi
mov ebx, dword [ecx*4 + 0x48aba4]
mov ecx, dword [esp + 0x28]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ebp + 0x18]
mov esi, dword [ecx*4 + 0x48b7a4]
xor ecx, ecx
mov cl, byte [esp + 0x15]
xor eax, esi
xor eax, ebx
mov edi, dword [ecx*4 + 0x48b3a4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
xor eax, eax
mov al, byte [esp + 0x1a]
shr ecx, 0x18
mov eax, dword [eax*4 + 0x48afa4]
mov ebx, dword [ecx*4 + 0x48aba4]
mov ecx, dword [esp + 0x20]
and ecx, 0xff
xor eax, edi
xor eax, ebx
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ecx*4 + 0x48b7a4]
xor eax, esi
lea esi, [ebp + 0x20]
mov ebp, dword [ebp + 0xf0]
xor eax, ebx
sar ebp, 1
dec ebp
mov dword [esp + 0x28], eax
je 0x4243b4
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x31]
mov al, byte [esp + 0x2a]
mov ebx, dword [esi]
mov edi, dword [ecx*4 + 0x48b3a4]
mov eax, dword [eax*4 + 0x48afa4]
mov ecx, edx
xor eax, edi
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x48aba4]
mov ecx, dword [esp + 0x10]
and ecx, 0xff
xor eax, edi
mov edi, dword [ecx*4 + 0x48b7a4]
xor ecx, ecx
mov cl, byte [esp + 0x29]
xor eax, edi
xor eax, ebx
xor ebx, ebx
mov bl, byte [esp + 0x1e]
mov ecx, dword [ecx*4 + 0x48b3a4]
mov dword [esp + 0x20], eax
mov edi, dword [ebx*4 + 0x48afa4]
xor ecx, edi
mov edi, dword [esp + 0x10]
shr edi, 0x18
mov ebx, dword [edi*4 + 0x48aba4]
mov edi, dword [esp + 0x30]
and edi, 0xff
xor ecx, ebx
mov ebx, dword [edi*4 + 0x48b7a4]
mov edi, dword [esi + 4]
xor ecx, ebx
xor ebx, ebx
xor ecx, edi
mov bl, dh
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov cl, byte [esp + 0x12]
mov edx, dword [ebx*4 + 0x48b3a4]
mov ebx, dword [esi + 8]
mov ecx, dword [ecx*4 + 0x48afa4]
xor ecx, edx
mov edx, dword [esp + 0x30]
shr edx, 0x18
mov edi, dword [edx*4 + 0x48aba4]
mov edx, dword [esp + 0x28]
and edx, 0xff
xor ecx, edi
mov edi, dword [edx*4 + 0x48b7a4]
xor edx, edx
mov dl, byte [esp + 0x11]
xor ecx, edi
xor ecx, ebx
mov ebx, dword [esi + 0xc]
mov edi, dword [edx*4 + 0x48b3a4]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov cl, byte [esp + 0x32]
shr edx, 0x18
mov ecx, dword [ecx*4 + 0x48afa4]
xor ecx, edi
mov edi, dword [edx*4 + 0x48aba4]
mov edx, dword [esp + 0x1c]
xor ecx, edi
and edx, 0xff
mov edi, dword [edx*4 + 0x48b7a4]
xor edx, edx
xor ecx, edi
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x2a]
mov bl, ch
mov edx, dword [edx*4 + 0x48afa4]
mov edi, dword [ebx*4 + 0x48b3a4]
xor edx, edi
mov edi, eax
shr edi, 0x18
add esi, 0x20
mov ebx, dword [edi*4 + 0x48aba4]
mov edi, dword [esp + 0x14]
and edi, 0xff
xor edx, ebx
mov ebx, dword [edi*4 + 0x48b7a4]
xor edx, ebx
mov ebx, dword [esi - 0x10]
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 edi, dword [ebx*4 + 0x48afa4]
mov edx, dword [edx*4 + 0x48b3a4]
xor edx, edi
mov edi, dword [esp + 0x14]
shr edi, 0x18
mov ebx, dword [edi*4 + 0x48aba4]
mov edi, ecx
and edi, 0xff
xor edx, ebx
shr ecx, 0x18
mov ebx, dword [edi*4 + 0x48b7a4]
xor edx, ebx
mov ebx, dword [esi - 0xc]
xor edx, ebx
xor ebx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [esp + 0x16]
mov bl, ah
and eax, 0xff
mov edx, dword [edx*4 + 0x48afa4]
mov edi, dword [ebx*4 + 0x48b3a4]
xor edx, edi
mov edi, dword [ecx*4 + 0x48aba4]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esi - 8]
and ecx, 0xff
xor edx, edi
mov edi, dword [ecx*4 + 0x48b7a4]
xor ecx, ecx
mov cl, byte [esp + 0x15]
xor edx, edi
xor edx, ebx
mov ebx, dword [eax*4 + 0x48b7a4]
mov edi, dword [ecx*4 + 0x48b3a4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], edx
xor edx, edx
mov dl, byte [esp + 0x1a]
shr ecx, 0x18
mov edx, dword [edx*4 + 0x48afa4]
xor edx, edi
mov edi, dword [ecx*4 + 0x48aba4]
xor edx, edi
mov edi, dword [esi - 4]
xor edx, ebx
xor edx, edi
dec ebp
mov eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
jne 0x424176
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