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

Disassembly:
mov edx, dword [esp + 8]
sub esp, 0x24
mov eax, edx
push ebx
push esi
sub eax, 0x80
mov esi, 6
je 0x8f6b4a
sub eax, 0x40
je 0x8f6b44
sub eax, 0x40
je 0x8f6b3a
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x24
ret
mov dword [esp + 0x34], 8
jmp 0x8f6b52
mov dword [esp + 0x34], esi
jmp 0x8f6b52
mov dword [esp + 0x34], 4
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, 0x80
je 0x8f6b84
sub eax, 0x40
je 0x8f6b7e
sub eax, 0x40
je 0x8f6b74
pop esi
mov eax, 0xfffffffe
pop ebx
add esp, 0x24
ret
mov dword [esp + 0x38], 8
jmp 0x8f6b8c
mov dword [esp + 0x38], esi
jmp 0x8f6b8c
mov dword [esp + 0x38], 4
cmp edx, ecx
mov eax, edx
jge 0x8f6b94
mov eax, ecx
sub eax, 0x80
je 0x8f6bbe
sub eax, 0x40
je 0x8f6bb7
sub eax, 0x40
je 0x8f6bb0
pop esi
mov eax, 0xfffffffd
pop ebx
add esp, 0x24
ret
mov ebx, 0xe
jmp 0x8f6bc3
mov ebx, 0xc
jmp 0x8f6bc3
mov ebx, 0xa
mov eax, dword [esp + 0x34]
push ebp
push edi
xor edi, edi
test eax, eax
jle 0x8f6bf8
mov ebp, dword [esp + 0x38]
mov ecx, ebp
lea edx, [esp + 0x14]
lea eax, [esp + edi + 0x14]
sub ecx, edx
mov esi, 4
mov dl, byte [ecx + eax]
mov byte [eax], dl
add eax, 8
dec esi
jne 0x8f6be4
mov eax, dword [esp + 0x3c]
inc edi
cmp edi, eax
jl 0x8f6bd3
mov eax, dword [esp + 0x3c]
xor ebp, ebp
test eax, eax
jle 0x8f6c48
lea edi, [ebx + 1]
imul edi, dword [esp + 0x40]
cmp ebp, edi
jge 0x8f6c48
mov eax, ebp
lea ecx, [esp + ebp + 0x14]
cdq
idiv dword [esp + 0x40]
mov esi, eax
mov eax, ebp
cdq
idiv dword [esp + 0x40]
mov eax, dword [esp + 0x44]
shl esi, 5
add eax, esi
mov esi, 4
add edx, eax
mov al, byte [ecx]
add ecx, 8
mov byte [edx], al
add edx, 8
dec esi
jne 0x8f6c32
mov eax, dword [esp + 0x3c]
inc ebp
cmp ebp, eax
jl 0x8f6c0a
lea edx, [ebx + 1]
imul edx, dword [esp + 0x40]
cmp ebp, edx
mov dword [esp + 0x38], edx
jge 0x8f6d87
mov dword [esp + 0x10], 0x8eefd8
mov esi, dword [esp + 0x3c]
xor eax, eax
lea ecx, [esp + 0x14]
inc eax
mov edi, eax
and edi, 0x80000003
jns 0x8f6c7e
dec edi
or edi, 0xfffffffc
inc edi
lea edi, [esi + edi*8]
xor ebx, ebx
add ecx, 8
mov bl, byte [esp + edi + 0x13]
mov bl, byte [ebx + 0x8eedd8]
xor byte [ecx - 8], bl
cmp eax, 4
jl 0x8f6c6e
mov eax, dword [esp + 0x10]
mov bl, byte [esp + 0x14]
mov cl, byte [eax]
add eax, 4
xor bl, cl
cmp esi, 8
mov byte [esp + 0x14], bl
mov dword [esp + 0x10], eax
mov esi, 1
je 0x8f6ce0
mov ebx, dword [esp + 0x3c]
cmp ebx, esi
jle 0x8f6d3a
lea eax, [esp + esi + 0x14]
mov ecx, 4
mov dl, byte [eax - 1]
xor byte [eax], dl
add eax, 8
dec ecx
jne 0x8f6cca
inc esi
cmp esi, ebx
jl 0x8f6cc1
mov edx, dword [esp + 0x38]
jmp 0x8f6d3a
lea eax, [esp + esi + 0x14]
mov ecx, 4
mov bl, byte [eax - 1]
xor byte [eax], bl
add eax, 8
dec ecx
jne 0x8f6ce9
inc esi
cmp esi, 4
jl 0x8f6ce0
lea eax, [esp + 0x18]
mov ecx, 4
xor ebx, ebx
mov bl, byte [eax - 1]
add eax, 8
mov bl, byte [ebx + 0x8eedd8]
xor byte [eax - 8], bl
dec ecx
jne 0x8f6d03
mov esi, 5
lea eax, [esp + esi + 0x14]
mov ecx, 4
mov bl, byte [eax - 1]
xor byte [eax], bl
add eax, 8
dec ecx
jne 0x8f6d25
inc esi
cmp esi, 8
jl 0x8f6d1c
mov ebx, dword [esp + 0x3c]
xor edi, edi
test ebx, ebx
jle 0x8f6d7f
cmp ebp, edx
jge 0x8f6d87
mov eax, ebp
lea ecx, [esp + edi + 0x14]
cdq
idiv dword [esp + 0x40]
mov esi, eax
mov eax, ebp
cdq
idiv dword [esp + 0x40]
mov eax, dword [esp + 0x44]
shl esi, 5
add eax, esi
mov esi, 4
add edx, eax
mov al, byte [ecx]
add ecx, 8
mov byte [edx], al
add edx, 8
dec esi
jne 0x8f6d68
mov edx, dword [esp + 0x38]
inc edi
inc ebp
cmp edi, ebx
jl 0x8f6d40
cmp ebp, edx
jl 0x8f6c64
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x24
ret