Function at 0x10001c6c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x100af9d4
sub esp, 0x18
mov eax, dword [0x10184508]
xor eax, esp
mov dword [esp + 0x14], eax
push ebx
mov ebx, dword [esp + 0x24]
push ebp
mov ebp, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x30]
push edi
push ebx
push ebp
call sym.CoreFoundation.dll_CFUniCharGetBitmapPtrForPlane
pop ecx
pop ecx
mov ecx, eax
mov edi, 0x2000
test ecx, ecx
je 0x100afa31
cmp byte [esp + 0x38], 0
je 0x100afa21
sub esi, ecx
mov al, byte [ecx]
dec edi
not al
mov byte [esi + ecx], al
inc ecx
test edi, edi
jg 0x100afa0f
jmp 0x100afc2b
mov al, byte [ecx]
dec edi
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa21
jmp 0x100afc2b
push 0xc
pop eax
cmp ebp, eax
jne 0x100afaff
mov eax, dword [0x1018a4ec]
cmp ebx, dword [eax + 0x40]
jae 0x100afa79
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x100afa79
cmp byte [esp + 0x38], 0
je 0x100afa67
mov al, byte [ecx]
dec edi
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa57
jmp 0x100afc2b
mov al, byte [ecx]
dec edi
not al
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa67
jmp 0x100afc2b
cmp ebx, 0xe
jne 0x100afab3
mov al, byte [esp + 0x38]
test al, al
mov byte [esi], 2
sete bl
dec bl
test al, al
setne bh
xor ebp, ebp
dec bh
inc esi
inc ebp
lea ecx, [ebp - 4]
movzx edx, bl
cmp ecx, 0xb
movzx eax, bh
cmova edx, eax
mov byte [esi], dl
inc esi
inc ebp
cmp ebp, edi
jl 0x100afa97
jmp 0x100afc2b
cmp ebx, 0xf
je 0x100afad2
cmp ebx, 0x10
je 0x100afad2
xor eax, eax
mov ecx, 0xff
inc eax
cmp byte [esp + 0x38], 0
cmovne eax, ecx
jmp 0x100afc2d
mov dl, byte [esp + 0x38]
xor eax, eax
test dl, dl
mov ecx, 0x800
mov edi, esi
sete al
dec eax
test dl, dl
rep stosd dword es:[edi], eax
push 0x3f
mov eax, 0xc0
pop ecx
cmovne eax, ecx
mov byte [esi + 0x1ffb], al
jmp 0x100afc2b
cmp ebp, 4
jb 0x100afb09
cmp ebp, 0xf
jne 0x100afb0d
test ebx, ebx
je 0x100afb17
xor ecx, ecx
mov eax, 0xff
inc ecx
jmp 0x100afac5
mov bl, byte [esp + 0x38]
test bl, bl
push edi
sete al
dec al
mov byte [esp + 0x14], al
push dword [esp + 0x14]
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp ebp, 3
je 0x100afb3e
cmp ebp, 0xf
jne 0x100afba9
push 0xa
pop eax
push 0xb
mov word [esp + 0x18], ax
xor edx, edx
pop eax
push 0xc
mov word [esp + 0x1a], ax
pop eax
mov word [esp + 0x18], ax
push 0xd
pop eax
mov word [esp + 0x1a], ax
mov eax, 0x2029
mov dword [esp + 0x1c], 0x20280085
mov word [esp + 0x20], ax
movzx ecx, word [esp + edx*2 + 0x14]
mov eax, ecx
and ecx, 7
shr eax, 3
add eax, esi
mov dword [esp + 0x10], eax
movzx eax, byte [eax]
test bl, bl
je 0x100afb91
btr eax, ecx
jmp 0x100afb94
bts eax, ecx
mov ecx, dword [esp + 0x10]
inc edx
mov byte [ecx], al
cmp edx, 7
jl 0x100afb72
cmp ebp, 0xf
je 0x100afc2b
mov al, byte [esi + 1]
test bl, bl
je 0x100afbdb
and al, 0xfd
mov byte [esi + 1], al
and byte [esi + 4], 0xfe
and byte [esi + 0x14], 0xfe
and byte [esi + 0x2d0], 0xfe
and byte [esi + 0x405], 0x7f
and byte [esi + 0x40b], 0x7f
and byte [esi + 0x600], 0xfe
jmp 0x100afc04
or al, 2
mov byte [esi + 1], al
or byte [esi + 4], 1
or byte [esi + 0x14], 1
or byte [esi + 0x2d0], 1
or byte [esi + 0x405], 0x80
or byte [esi + 0x40b], 0x80
or byte [esi + 0x600], 1
movzx ecx, di
mov edx, ecx
and ecx, 7
shr edx, 3
movzx eax, byte [edx + esi]
test bl, bl
je 0x100afc1c
btr eax, ecx
jmp 0x100afc1f
bts eax, ecx
inc edi
mov byte [edx + esi], al
cmp edi, 0x200b
jle 0x100afc04
xor al, al
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000234c
add esp, 0x18
ret