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

Disassembly:
call fcn.004e87ad
lea esp, [esp + 2]
push ecx
push ebx
push esi
pushfd
mov word [esp + 1], sp
jmp 0x4e8e50
mov edi, ecx
lea edi, [edi - 4]
mov dword [edi], eax
pop edi
mov eax, dword [edx]
push eax
mov eax, edx
lea eax, [eax - 4]
jmp 0x52b8da
cmp eax, 1
jle 0x52b743
lea ecx, [eax - 1]
mov dword [ebp - 4], ecx
mov ecx, 0xff
jmp 0x52a72b
lea esp, [esp + 3]
popal
shl ebx, 2
mov dword [ebp - 8], eax
test ebx, ebx
jle 0x4e8ded
lea edx, [esi + ebx*4 + 8]
lea ecx, [esi + 8]
mov eax, dword [edx - 8]
mov edi, dword [ecx - 8]
add dword [ebp - 4], 4
mov dword [ecx - 8], eax
mov eax, dword [edx - 4]
push esi
mov esi, edx
lea esi, [esi - 8]
mov dword [esi], edi
pop esi
mov edi, dword [ecx - 4]
push edi
jmp 0x4e8dcd
mov word [esp], bp
pushal
pop word [esp + 3]
push word [esp + 0x1c]
push dword [esp + 3]
mov byte [esp + 0x15], dl
mov dword [esp + 0x24], edi
pushal
push dword [esp + 0x1c]
pushfd
mov dword [esp + 0x14], ebx
pushfd
mov word [esp + 0x15], si
lea esp, [esp + 0x50]
mov esi, ecx
call fcn.005158ae
and dword [ebp - 4], 0
pushal
mov dword [esp + 0x10], eax
push esp
push word [esp + 1]
mov word [esp + 3], si
pop word [esp + 1]
lea esp, [esp + 1]
jmp 0x4e8e0e
jmp 0x4e8d33
mov eax, 0x403
mov ebx, dword [esp]
mov ebx, dword [esp]
mov bx, 0x22ee
jmp 0x52ab41
movzx ebx, byte [esi + 0x11]
mov ebx, dword [ebx*4 + 0x4f3ce0]
add esi, 0x10
push edi
mov edi, esi
mov edx, dword [edi]
pop edi
mov edi, edx
pushal
mov word [esp + 0x1b], bp
pop dword [esp + 2]
pop word [esp + 0xe]
pop dword [esp + 0xf]
push word [esp + 9]
shr edi, 0x18
push dx
push word [esp + 1]
pushfd
lea esp, [esp + 3]
lea esp, [esp + 4]
pushal
push ebp
lea esp, [esp + 1]
lea esp, [esp + 0x3c]
push ebx
mov ebx, edi
lea ebx, [ebx*4]
lea ebx, [ebx + 0x4f3ce0]
mov edi, dword [ebx]
pop ebx
and edi, ecx
pushal
lea esp, [esp + 0x1d]
push edi
push dword [esp + 3]
push word [esp + 7]
pop word [esp + 3]
lea esp, [esp + 6]
mov word [esp + 2], bx
pop word [esp]
lea esp, [esp + 3]
mov edi, dword [edi*4 + 0x4f40e0]
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f48e0]
movzx ebx, byte [esi + 2]
push ebp
mov ebp, ebx
lea ebp, [ebp*4]
lea ebp, [ebp + 0x4f3ce0]
mov ebx, dword [ebp]
pop ebp
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f44e0]
movzx ebx, byte [esi + 5]
and edx, ecx
push eax
mov eax, edx
lea eax, [eax*4]
lea eax, [eax + 0x4f3ce0]
mov edx, dword [eax]
pop eax
and edx, ecx
xor edi, dword [edx*4 + 0x4f4ce0]
mov edx, dword [esi + 4]
push ebp
mov ebp, esi
mov dword [ebp], edi
pop ebp
mov ebx, dword [ebx*4 + 0x4f3ce0]
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x4f3ce0]
pushfd
and edi, ecx
pushfd
mov word [esp], ax
push word [esp + 3]
mov word [esp + 2], bx
push word [esp + 4]
pop dword [esp]
mov word [esp + 1], ax
lea esp, [esp + 8]
mov edi, dword [edi*4 + 0x4f40e0]
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f48e0]
movzx ebx, byte [esi + 6]
mov ebx, dword [ebx*4 + 0x4f3ce0]
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f44e0]
movzx ebx, byte [esi + 9]
and edx, ecx
push ebp
mov ebp, edx
lea ebp, [ebp*4]
lea ebp, [ebp + 0x4f3ce0]
mov edx, dword [ebp]
pop ebp
stc
sub esp, 0x1b
sub esp, 7
pop word [esp + 0x16]
pop word [esp + 9]
push eax
sub esp, 0x16
and edx, ecx
push ebx
lea esp, [esp + 3]
mov byte [esp], al
pushfd
mov word [esp + 2], ax
push dword [esp + 3]
lea esp, [esp + 1]
lea esp, [esp + 0x40]
xor edi, dword [edx*4 + 0x4f4ce0]
mov edx, dword [esi + 8]
push eax
mov eax, esi
lea eax, [eax + 4]
mov dword [eax], edi
pop eax
mov ebx, dword [ebx*4 + 0x4f3ce0]
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x4f3ce0]
and edi, ecx
mov edi, dword [edi*4 + 0x4f40e0]
push ebx
push word [esp]
mov word [esp + 3], si
push word [esp + 5]
stc
cmc
pop dword [esp]
sub esp, 0
and ebx, ecx
pushal
pushfd
lea esp, [esp + 0x28]
xor edi, dword [ebx*4 + 0x4f48e0]
movzx ebx, byte [esi + 0xa]
push edi
mov edi, ebx
lea edi, [edi*4]
lea edi, [edi + 0x4f3ce0]
mov ebx, dword [edi]
pop edi
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f44e0]
movzx ebx, byte [esi + 0xd]
sub esp, 0xa
mov word [esp + 7], cx
cmc
add esp, 5
sub esp, 0xc
mov byte [esp + 0xf], bh
sub esp, 0x1e
mov word [esp + 5], bp
lea esp, [esp + 3]
and edx, ecx
push eax
mov dword [esp], ebx
mov word [esp + 1], ax
push edi
pop word [esp + 2]
pushfd
lea esp, [esp + 2]
lea esp, [esp + 0x34]
push esi
mov esi, edx
lea esi, [esi*4]
lea esi, [esi + 0x4f3ce0]
mov edx, dword [esi]
pop esi
and edx, ecx
xor edi, dword [edx*4 + 0x4f4ce0]
push ebx
pushal
lea edi, [eax + ecx]
mov ebx, edx
mov ch, bl
mov cx, 0x3c40
xchg ecx, ebx
bswap bx
lea edi, [edx*4]
bswap ecx
mov dword [esp + 0x10], esi
push si
push bp
push word [esp]
lea esp, [esp + 2]
lea esp, [esp + 4]
popal
lea ebx, [ebx + 0xc]
mov edx, dword [ebx]
pop ebx
mov dword [esi + 8], edi
push ecx
mov ecx, ebx
lea ecx, [ecx*4]
lea ecx, [ecx + 0x4f3ce0]
mov ebx, dword [ecx]
pop ecx
pushal
push bx
mov ebx, eax
mov si, word [esp]
mov al, 0xa0
xchg di, si
bswap bp
mov ch, dl
bswap bx
mov cl, dl
lea esp, [esp + 2]
mov dword [esp], edx
push bp
mov byte [esp], ch
lea esp, [esp]
mov byte [esp], ah
push word [esp + 1]
push dword [esp + 3]
lea esp, [esp + 8]
popal
shr edi, 0x18
mov edi, dword [edi*4 + 0x4f3ce0]
and edi, ecx
push esi
mov esi, edi
lea esi, [esi*4]
lea esi, [esi + 0x4f40e0]
mov edi, dword [esi]
pop esi
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f48e0]
movzx ebx, byte [esi + 0xe]
push edi
mov edi, ebx
lea edi, [edi*4]
lea edi, [edi + 0x4f3ce0]
mov ebx, dword [edi]
pop edi
sub esp, 6
push dword [esp + 2]
sub esp, 0xe
clc
and edx, ecx
push eax
lea esp, [esp + 0x1c]
mov edx, dword [edx*4 + 0x4f3ce0]
and ebx, ecx
xor edi, dword [ebx*4 + 0x4f44e0]
and edx, ecx
xor edi, dword [edx*4 + 0x4f4ce0]
dec dword [ebp - 4]
push ecx
mov ecx, esi
lea ecx, [ecx + 0xc]
mov dword [ecx], edi
pop ecx
jne 0x52a72b
test dword [ecx + 0xffffffc], ebp
test byte [ebx - 0x7ffffff4], bh
sti
xor byte [edx + 0x57], dh
je 0x52b743
cmp bl, 0x30
jb 0x52aae4
cmp bl, 0x39
jbe 0x52aaaf
ja 0x52aae4
dec eax
fimul dword [eax + 0x2f]
ficomp dword [ecx]
jb 0x52aa7d
xchg dword [edx - 0x33], esi
pop esp
int3
mov cl, byte [ecx + 3]
cmp cl, 0x41
jb 0x52abcf
add dword [eax], eax
add byte [eax - 0x79f0a507], al
jecxz 0x52aac2
cmp cl, 0x5a
jbe 0x52aba7
add byte [eax], al
ja 0x52abcf
jp 0x52aab8
bound eax, qword [0x60f745f4]
not byte [ecx - 0xb8e2aa0]
cmp bl, 0x61
jb 0x52aa88
cmp bl, 0x7a
jbe 0x52aaaf
ja 0x52aa88
cmp bl, 0x2b
je 0x52aaaf
cmp bl, 0x2f
jne 0x52a6e1
je 0x52aaaf
adc dword [ebx + 0x398d7e1b], ecx
jge 0x52aae4
jle 0x52ab17
call 0xbfb0c859
sahf
stosd dword es:[edi], eax
cmp dl, 0x2b
je 0x52b324
cmp dl, 0x2f
jne 0x52a6e1
je 0x52b324
or byte [eax], al
add byte [esi + 0x52], ah
push dx
mov word [esp + 0xc], di
pushfd
mov byte [esp + 0xc], al
push word [esp + 0x1e]
lea esp, [esp + 0x2c]
ret
sub al, 0xc3
jmp 0x52aba7
lea ebx, [edi + edi]
xchg bl, bh
lea ebx, [eax + ecx]
mov ebx, dword [esp]
pushal
jmp 0x52ab1d
cmp cl, 0x2b
je 0x52aba7
cmp cl, 0x2f
je 0x52aba7
jne 0x52a6e1
sub dword [eax + 0xb04126], esi
pop esp
ret 0x3750
cmp cl, 0x30
jb 0x52ab5e
cmp cl, 0x39
jbe 0x52aba7
ja 0x52ab5e
sbb al, 0x87
pop ss
jb 0x52ab1a
cmp cl, byte [edi - 0xd]
arpl word [esi], ax
cmc
je 0x52ab31
adc al, byte [eax + 0x31a312e7]
cmp al, 0x2b
jne 0x52acfb
push 0x3e
jmp 0x52aca3
cmp cl, 0x61
jb 0x52ab88
cmp cl, 0x7a
jbe 0x52aba7
ja 0x52ab88
cmp al, 0x5a
movzx eax, al
jmp 0x52ac63
sub eax, 0x47
jmp 0x52ac11
cmp dl, 0x2f
jne 0x52ac86
push 0x3f
jmp 0x52ac43
push esi
cmp dl, 0x2b
jne 0x52abf5
push 0x3e
jmp 0x52ac43
cmp al, 0x39
ja 0x52abdb
movzx eax, al
add eax, 4
jmp 0x52ac11
pop esi
jmp 0x52ac6a
cmp dl, 0x5a
ja 0x52acdd
sub esi, 0x41
jmp 0x52ac6a
ja 0x52abf0
sub eax, 0x41
jmp 0x52ac11
cmp bl, 0x2b
jne 0x52aca9
push 0x3e
jmp 0x52ad9f
movzx esi, dl
cmp dl, 0x39
ja 0x52ac46
add esi, 4
jmp 0x52ac6a
pop eax
jmp 0x52ac11
cmp bl, 0x2f
jmp 0x52ad7b
movzx edx, bl
cmp bl, 0x39
ja 0x52ad08
add edx, 4
jmp 0x52ad2e
sub esi, 0x47
jmp 0x52ac6a
cmp al, 0x2f
jne 0x52ac36
push 0x3f
jmp 0x52aca3
cmp bl, 0x5a
ja 0x52ad4a
sub edx, 0x41
jmp 0x52ad2e
cmp cl, 0x2f
jne 0x52ada2
push 0x3f
jmp 0x52ad4f
cmp cl, 0x2b
jne 0x52ad12
push 0x3e
jmp 0x52ad4f
sub edx, 0x47
jmp 0x52ad2e
pop ecx
jmp 0x52ad5c
shl eax, 6
or eax, esi
shl eax, 6
or eax, edx
push eax
pushal
lea esp, [esp + 0x24]
jmp 0x52afbe
jne 0x52acbb
push 0x3f
jmp 0x52ad9f
pop edx
jmp 0x52ad2e
cmp cl, 0x39
ja 0x52b21c
movzx ecx, cl
add ecx, 4
jmp 0x52ad5c
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0xc]
mov edx, eax
shr edx, 0x10
mov byte [ecx], dl
mov edx, eax
shr edx, 8
mov esi, 0x249d068a
bswap si
lea esi, [esp - 0x60]
lea esi, [ebx + esi]
lea esi, [eax + edi]
mov esi, dword [esp]
pushal
lea esp, [esp + 0x24]
mov byte [ecx + 2], al
mov byte [ecx + 1], dl
xor eax, eax
mov bx, 0x33c2
mov bh, 0xcd
mov ebx, dword [esp]
pushal
mov dword [esp + 0xf], ebp
mov word [esp + 0x15], bx
pop word [esp + 5]
pushfd
pop dword [esp + 6]
mov dword [esp + 0xa], esp
pop word [esp + 0xb]
lea esp, [esp + 0x20]
ret
sub ecx, 0x47
jmp 0x52ad5c
cmp cl, 0x5a
movzx ecx, cl
ja 0x52b0f1
sub ecx, 0x41
jmp 0x52ad5c
mov bl, byte [ecx + 2]
cmp bl, 0x41
jb 0x52aad8
cmp bl, 0x5a
jbe 0x52aaaf
ja 0x52aad8
lea edi, [ebx + esi]
pushfd
mov word [esp + 1], cx
push word [esp + 1]
jmp 0x52b796
pop edi
pop esi
lea ebx, [ebp*4]
bswap bx
mov ebx, dword [esp]
mov bx, word [esp]
lea ebx, [eax*4]
lea ebx, [esi*4]
mov bh, 6
sets bl
mov ebx, dword [esp]
push esi
mov dword [esp], ecx
push word [esp + 1]
push edi
pop dword [esp]
push word [esp + 1]
mov dword [esp + 3], ecx
push dword [esp + 2]
mov byte [esp + 9], cl
lea esp, [esp + 0x10]
leave
ret
lea esp, [esp + 2]
mov edi, dword [esp + 4]
push eax
lea esp, [esp + 0xc]
jmp 0x52b953
mov dword [eax], edi
pop eax
mov edi, dword [ecx]
push edx
pushal
mov dword [esp + 0x14], ecx
push cx
pushal
push esp
push word [esp + 1]
pop word [esp]
mov byte [esp + 0x1b], al
mov dword [esp], esp
lea esp, [esp + 2]
lea esp, [esp + 0x24]
popal
mov dword [edx], eax
pop edx
mov eax, dword [edx + 4]
push ecx
mov ecx, edx
mov dword [ecx], edi
pop ecx
mov edi, dword [ecx + 4]
push esi
mov esi, ecx
lea esi, [esi + 4]
mov dword [esi], eax
pop esi
mov dword [edx + 4], edi
sub ebx, 4
add ecx, 0x10
sub edx, 0x10
cmp dword [ebp - 4], ebx
jl 0x4e8e24
mov eax, dword [ebp - 8]
jmp 0x4e8ded
mov bx, word [esp]
push sp
push esi
mov ebx, 0x7b881aeb
jmp 0x52c1e3
mov bx, word [esp]
jmp 0x52b937
pop bx
mov ebx, dword [esp + 4]
push esi
mov dword [esp], esi
push dword [esp]
pushal
lea esp, [esp + 0x30]
add esp, 0x40
ret