Function at 0x10112210
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0xc], edx
push edi
push str.opcodes
push 0x3fffffff
mov ebx, dword [esi + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
push 4
mov edi, dword [ebx]
mov ecx, dword [ebx + 8]
mov edx, dword [edi + 0x34]
lea eax, [edi + 0x14]
mov ecx, dword [ecx + 0x34]
push eax
push dword [ebx + 0x10]
call fcn.1010cf10
mov dword [edi + 0x34], eax
add esp, 0x14
mov ecx, dword [ebx + 0x10]
mov edx, edi
mov dword [eax + ecx*4], 0x13
mov ecx, ebx
mov eax, dword [ebx + 8]
inc dword [ebx + 0x10]
push dword [eax + 8]
call fcn.100fbb90
mov ecx, dword [ebx + 0x10]
add esp, 4
mov edi, dword [ebx]
lea eax, [ecx - 1]
mov edx, dword [edi + 0x34]
push str.opcodes
push 0x3fffffff
mov dword [esp + 0x24], eax
lea eax, [edi + 0x14]
push 4
push eax
push ecx
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x34]
call fcn.1010cf10
mov dword [edi + 0x34], eax
add esp, 0x14
mov ecx, dword [ebx + 0x10]
mov edx, edi
mov dword [eax + ecx*4], 0
mov ecx, ebx
mov eax, dword [ebx + 8]
inc dword [ebx + 0x10]
push dword [eax + 8]
call fcn.100fbb90
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
movzx eax, byte [ebx + 0x34]
mov dword [ecx + 0x10], 0xffffffff
mov dword [ecx + 0x14], 0xffffffff
mov dword [ecx], 8
mov dword [ecx + 8], eax
mov edx, dword [ebx]
movzx ecx, byte [ebx + 0x34]
inc ecx
movzx eax, byte [edx + 8]
cmp ecx, eax
jbe 0x1011231d
cmp ecx, 0xff
jae 0x1011278b
mov byte [edx + 8], cl
inc byte [ebx + 0x34]
xor edx, edx
cmp dword [esi + 0x10], 0x7b
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], edx
jne 0x10112798
cmp dword [esi + 0x20], 0x120
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
je 0x10112364
movups xmm0, xmmword [esi + 0x20]
mov dword [esi + 0x20], 0x120
movups xmmword [esi + 0x10], xmm0
jmp 0x10112375
lea edx, [esi + 0x18]
mov ecx, esi
call fcn.1010ae70
mov edx, dword [esp + 0x20]
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0x7d
mov edi, 0x100
je 0x10112508
test edx, edx
je 0x1011245e
lea edx, [esp + 0x20]
mov ecx, ebx
call fcn.100fc200
cmp dword [esp + 0x20], 8
jne 0x101123a9
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.100fbe60
mov edx, dword [ebx]
movzx ecx, byte [ebx + 0x34]
inc ecx
movzx eax, byte [edx + 8]
cmp ecx, eax
jbe 0x101123c7
cmp ecx, 0xff
jae 0x1011278b
mov byte [edx + 8], cl
inc byte [ebx + 0x34]
lea edx, [esp + 0x20]
movzx eax, byte [ebx + 0x34]
mov ecx, ebx
dec eax
push eax
call fcn.100fc780
add esp, 4
mov dword [esp + 0x20], 0
cmp dword [esp + 0x44], 0x32
jne 0x1011245e
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 8]
mov dword [esp + 0x14], ecx
cmp edx, 0xff
jg 0x1011241b
push 0
push edx
push 0x32
push ecx
mov edx, 0x4e
mov ecx, ebx
call fcn.100fbc50
add esp, 0x10
jmp 0x10112445
mov eax, edx
cdq
idiv edi
push 1
push edx
push 0x32
push ecx
mov edx, 0x4e
mov ecx, ebx
mov edi, eax
call fcn.100fbc50
add esp, 0x10
mov edx, edi
mov ecx, ebx
call fcn.100fbd50
mov edi, 0x100
mov eax, dword [esp + 0x14]
inc al
mov byte [ebx + 0x34], al
mov eax, dword [esp + 0x44]
add dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [esi + 0x10]
mov ecx, esi
cmp eax, 0x5b
je 0x101124a9
cmp eax, 0x123
je 0x10112483
push 0
lea edx, [esp + 0x24]
call fcn.10113520
add esp, 4
inc dword [esp + 0x44]
jmp 0x101124b2
lea edx, [esi + 0x28]
call fcn.1010ae70
mov dword [esi + 0x20], eax
lea edx, [esp + 0x20]
mov ecx, esi
cmp eax, 0x3d
je 0x101124ad
push 0
call fcn.10113520
add esp, 4
inc dword [esp + 0x44]
jmp 0x101124b2
lea edx, [esp + 0x20]
call fcn.10112110
cmp dword [esi + 0x10], 0x2c
je 0x101124be
cmp dword [esi + 0x10], 0x3b
jne 0x101124fa
cmp dword [esi + 0x20], 0x120
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
je 0x101124de
movups xmm0, xmmword [esi + 0x20]
mov dword [esi + 0x20], 0x120
movups xmmword [esi + 0x10], xmm0
jmp 0x101124eb
lea edx, [esi + 0x18]
mov ecx, esi
call fcn.1010ae70
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0x7d
je 0x101124fa
mov edx, dword [esp + 0x20]
jmp 0x10112384
cmp dword [esi + 0x10], 0x7d
mov edx, dword [esp + 0x20]
jne 0x1011274a
cmp dword [esi + 0x20], 0x120
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
je 0x10112528
movups xmm0, xmmword [esi + 0x20]
mov dword [esi + 0x20], 0x120
movups xmmword [esi + 0x10], xmm0
jmp 0x10112539
lea edx, [esi + 0x18]
mov ecx, esi
call fcn.1010ae70
mov edx, dword [esp + 0x20]
mov dword [esi + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x101126ba
cmp edx, 0x12
je 0x101125fe
cmp edx, 0x13
je 0x101125fe
test edx, edx
je 0x10112565
lea edx, [esp + 0x20]
mov ecx, ebx
call fcn.100fc8a0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edi, dword [eax + 8]
xor eax, eax
cmp dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x18], edi
cmovne eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
cmp esi, 0xff
jg 0x101125b8
push 0
push esi
push eax
push edi
mov edx, 0x4e
mov ecx, ebx
call fcn.100fbc50
mov eax, edi
add esp, 0x10
inc al
mov byte [ebx + 0x34], al
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x44]
mov dword [esp + 0x40], esi
jmp 0x101126be
mov eax, esi
mov ecx, 0x100
cdq
idiv ecx
push 1
push edx
push dword [esp + 0x1c]
mov edx, 0x4e
mov ecx, ebx
push edi
mov esi, eax
call fcn.100fbc50
add esp, 0x10
mov edx, esi
mov ecx, ebx
call fcn.100fbd50
mov eax, dword [esp + 0x18]
inc al
mov byte [ebx + 0x34], al
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x44]
mov dword [esp + 0x40], esi
jmp 0x101126be
mov eax, dword [ebx]
mov ecx, dword [eax + 0x34]
mov eax, dword [esp + 0x28]
lea esi, [ecx + eax*4]
cmp edx, 0x12
jne 0x10112615
mov byte [esi + 3], 0
jmp 0x1011264f
and dword [esi], 0xffffff
mov ecx, dword [esi]
movzx eax, byte [ebx + 0x34]
and ecx, 0xffff807f
shl eax, 7
or eax, ecx
mov dword [esi], eax
mov edx, dword [ebx]
movzx ecx, byte [ebx + 0x34]
inc ecx
movzx eax, byte [edx + 8]
cmp ecx, eax
jbe 0x1011264c
cmp ecx, 0xff
jae 0x101127a4
mov byte [edx + 8], cl
inc byte [ebx + 0x34]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
cmp edx, 0xff
jg 0x1011267d
push 0
push edx
push 0
push ecx
mov edx, 0x4e
mov ecx, ebx
call fcn.100fbc50
add esp, 0x10
jmp 0x101126a2
mov eax, edx
cdq
idiv edi
push 1
push edx
push 0
push ecx
mov edx, 0x4e
mov ecx, ebx
mov esi, eax
call fcn.100fbc50
add esp, 0x10
mov edx, esi
mov ecx, ebx
call fcn.100fbd50
mov eax, dword [esp + 0x18]
inc al
mov byte [ebx + 0x34], al
mov esi, dword [esp + 0x40]
dec esi
add esi, dword [esp + 0x44]
mov dword [esp + 0x40], esi
jmp 0x101126be
mov esi, dword [esp + 0x40]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x34]
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
je 0x101126f7
dec eax
cmp eax, 0x100
jb 0x101126ed
nop dword [eax]
shr eax, 8
add ecx, 8
cmp eax, 0x100
jae 0x101126e0
movzx eax, byte [eax + 0x103f7470]
inc ecx
add ecx, eax
mov eax, esi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
and esi, 0x800000ff
jns 0x10112715
dec esi
or esi, 0xffffff00
inc esi
shl esi, 8
mov edx, 0x100
or esi, ecx
xor ecx, ecx
shl esi, 9
test eax, eax
cmovg ecx, edx
mov edx, dword [esp + 0x10]
or esi, ecx
shl eax, 7
or esi, dword [edx + 8]
shl esi, 7
or esi, 0x13
or eax, 0x52
mov dword [edi], esi
mov dword [edi + 4], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
cmp eax, dword [esi + 4]
je 0x101127b1
push eax
push ecx
mov edx, 0x7b
mov ecx, esi
call fcn.101097c0
add esp, 4
mov edx, 0x7d
mov ecx, esi
push eax
call fcn.101097c0
push eax
push str._s_expected__to_close__s_at_line__d_
push dword [esi + 0x34]
call fcn.1010fdb0
add esp, 0x14
mov edx, eax
mov ecx, esi
call fcn.101098c0
mov ecx, dword [ebx + 8]
mov edx, str.function_or_expression_needs_too_many_registers
call fcn.101098c0
mov edx, 0x7b
mov ecx, esi
call fcn.10110d50
mov ecx, dword [ebx + 8]
mov edx, str.function_or_expression_needs_too_many_registers
call fcn.101098c0
mov edx, 0x7d
mov ecx, esi
call fcn.10110d50
int3