Function at 0x10001c6c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x100af9ba
sub esp, 0x18
mov eax, dword [0x101844f8]
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 0x100afa17
cmp byte [esp + 0x38], 0
je 0x100afa07
sub esi, ecx
mov al, byte [ecx]
dec edi
not al
mov byte [esi + ecx], al
inc ecx
test edi, edi
jg 0x100af9f5
jmp 0x100afc11
mov al, byte [ecx]
dec edi
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa07
jmp 0x100afc11
push 0xc
pop eax
cmp ebp, eax
jne 0x100afae5
mov eax, dword [0x1018a4dc]
cmp ebx, dword [eax + 0x40]
jae 0x100afa5f
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x100afa5f
cmp byte [esp + 0x38], 0
je 0x100afa4d
mov al, byte [ecx]
dec edi
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa3d
jmp 0x100afc11
mov al, byte [ecx]
dec edi
not al
mov byte [esi], al
inc esi
inc ecx
test edi, edi
jg 0x100afa4d
jmp 0x100afc11
cmp ebx, 0xe
jne 0x100afa99
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 0x100afa7d
jmp 0x100afc11
cmp ebx, 0xf
je 0x100afab8
cmp ebx, 0x10
je 0x100afab8
xor eax, eax
mov ecx, 0xff
inc eax
cmp byte [esp + 0x38], 0
cmovne eax, ecx
jmp 0x100afc13
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 0x100afc11
cmp ebp, 4
jb 0x100afaef
cmp ebp, 0xf
jne 0x100afaf3
test ebx, ebx
je 0x100afafd
xor ecx, ecx
mov eax, 0xff
inc ecx
jmp 0x100afaab
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 fcn.101331af
add esp, 0xc
cmp ebp, 3
je 0x100afb24
cmp ebp, 0xf
jne 0x100afb8f
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 0x100afb77
btr eax, ecx
jmp 0x100afb7a
bts eax, ecx
mov ecx, dword [esp + 0x10]
inc edx
mov byte [ecx], al
cmp edx, 7
jl 0x100afb58
cmp ebp, 0xf
je 0x100afc11
mov al, byte [esi + 1]
test bl, bl
je 0x100afbc1
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 0x100afbea
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 0x100afc02
btr eax, ecx
jmp 0x100afc05
bts eax, ecx
inc edi
mov byte [edx + esi], al
cmp edi, 0x200b
jle 0x100afbea
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