Function at 0x1009dd90
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 0x1009de5a
test al, 0x20
jne 0x1009dec7
cmp ecx, 0x2710
mov eax, esi
mov ebx, 0x27
sbb eax, 0
jb 0x1009df31
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 + 0x101396c2]
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 + 0x101396c2]
mov word [ebp + edx - 0x96], ax
jb 0x1009ddd0
mov edi, dword [ebp + 8]
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
ja 0x1009df3a
jmp 0x1009df66
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 0x1009de70
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 0x81
jae 0x1009dfb5
push ebx
push eax
jmp 0x1009df23
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 0x1009ded0
mov eax, pe_nt_image_headers32
sub eax, ebx
cmp eax, 0x81
jae 0x1009dfc5
push ebx
push edx
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 8]
jmp 0x1009dfa2
mov eax, ecx
mov edx, ecx
cmp edx, 0x63
jbe 0x1009df66
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 + 0x101396c2]
mov word [ebp + ebx - 0x96], ax
add ebx, 0xfffffffe
cmp edx, 0xa
jae 0x1009df78
or dl, 0x30
mov byte [ebp + ebx - 0x95], dl
dec ebx
jmp 0x1009df8b
movzx eax, word [edx + edx + 0x101396c2]
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::hbe631f7bb92d6830
add esp, 0x18
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x101396ac
push pe_nt_image_headers32
push edx
call sym.core::slice::index::slice_start_index_len_fail::h7e8587be95abf61b
push 0x101396ac
push pe_nt_image_headers32
push eax
call sym.core::slice::index::slice_start_index_len_fail::h7e8587be95abf61b
nop word cs:[eax + eax]
nop