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

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x20]
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
xor edx, edx
mov dl, byte [eax + 3]
push esi
mov esi, dword [esp + 0x24]
xor ebx, ebx
shl ecx, 8
mov bl, byte [eax + 5]
xor ecx, edx
mov edx, dword [esi]
push edi
xor ecx, edx
xor edx, edx
mov dh, byte [eax + 4]
mov edi, dword [esi + 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 edi, edx
xor edx, edx
mov dword [esp + 0x18], edi
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 [esi + 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 [esi + 0xc]
xor edx, ebx
xor ebx, ebx
mov bl, byte [esp + 0x15]
mov dword [esp + 0x30], edx
mov al, byte [esp + 0x32]
mov edx, dword [eax*4 + 0x48efa4]
mov eax, dword [ebx*4 + 0x48f3a4]
xor edx, eax
mov eax, ecx
shr eax, 0x18
xor edx, dword [eax*4 + 0x48eba4]
mov eax, edi
add esi, 0x20
and eax, 0xff
shr edi, 0x18
mov ebx, dword [eax*4 + 0x48f7a4]
mov eax, dword [esi - 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 + 0x31]
mov ebp, dword [ebx*4 + 0x48efa4]
mov ebx, dword [edi*4 + 0x48eba4]
mov edi, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x48f3a4]
and edi, 0xff
xor eax, ebp
xor eax, ebx
mov ebx, dword [edi*4 + 0x48f7a4]
mov edi, dword [esi - 0xc]
xor eax, ebx
xor eax, edi
xor ebx, ebx
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esp + 0x1a]
mov bl, ch
mov eax, dword [eax*4 + 0x48efa4]
mov ecx, dword [ebx*4 + 0x48f3a4]
xor eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x48eba4]
mov ecx, dword [esp + 0x30]
and ecx, 0xff
xor eax, edi
mov edi, dword [ecx*4 + 0x48f7a4]
mov ecx, dword [esi - 8]
xor eax, edi
mov edi, dword [esi - 4]
xor eax, ecx
xor ecx, ecx
mov cl, byte [esp + 0x19]
mov dword [esp + 0x28], eax
xor eax, eax
mov al, byte [esp + 0x16]
mov ebx, dword [ecx*4 + 0x48f3a4]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax*4 + 0x48efa4]
shr ecx, 0x18
xor eax, ebx
mov ebx, dword [ecx*4 + 0x48eba4]
mov ecx, dword [esp + 0x20]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ecx*4 + 0x48f7a4]
mov ecx, dword [esp + 0x2c]
xor eax, ebx
sar ecx, 1
xor eax, edi
dec ecx
mov dword [esp + 0x30], eax
je 0x465bd4
mov edi, ecx
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x29]
mov al, byte [esp + 0x32]
mov ebx, dword [ecx*4 + 0x48f3a4]
mov eax, dword [eax*4 + 0x48efa4]
mov ecx, edx
xor eax, ebx
shr ecx, 0x18
mov ebx, dword [ecx*4 + 0x48eba4]
mov ecx, dword [esp + 0x10]
and ecx, 0xff
xor eax, ebx
mov ebx, dword [ecx*4 + 0x48f7a4]
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 + 0x31]
mov ebp, dword [ebx*4 + 0x48efa4]
mov ebx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x48f3a4]
shr ebx, 0x18
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x48eba4]
mov ebx, dword [esp + 0x28]
and ebx, 0xff
xor ecx, ebp
mov ebp, dword [ebx*4 + 0x48f7a4]
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 + 0x48efa4]
mov edx, dword [ebx*4 + 0x48f3a4]
xor ecx, edx
mov edx, dword [esp + 0x28]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x48eba4]
mov edx, dword [esp + 0x30]
and edx, 0xff
xor ecx, ebx
mov ebx, dword [edx*4 + 0x48f7a4]
xor edx, edx
mov dl, byte [esp + 0x11]
xor ecx, ebx
xor ecx, ebp
mov ebx, dword [edx*4 + 0x48f3a4]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov cl, byte [esp + 0x2a]
shr edx, 0x18
mov ecx, dword [ecx*4 + 0x48efa4]
xor ecx, ebx
mov ebx, dword [edx*4 + 0x48eba4]
mov edx, dword [esp + 0x1c]
xor ecx, ebx
and edx, 0xff
mov ebx, dword [edx*4 + 0x48f7a4]
mov edx, dword [esi + 0xc]
xor ecx, ebx
xor ebx, ebx
xor ecx, edx
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x32]
mov bl, ch
mov edx, dword [edx*4 + 0x48efa4]
mov ebp, dword [ebx*4 + 0x48f3a4]
xor edx, ebp
mov ebx, eax
shr ebx, 0x18
add esi, 0x20
mov ebp, dword [ebx*4 + 0x48eba4]
mov ebx, dword [esp + 0x18]
and ebx, 0xff
xor edx, ebp
mov ebp, dword [ebx*4 + 0x48f7a4]
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 + 0x31]
mov ebp, dword [ebx*4 + 0x48efa4]
mov ebx, dword [esp + 0x18]
mov edx, dword [edx*4 + 0x48f3a4]
shr ebx, 0x18
xor edx, ebp
mov ebp, dword [ebx*4 + 0x48eba4]
mov ebx, ecx
and ebx, 0xff
xor edx, ebp
shr ecx, 0x18
mov ebp, dword [ebx*4 + 0x48f7a4]
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 + 0x48f3a4]
mov ebx, dword [ecx*4 + 0x48eba4]
mov edx, dword [edx*4 + 0x48efa4]
mov ecx, dword [esp + 0x30]
xor edx, ebp
mov ebp, dword [esi - 8]
and ecx, 0xff
xor edx, ebx
mov ebx, dword [ecx*4 + 0x48f7a4]
xor ecx, ecx
mov cl, byte [esp + 0x19]
xor edx, ebx
xor edx, ebp
mov ebp, dword [eax*4 + 0x48f7a4]
mov ebx, dword [ecx*4 + 0x48f3a4]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [esp + 0x16]
shr ecx, 0x18
mov edx, dword [edx*4 + 0x48efa4]
xor edx, ebx
mov ebx, dword [ecx*4 + 0x48eba4]
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 + 0x30], eax
jne 0x465996
xor ecx, ecx
mov ebx, dword [esi]
mov cl, byte [esp + 0x32]
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 + 0x29]
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 + 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 + 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 + 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 + 0x28]
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 + 0x28]
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 + 0x2a]
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 + 0x11]
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