Function at 0x4ea5f0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x5539c4
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x5539f0
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553a1c
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553a4c
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553a90
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553abc
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553ae8
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553b18
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x553b5c
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x18]
push eax
push ecx
call fcn.004dc2b0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movzx ecx, byte [ecx]
mov edx, dword [edi + 0x1c]
test dl, 0x10
jne 0x4ea645
test dl, 0x20
jne 0x4ea67d
mov eax, ecx
mov edx, ecx
sar al, 7
xor dl, al
sub dl, al
cmp dl, 0x64
jb 0x4ea6d6
add dl, dl
mov esi, 0x24
add dl, 0x38
movzx eax, dl
mov dl, 1
movzx eax, word [eax + 0x54ff12]
mov word [ebp - 0x67], ax
jmp 0x4ea6e0
xor edx, edx
lea esi, [ebp - 0xc]
mov ch, cl
nop dword [eax]
mov ebx, ecx
shr ch, 4
and bl, 0xf
mov bh, bl
mov eax, ebx
add al, 0x57
or bh, 0x30
cmp bl, 0xa
movzx ebx, bh
movzx eax, al
cmovb eax, ebx
inc edx
cmp cl, 0x10
mov cl, ch
mov byte [esi - 1], al
lea esi, [esi - 1]
jae 0x4ea650
jmp 0x4ea6ba
xor edx, edx
lea esi, [ebp - 0xc]
mov ch, cl
nop word cs:[eax + eax]
nop
mov eax, ecx
shr ch, 4
and al, 0xf
mov ah, al
mov ebx, eax
add bl, 0x37
or ah, 0x30
cmp al, 0xa
movzx eax, ah
movzx ebx, bl
cmovb ebx, eax
inc edx
cmp cl, 0x10
mov cl, ch
mov byte [esi - 1], bl
lea esi, [esi - 1]
jae 0x4ea690
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4ea730
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
jmp 0x4ea71c
mov esi, 0x26
cmp dl, 0xa
jae 0x4ea6ec
or dl, 0x30
mov byte [ebp + esi - 0x8c], dl
jmp 0x4ea700
movzx eax, dl
mov esi, 0x25
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp - 0x67], ax
xor edx, edx
test cl, cl
mov ecx, 0x27
lea eax, [ebp + esi - 0x8c]
setns dl
sub ecx, esi
push ecx
push eax
push 0
push 1
push edx
push edi
call fcn.004df9b0
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x54fefc
push pe_nt_image_headers32
push ecx
call fcn.004e1c70
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movzx ecx, byte [ecx]
mov edx, dword [edi + 0x1c]
test dl, 0x10
jne 0x4ea797
test dl, 0x20
jne 0x4ea7cd
movzx esi, cl
cmp cl, 0x64
jb 0x4ea824
lea eax, [esi + esi*4]
mov edx, 0x24
lea ebx, [esi + eax*8]
shr ebx, 0xc
imul eax, ebx, 0x64
sub cl, al
movzx eax, cl
mov ecx, ebx
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp - 0x67], ax
jmp 0x4ea82e
xor edx, edx
lea esi, [ebp - 0xc]
mov ch, cl
nop
mov ebx, ecx
shr ch, 4
and bl, 0xf
mov bh, bl
mov eax, ebx
add al, 0x57
or bh, 0x30
cmp bl, 0xa
movzx ebx, bh
movzx eax, al
cmovb eax, ebx
inc edx
cmp cl, 0x10
mov cl, ch
mov byte [esi - 1], al
lea esi, [esi - 1]
jae 0x4ea7a0
jmp 0x4ea80a
xor edx, edx
lea esi, [ebp - 0xc]
mov ch, cl
nop word cs:[eax + eax]
nop
mov eax, ecx
shr ch, 4
and al, 0xf
mov ah, al
mov ebx, eax
add bl, 0x37
or ah, 0x30
cmp al, 0xa
movzx eax, ah
movzx ebx, bl
cmovb ebx, eax
inc edx
cmp cl, 0x10
mov cl, ch
mov byte [esi - 1], bl
lea esi, [esi - 1]
jae 0x4ea7e0
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4ea875
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
jmp 0x4ea85f
mov edx, 0x26
cmp cl, 0xa
jae 0x4ea83a
or cl, 0x30
mov byte [ebp + edx - 0x8c], cl
jmp 0x4ea84b
movzx eax, word [esi + esi + 0x54ff12]
mov edx, 0x25
mov word [ebp - 0x67], ax
mov ecx, 0x27
lea eax, [ebp + edx - 0x8c]
sub ecx, edx
push ecx
push eax
push 0
push 1
push 1
push edi
call fcn.004df9b0
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x54fefc
push pe_nt_image_headers32
push ecx
call fcn.004e1c70
nop word cs:[eax + eax]
nop
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
movzx edi, word [ecx]
mov edx, dword [ebx + 0x1c]
test dl, 0x10
jne 0x4ea919
test dl, 0x20
jne 0x4ea950
mov edx, edi
neg dx
cmovs dx, di
movzx eax, dx
cmp eax, 0x270f
jbe 0x4ea9b1
shr eax, 4
imul eax, eax, 0x347
shr eax, 0x13
imul ecx, eax, 0x2710
sub edx, ecx
movzx ecx, dx
imul ecx, ecx, 0x147b
shr ecx, 0x13
imul esi, ecx, 0x64
movzx ecx, word [ecx + ecx + 0x54ff12]
sub edx, esi
mov esi, 0x23
movzx edx, dx
movzx edx, word [edx + edx + 0x54ff12]
mov word [ebp - 0x69], cx
mov word [ebp - 0x67], dx
mov edx, eax
jmp 0x4ea9e9
xor edx, edx
lea esi, [ebp - 0xc]
nop
movzx ebx, di
mov eax, ebx
mov edi, ebx
and al, 0xf
shr edi, 4
mov ah, al
mov ecx, eax
add cl, 0x57
or ah, 0x30
cmp al, 0xa
movzx eax, ah
movzx ecx, cl
cmovb ecx, eax
inc edx
cmp bx, 0x10
mov byte [esi - 1], cl
lea esi, [esi - 1]
jae 0x4ea920
jmp 0x4ea98e
xor edx, edx
lea esi, [ebp - 0xc]
nop word cs:[eax + eax]
nop
movzx ebx, di
mov eax, ebx
mov edi, ebx
and al, 0xf
shr edi, 4
mov ecx, eax
mov ah, al
or cl, 0x30
add ah, 0x37
cmp al, 0xa
movzx ecx, cl
movzx eax, ah
cmovb eax, ecx
inc edx
cmp bx, 0x10
mov byte [esi - 1], al
lea esi, [esi - 1]
jae 0x4ea960
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4eaa3d
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 0xc]
jmp 0x4eaa2a
mov esi, 0x27
cmp dx, 0x63
jbe 0x4ea9e3
shr eax, 2
mov esi, 0x25
imul eax, eax, 0x147b
shr eax, 0x11
imul ecx, eax, 0x64
sub edx, ecx
movzx ecx, dx
mov edx, eax
movzx ecx, word [ecx + ecx + 0x54ff12]
mov word [ebp - 0x67], cx
cmp dx, 0xa
jae 0x4ea9f6
or dl, 0x30
mov byte [ebp + esi - 0x8d], dl
dec esi
jmp 0x4eaa0c
movzx eax, dx
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp + esi - 0x8e], ax
add esi, 0xfffffffe
xor edx, edx
test di, di
mov ecx, 0x27
lea eax, [ebp + esi - 0x8c]
setns dl
sub ecx, esi
push ecx
push eax
push 0
push 1
push edx
push ebx
call fcn.004df9b0
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x54fefc
push pe_nt_image_headers32
push ecx
call fcn.004e1c70
nop dword [eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movzx ecx, word [ecx]
mov edx, dword [edi + 0x1c]
test dl, 0x10
jne 0x4eaad1
test dl, 0x20
jne 0x4eab10
movzx esi, cx
cmp esi, 0x270f
jbe 0x4eab71
shr esi, 4
imul esi, esi, 0x347
shr esi, 0x13
imul eax, esi, 0x2710
sub ecx, eax
movzx eax, cx
imul eax, eax, 0x147b
shr eax, 0x13
imul edx, eax, 0x64
movzx eax, word [eax + eax + 0x54ff12]
sub ecx, edx
mov edx, 0x23
movzx ecx, cx
movzx ecx, word [ecx + ecx + 0x54ff12]
mov word [ebp - 0x69], ax
mov word [ebp - 0x67], cx
mov ecx, esi
jmp 0x4eaba9
xor edi, edi
lea esi, [ebp - 0xc]
nop word cs:[eax + eax]
movzx ebx, cx
mov eax, ebx
mov ecx, ebx
and al, 0xf
shr ecx, 4
mov ah, al
mov edx, eax
add dl, 0x57
or ah, 0x30
cmp al, 0xa
movzx eax, ah
movzx edx, dl
cmovb edx, eax
inc edi
cmp bx, 0x10
mov byte [esi - 1], dl
lea esi, [esi - 1]
jae 0x4eaae0
jmp 0x4eab4e
xor edi, edi
lea esi, [ebp - 0xc]
nop word cs:[eax + eax]
nop
movzx ebx, cx
mov eax, ebx
mov ecx, ebx
and al, 0xf
shr ecx, 4
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 edi
cmp bx, 0x10
mov byte [esi - 1], dl
lea esi, [esi - 1]
jae 0x4eab20
mov ecx, pe_nt_image_headers32
sub ecx, edi
cmp ecx, 0x81
jae 0x4eabf6
push edi
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 0xc]
jmp 0x4eabe3
mov edx, 0x27
cmp cx, 0x63
jbe 0x4eaba3
shr esi, 2
mov edx, 0x25
imul esi, esi, 0x147b
shr esi, 0x11
imul eax, esi, 0x64
sub ecx, eax
movzx eax, cx
mov ecx, esi
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp - 0x67], ax
cmp cx, 0xa
jae 0x4eabb6
or cl, 0x30
mov byte [ebp + edx - 0x8d], cl
dec edx
jmp 0x4eabcc
movzx eax, cx
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp + edx - 0x8e], ax
add edx, 0xfffffffe
mov ecx, 0x27
lea eax, [ebp + edx - 0x8c]
sub ecx, edx
push ecx
push eax
push 0
push 1
push 1
push edi
call fcn.004df9b0
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x54fefc
push pe_nt_image_headers32
push ecx
call fcn.004e1c70
nop word cs:[eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x84
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [eax]
mov eax, dword [ecx + 0x1c]
test al, 0x10
jne 0x4ead03
test al, 0x20
jne 0x4ead44
mov ecx, edi
mov eax, 0x27
mov dword [ebp - 0x10], edi
neg ecx
cmovs ecx, edi
cmp ecx, 0x2710
jb 0x4ead9e
mov esi, 0x27
nop word [eax + eax]
mov eax, ecx
mov edx, 0xd1b71759
mul edx
mov eax, ecx
shr edx, 0xd
imul ebx, edx, 0x2710
sub eax, ebx
imul ebx, eax, 0x147b
shr ebx, 0x13
imul edi, ebx, 0x64
sub eax, edi
movzx edi, word [ebx + ebx + 0x54ff12]
cmp ecx, 0x5f5e0ff
mov ecx, edx
movzx eax, ax
movzx eax, word [eax + eax + 0x54ff12]
mov word [ebp + esi - 0x94], di
mov word [ebp + esi - 0x92], ax
lea eax, [esi - 4]
mov esi, eax
ja 0x4eac60
cmp edx, 0x63
jbe 0x4eace7
movzx ecx, dx
shr ecx, 2
imul ecx, ecx, 0x147b
shr ecx, 0x11
imul esi, ecx, 0x64
sub edx, esi
movzx edx, dx
movzx edx, word [edx + edx + 0x54ff12]
mov word [ebp + eax - 0x92], dx
add eax, 0xfffffffe
mov edx, ecx
mov esi, dword [ebp - 0x10]
cmp edx, 0xa
jae 0x4eadae
or dl, 0x30
mov byte [ebp + eax - 0x91], dl
dec eax
jmp 0x4eadc1
xor eax, eax
lea esi, [ebp - 0x10]
mov edx, edi
nop word [eax + eax]
mov ecx, edi
shr edx, 4
mov dword [ebp - 0x10], edi
mov ebx, ecx
and bl, 0xf
mov bh, bl
mov ecx, ebx
add cl, 0x57
or bh, 0x30
cmp bl, 0xa
movzx edi, bh
movzx ecx, cl
cmovb ecx, edi
inc eax
cmp dword [ebp - 0x10], 0x10
mov edi, edx
mov byte [esi - 1], cl
lea esi, [esi - 1]
jae 0x4ead10
jmp 0x4ead82
xor eax, eax
lea esi, [ebp - 0x10]
mov edx, edi
nop dword [eax + eax]
mov ecx, edi
shr edx, 4
mov dword [ebp - 0x10], edi
mov ebx, ecx
and bl, 0xf
mov bh, bl
mov ecx, ebx
add cl, 0x37
or bh, 0x30
cmp bl, 0xa
movzx edi, bh
movzx ecx, cl
cmovb ecx, edi
inc eax
cmp dword [ebp - 0x10], 0x10
mov edi, edx
mov byte [esi - 1], cl
lea esi, [esi - 1]
jae 0x4ead50
mov edx, pe_nt_image_headers32
sub edx, eax
cmp edx, 0x81
jae 0x4eadf1
push eax
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
jmp 0x4eaddb
mov edx, ecx
cmp edx, 0x63
ja 0x4eacbb
jmp 0x4eace7
movzx ecx, word [edx + edx + 0x54ff12]
mov word [ebp + eax - 0x92], cx
add eax, 0xfffffffe
mov edx, 0x27
not esi
lea ecx, [ebp + eax - 0x90]
sub edx, eax
shr esi, 0x1f
push edx
push ecx
push 0
push 1
push esi
push dword [ebp + 0xc]
call fcn.004df9b0
add esp, 0x18
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x54fefc
push pe_nt_image_headers32
push edx
call fcn.004e1c70
nop word cs:[eax + eax]
nop dword [eax + eax]