Function at 0x100ec170
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x88
mov edi, dword [ebp + 8]
mov esi, edx
mov eax, dword [edi + 0x1c]
test al, 0x10
jne 0x100ec23a
test al, 0x20
jne 0x100ec2a7
cmp ecx, 0x2710
mov eax, esi
mov ebx, 0x27
sbb eax, 0
jb 0x100ec311
nop word [eax + eax]
mov dword [ebp - 0x14], ebx
mov edi, ecx
push 0
push 0x2710
push esi
push ecx
call fcn.100f26d0
add esp, 0x10
mov ecx, eax
imul eax, eax, 0x2710
mov ebx, edi
mov dword [ebp - 0x10], edx
sub ebx, eax
movzx eax, bx
shr eax, 2
imul edx, eax, 0x147b
shr edx, 0x11
imul eax, edx, 0x64
sub ebx, eax
mov eax, 0x5f5e0ff
cmp eax, edi
mov eax, 0
sbb eax, esi
movzx eax, word [edx + edx + 0x106aa932]
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov word [ebp + edx - 0x98], ax
movzx eax, bx
lea ebx, [edx - 4]
movzx eax, word [eax + eax + 0x106aa932]
mov word [ebp + edx - 0x96], ax
jb 0x100ec1b0
mov edi, dword [ebp + 8]
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
ja 0x100ec31a
jmp 0x100ec346
xor ebx, ebx
lea eax, [ebp - 0x14]
mov edi, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, esi
mov dword [ebp - 0x10], eax
shr edi, 4
shld edx, ecx, 0x1c
mov dword [ebp - 0x14], edx
mov edx, ecx
and dl, 0xf
mov dh, dl
mov eax, edx
add al, 0x57
or dh, 0x30
cmp dl, 0xa
movzx edx, dh
movzx eax, al
cmovb eax, edx
mov edx, dword [ebp - 0x10]
inc ebx
cmp ecx, 0x10
mov ecx, dword [ebp - 0x14]
sbb esi, 0
mov esi, edi
mov byte [edx - 1], al
lea eax, [edx - 1]
jae 0x100ec250
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 0x81
jae 0x100ec395
push ebx
push eax
jmp 0x100ec303
xor ebx, ebx
lea edx, [ebp - 0x14]
mov edi, esi
nop
mov eax, esi
mov dword [ebp - 0x10], ecx
shr edi, 4
shld eax, ecx, 0x1c
mov dword [ebp - 0x14], eax
mov eax, ecx
mov ecx, edx
and al, 0xf
mov ah, al
mov edx, eax
add dl, 0x37
or ah, 0x30
cmp al, 0xa
movzx eax, ah
movzx edx, dl
cmovb edx, eax
inc ebx
cmp dword [ebp - 0x10], 0x10
mov byte [ecx - 1], dl
lea edx, [ecx - 1]
mov ecx, dword [ebp - 0x14]
sbb esi, 0
mov esi, edi
jae 0x100ec2b0
mov eax, pe_nt_image_headers32
sub eax, ebx
cmp eax, 0x81
jae 0x100ec3a5
push ebx
push edx
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 8]
jmp 0x100ec382
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
jbe 0x100ec346
mov ecx, eax
movzx eax, cx
shr eax, 2
imul edx, eax, 0x147b
shr edx, 0x11
imul eax, edx, 0x64
sub ecx, eax
movzx eax, cx
movzx eax, word [eax + eax + 0x106aa932]
mov word [ebp + ebx - 0x96], ax
add ebx, 0xfffffffe
cmp edx, 0xa
jae 0x100ec358
or dl, 0x30
mov byte [ebp + ebx - 0x95], dl
dec ebx
jmp 0x100ec36b
movzx eax, word [edx + edx + 0x106aa932]
mov word [ebp + ebx - 0x96], ax
add ebx, 0xfffffffe
mov edx, 0x27
lea eax, [ebp + ebx - 0x94]
sub edx, ebx
push edx
push eax
push 0
push 1
push 1
push edi
call fcn.100df850
add esp, 0x18
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x106aa91c
push pe_nt_image_headers32
push edx
call fcn.100e1b10
push 0x106aa91c
push pe_nt_image_headers32
push eax
call fcn.100e1b10
nop word cs:[eax + eax]
nop
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x28
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [ecx]
mov ch, cl
mov edx, ecx
sar ch, 7
xor dl, ch
sub dl, ch
cmp dl, 0x64
jb 0x100ec3fd
add dl, dl
mov esi, 0x24
add dl, 0x38
movzx edx, dl
movzx edx, word [edx + 0x106aa932]
mov word [ebp - 0xa], dx
mov dl, 1
jmp 0x100ec407
mov esi, 0x26
cmp dl, 0xa
jae 0x100ec410
or dl, 0x30
mov byte [ebp + esi - 0x2f], dl
jmp 0x100ec424
movzx edx, dl
mov esi, 0x25
movzx edx, word [edx + edx + 0x106aa932]
mov word [ebp - 0xa], dx
xor edx, edx
test cl, cl
mov edi, 0x27
lea ecx, [ebp + esi - 0x2f]
setns dl
sub edi, esi
push edi
push ecx
push 0
push 1
push edx
push eax
call fcn.100df850
add esp, 0x40
pop esi
pop edi
pop ebp
ret