Function at 0x100ec5c0
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 0x100ec68a
test al, 0x20
jne 0x100ec6f7
cmp ecx, 0x2710
mov eax, esi
mov ebx, 0x27
sbb eax, 0
jb 0x100ec761
nop word [eax + eax]
mov dword [ebp - 0x14], ebx
mov edi, ecx
push 0
push 0x2710
push esi
push ecx
call sym.___udivdi3
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 + 0x1016f86e]
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 + 0x1016f86e]
mov word [ebp + edx - 0x96], ax
jb 0x100ec600
mov edi, dword [ebp + 8]
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
ja 0x100ec76a
jmp 0x100ec796
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 0x100ec6a0
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 0x81
jae 0x100ec7e5
push ebx
push eax
jmp 0x100ec753
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 0x100ec700
mov eax, pe_nt_image_headers32
sub eax, ebx
cmp eax, 0x81
jae 0x100ec7f5
push ebx
push edx
push 2
push 0x1016f86a
push 1
push dword [ebp + 8]
jmp 0x100ec7d2
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
jbe 0x100ec796
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 + 0x1016f86e]
mov word [ebp + ebx - 0x96], ax
add ebx, 0xfffffffe
cmp edx, 0xa
jae 0x100ec7a8
or dl, 0x30
mov byte [ebp + ebx - 0x95], dl
dec ebx
jmp 0x100ec7bb
movzx eax, word [edx + edx + 0x1016f86e]
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 sym.core::fmt::Formatter::pad_integral::h28e078352f6158cf
add esp, 0x18
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x1016f858
push pe_nt_image_headers32
push edx
call sym.core::slice::index::slice_start_index_len_fail::hb6088e54b0b075d5
push 0x1016f858
push pe_nt_image_headers32
push eax
call sym.core::slice::index::slice_start_index_len_fail::hb6088e54b0b075d5
nop word cs:[eax + eax]
nop