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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
mov dword [ebp - 0x18], esi
mov al, byte [esi + 4]
test al, al
jne 0x553aae
push 0x771bd8
lea ecx, [ebp - 0x28]
call fcn.00714ba1
lea eax, [ebp - 0x28]
push 0x75de60
push eax
call fcn.00714a95
mov eax, dword [ebp + 8]
xor edx, edx
xor ecx, ecx
push ebx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 0x18
inc eax
push edi
shl ecx, 0x10
or edx, ecx
inc eax
xor ecx, ecx
xor ebx, ebx
mov ch, byte [eax]
or edx, ecx
inc eax
xor ecx, ecx
mov cl, byte [eax]
or edx, ecx
mov ecx, dword [esi + 0x1e8]
xor edx, ecx
inc eax
xor ecx, ecx
mov dword [ebp - 0x10], edx
mov cl, byte [eax]
mov edi, ecx
xor ecx, ecx
mov cl, byte [eax + 1]
shl edi, 0x18
inc eax
shl ecx, 0x10
or edi, ecx
inc eax
xor ecx, ecx
mov ch, byte [eax]
or edi, ecx
inc eax
xor ecx, ecx
mov cl, byte [eax]
or edi, ecx
mov ecx, dword [esi + 0x1ec]
inc eax
xor edi, ecx
xor ecx, ecx
mov dword [ebp - 4], edi
mov cl, byte [eax]
mov edi, ecx
xor ecx, ecx
mov cl, byte [eax + 1]
shl edi, 0x18
inc eax
shl ecx, 0x10
or edi, ecx
inc eax
xor ecx, ecx
mov ch, byte [eax]
or edi, ecx
inc eax
xor ecx, ecx
mov cl, byte [eax]
or edi, ecx
mov ecx, dword [esi + 0x1f0]
inc eax
xor edi, ecx
xor ecx, ecx
mov dword [ebp - 0xc], edi
mov cl, byte [eax]
mov bl, byte [eax + 1]
shl ecx, 0x18
inc eax
shl ebx, 0x10
or ecx, ebx
inc eax
xor ebx, ebx
mov bh, byte [eax]
mov bl, byte [eax + 1]
mov eax, dword [esi + 0x1f4]
or ebx, ecx
xor eax, ebx
mov dword [ebp - 8], eax
mov ebx, dword [esi + 0x3d0]
cmp ebx, 1
mov dword [ebp - 0x1c], ebx
jle 0x553c9e
lea ecx, [esi + 0x210]
dec ebx
mov dword [ebp + 8], ecx
mov dword [ebp - 0x14], ebx
xor ebx, ebx
and edi, 0xff
mov bl, ah
xor eax, eax
mov al, byte [ebp - 1]
mov esi, dword [ebx*4 + 0x7454d8]
mov ebx, dword [eax*4 + 0x744cd8]
xor eax, eax
mov al, byte [ebp - 0xe]
xor esi, ebx
mov ebx, dword [eax*4 + 0x7450d8]
xor eax, eax
mov al, byte [ebp - 9]
xor esi, ebx
mov ebx, dword [edi*4 + 0x7458d8]
mov edi, dword [ecx - 4]
xor esi, ebx
xor ebx, ebx
mov bl, byte [ebp - 2]
xor esi, edi
mov edi, dword [eax*4 + 0x744cd8]
mov eax, dword [ebx*4 + 0x7450d8]
xor edi, eax
xor eax, eax
mov al, dh
and edx, 0xff
mov ebx, dword [eax*4 + 0x7454d8]
mov eax, dword [ebp - 8]
and eax, 0xff
xor edi, ebx
mov ebx, dword [eax*4 + 0x7458d8]
xor edi, ebx
mov ebx, dword [ecx]
xor edi, ebx
xor ecx, ecx
mov cl, byte [ebp - 5]
xor ebx, ebx
mov bl, byte [ebp - 0xa]
mov eax, dword [ecx*4 + 0x744cd8]
mov ecx, dword [ebx*4 + 0x7450d8]
xor eax, ecx
xor ecx, ecx
mov cl, byte [ebp - 3]
mov ebx, dword [ecx*4 + 0x7454d8]
mov ecx, dword [edx*4 + 0x7458d8]
mov edx, dword [ebp + 8]
xor eax, ebx
xor eax, ecx
xor ecx, ecx
mov ebx, dword [edx + 4]
mov cl, byte [ebp - 6]
xor edx, edx
xor eax, ebx
mov dl, byte [ebp - 0xb]
mov ebx, dword [ecx*4 + 0x7450d8]
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
mov ecx, dword [edx*4 + 0x7454d8]
xor ebx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0xd]
mov edx, dword [ecx*4 + 0x744cd8]
xor ebx, edx
mov edx, dword [ebp - 4]
and edx, 0xff
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x14]
mov ecx, dword [edx*4 + 0x7458d8]
xor ebx, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx - 8]
add ecx, 0x20
xor edx, ebx
dec esi
mov dword [ebp - 0x10], edx
mov dword [ebp + 8], ecx
mov dword [ebp - 0x14], esi
jne 0x553b81
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x1c]
shl ebx, 5
xor eax, eax
mov edi, dword [ebx + esi + 0x1e8]
mov al, byte [ebp - 0xd]
lea esi, [ebx + esi + 0x1e8]
mov ecx, edi
mov al, byte [eax + 0x743bd8]
mov ebx, edi
sar ecx, 0x18
xor al, cl
mov ecx, dword [ebp + 0xc]
sar ebx, 0x10
mov byte [ecx], al
xor eax, eax
mov al, byte [ebp - 6]
mov dword [ebp + 8], edi
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, edi
mov byte [ecx + 1], al
xor eax, eax
mov al, byte [ebp - 0xb]
sar ebx, 8
mov al, byte [eax + 0x743bd8]
xor al, bl
mov bl, byte [ebp + 8]
mov byte [ecx + 2], al
mov eax, dword [ebp - 4]
and eax, 0xff
mov al, byte [eax + 0x743bd8]
xor al, bl
mov byte [ecx + 3], al
mov edi, dword [esi + 4]
xor eax, eax
mov ebx, edi
mov al, byte [ebp - 1]
mov dword [ebp + 8], edi
sar ebx, 0x18
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, edi
mov byte [ecx + 4], al
xor eax, eax
mov al, byte [ebp - 0xe]
sar ebx, 0x10
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, edi
mov edi, dword [ebp - 0xc]
mov byte [ecx + 5], al
xor eax, eax
and edi, 0xff
mov al, byte [ebp - 7]
sar ebx, 8
mov al, byte [eax + 0x743bd8]
xor al, bl
mov bl, byte [ebp + 8]
mov byte [ecx + 6], al
mov al, byte [edi + 0x743bd8]
xor al, bl
mov byte [ecx + 7], al
mov edi, dword [esi + 8]
xor eax, eax
mov ebx, edi
mov al, byte [ebp - 9]
mov dword [ebp + 8], edi
sar ebx, 0x18
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, edi
mov byte [ecx + 8], al
xor eax, eax
mov al, byte [ebp - 2]
sar ebx, 0x10
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, edi
mov byte [ecx + 9], al
xor eax, eax
mov al, dh
sar ebx, 8
mov al, byte [eax + 0x743bd8]
mov edi, dword [ebp - 8]
xor al, bl
mov bl, byte [ebp + 8]
and edi, 0xff
mov byte [ecx + 0xa], al
and edx, 0xff
mov al, byte [edi + 0x743bd8]
pop edi
xor al, bl
mov byte [ecx + 0xb], al
mov esi, dword [esi + 0xc]
xor eax, eax
mov ebx, esi
mov al, byte [ebp - 5]
mov dword [ebp + 8], esi
sar ebx, 0x18
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, esi
mov byte [ecx + 0xc], al
xor eax, eax
mov al, byte [ebp - 0xa]
sar ebx, 0x10
mov al, byte [eax + 0x743bd8]
xor al, bl
mov ebx, esi
mov byte [ecx + 0xd], al
xor eax, eax
mov al, byte [ebp - 3]
sar ebx, 8
mov al, byte [eax + 0x743bd8]
xor al, bl
pop ebx
mov byte [ecx + 0xe], al
mov dl, byte [edx + 0x743bd8]
mov al, byte [ebp + 8]
pop esi
xor dl, al
mov byte [ecx + 0xf], dl
mov esp, ebp
pop ebp
ret 8