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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
lea eax, [ebp + 0x10]
lea ecx, [edx + 0xa0]
sub esp, 0x28
mov esi, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ebp
mov edx, ebp
mov dword [esp + 0xc], eax
xor eax, eax
movzx ebx, byte [ecx + eax]
xor byte [edx + eax], bl
add eax, 1
cmp eax, 4
jne 0x456974
add edx, 4
add ecx, 4
cmp edx, esi
jne 0x456972
mov eax, dword [esp + 0x18]
lea esi, [eax + 0x90]
mov dword [esp + 0x20], eax
lea eax, [ebp + 4]
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [ebp + 9]
movzx edx, byte [ebp + 0xd]
mov ecx, ebp
mov esi, dword [esp + 0x1c]
mov byte [ebp + 0xd], al
movzx eax, byte [ebp + 5]
mov byte [ebp + 9], al
movzx eax, byte [ebp + 1]
mov byte [ebp + 1], dl
movzx edx, byte [ebp + 2]
mov byte [ebp + 5], al
movzx eax, byte [ebp + 0xa]
mov byte [ebp + 0xa], dl
movzx edx, byte [ebp + 6]
mov byte [ebp + 2], al
movzx eax, byte [ebp + 0xe]
mov byte [ebp + 0xe], dl
movzx edx, byte [ebp + 3]
mov byte [ebp + 6], al
movzx eax, byte [ebp + 7]
mov byte [ebp + 3], al
movzx eax, byte [ebp + 0xb]
mov byte [ebp + 7], al
movzx eax, byte [ebp + 0xf]
mov byte [ebp + 0xf], dl
mov byte [ebp + 0xb], al
lea ebx, [ecx + 0x10]
mov eax, ecx
movzx edx, byte [eax]
add eax, 4
movzx edx, byte [edx + 0x483b40]
mov byte [eax - 4], dl
cmp ebx, eax
jne 0x456a0f
add ecx, 1
cmp ecx, esi
jne 0x456a0a
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov edx, ebp
xor eax, eax
movzx ebx, byte [ecx + eax]
xor byte [edx + eax], bl
add eax, 1
cmp eax, 4
jne 0x456a36
add edx, 4
add ecx, 4
cmp edx, esi
jne 0x456a34
mov esi, ebp
mov dword [esp + 0x14], ebp
movzx eax, byte [esi]
movzx ebx, byte [esi + 1]
movzx edx, byte [esi + 2]
mov byte [esp + 2], bl
mov ebx, eax
shr al, 7
lea edi, [eax + eax]
mov byte [esp + 1], dl
mov byte [esp + 7], bl
add eax, edi
mov edi, ebx
add edi, edi
lea eax, [eax + eax*8]
mov ebp, edi
xor ebp, eax
mov eax, ebp
mov ecx, ebp
shr al, 7
mov byte [esp + 8], cl
lea ebp, [eax + eax]
add eax, ebp
mov ebp, ecx
lea eax, [eax + eax*8]
add ebp, ebp
xor ebp, eax
mov eax, ebp
mov ecx, ebp
shr al, 7
mov byte [esp + 9], cl
lea ecx, [ebp + ebp]
lea edx, [eax + eax]
add eax, edx
mov edx, ecx
movzx ecx, byte [esp + 2]
lea eax, [eax + eax*8]
xor edx, eax
mov eax, ecx
mov byte [esp + 3], dl
shr al, 7
lea ebp, [eax + eax]
add eax, ebp
mov ebp, ecx
lea eax, [eax + eax*8]
add ebp, ebp
xor ebp, eax
mov eax, ebp
lea ecx, [ebp + ebp]
shr al, 7
lea edx, [eax + eax]
add eax, edx
lea eax, [eax + eax*8]
xor ecx, eax
mov eax, ecx
mov ebx, ecx
mov byte [esp + 0xa], cl
shr al, 7
lea edx, [eax + eax]
add eax, edx
lea edx, [ebx + ebx]
movzx ebx, byte [esp + 1]
lea eax, [eax + eax*8]
xor edx, eax
mov byte [esp + 4], dl
mov edx, ebx
shr dl, 7
mov eax, edx
lea edx, [eax + eax]
add eax, edx
lea edx, [ebx + ebx]
lea eax, [eax + eax*8]
xor edx, eax
mov eax, edx
mov ebx, edx
shr al, 7
mov edi, ebx
mov byte [esp + 0xb], bl
lea edx, [eax + eax]
add eax, edx
lea edx, [edi + edi]
movzx edi, byte [esi + 3]
lea eax, [eax + eax*8]
xor eax, edx
mov edx, eax
shr dl, 7
lea ecx, [edx + edx]
add edx, ecx
lea ecx, [eax + eax]
lea edx, [edx + edx*8]
mov ebx, ecx
xor ebx, edx
movzx edx, byte [esi + 3]
mov byte [esp + 5], bl
shr dl, 7
lea ebx, [edx + edx]
add edx, ebx
lea ebx, [edi + edi]
lea edx, [edx + edx*8]
xor ebx, edx
mov edx, ebx
shr dl, 7
lea ecx, [edx + edx]
add edx, ecx
lea ecx, [ebx + ebx]
lea edx, [edx + edx*8]
xor ecx, edx
mov edx, ecx
shr dl, 7
lea edi, [edx + edx]
add edx, edi
lea edi, [ecx + ecx]
lea edx, [edx + edx*8]
xor edx, edi
movzx edi, byte [esp + 2]
mov byte [esp + 6], dl
movzx edx, byte [esp + 1]
xor edi, edx
movzx edx, byte [esi + 3]
xor edi, edx
movzx edx, byte [esp + 8]
xor edi, edx
movzx edx, byte [esp + 9]
xor edi, ebp
xor edi, edx
movzx edx, byte [esp + 3]
xor edi, eax
xor edi, edx
movzx edx, byte [esp + 4]
xor edi, edx
movzx edx, byte [esp + 5]
xor edi, edx
movzx edx, byte [esp + 6]
xor edi, edx
mov edx, edi
movzx edi, byte [esp + 7]
mov byte [esi], dl
movzx edx, byte [esp + 1]
xor edi, edx
movzx edx, byte [esi + 3]
xor edi, edx
xor edi, ebp
movzx ebp, byte [esp + 0xb]
xor edi, ebp
movzx ebp, byte [esp + 0xa]
xor edi, ebp
movzx ebp, byte [esp + 3]
xor edi, ecx
xor edi, ebp
movzx ebp, byte [esp + 4]
xor edi, ebp
movzx ebp, byte [esp + 5]
xor edi, ebp
movzx ebp, byte [esp + 6]
xor edi, ebp
movzx ebp, byte [esp + 2]
mov edx, edi
movzx edi, byte [esp + 7]
mov byte [esi + 1], dl
movzx edx, byte [esp + 0xb]
xor edi, ebp
movzx ebp, byte [esi + 3]
xor ebp, edi
xor ebp, edx
movzx edx, byte [esp + 9]
xor ebp, ebx
xor ebp, edx
movzx edx, byte [esp + 1]
xor eax, ebp
xor al, byte [esp + 3]
movzx ebp, byte [esp + 0xa]
xor al, byte [esp + 4]
add esi, 4
xor al, byte [esp + 5]
xor al, byte [esp + 6]
xor edi, edx
movzx edx, byte [esp + 8]
mov byte [esi - 2], al
xor edi, edx
movzx eax, byte [esp + 3]
xor edi, ebx
movzx edx, byte [esp + 6]
xor edi, ebp
movzx ebp, byte [esp + 5]
xor edi, ecx
xor edi, eax
movzx eax, byte [esp + 4]
xor edi, eax
xor edi, ebp
xor edx, edi
mov byte [esi - 1], dl
cmp dword [esp + 0xc], esi
jne 0x456a55
sub dword [esp + 0x10], 0x10
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x18]
jne 0x4569b0
movzx eax, byte [ebp + 9]
movzx edx, byte [ebp + 0xd]
mov esi, dword [esp + 0x1c]
mov byte [ebp + 0xd], al
movzx eax, byte [ebp + 5]
mov byte [ebp + 9], al
movzx eax, byte [ebp + 1]
mov byte [ebp + 1], dl
movzx edx, byte [ebp + 2]
mov byte [ebp + 5], al
movzx eax, byte [ebp + 0xa]
mov byte [ebp + 0xa], dl
movzx edx, byte [ebp + 6]
mov byte [ebp + 2], al
movzx eax, byte [ebp + 0xe]
mov byte [ebp + 0xe], dl
movzx edx, byte [ebp + 3]
mov byte [ebp + 6], al
movzx eax, byte [ebp + 7]
mov byte [ebp + 3], al
movzx eax, byte [ebp + 0xb]
mov byte [ebp + 7], al
movzx eax, byte [ebp + 0xf]
mov byte [ebp + 0xf], dl
mov byte [ebp + 0xb], al
mov eax, ebp
lea ebx, [eax + 0x10]
mov edx, eax
movzx ecx, byte [edx]
add edx, 4
movzx ecx, byte [ecx + 0x483b40]
mov byte [edx - 4], cl
cmp ebx, edx
jne 0x456d06
add eax, 1
cmp eax, esi
jne 0x456d01
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0xc]
xor eax, eax
movzx ecx, byte [ebx + eax]
xor byte [edx + eax], cl
add eax, 1
cmp eax, 4
jne 0x456d2f
add edx, 4
add ebx, 4
cmp edx, esi
jne 0x456d2d
add esp, 0x28
pop ebx
pop esi
pop edi
pop ebp
ret