Function at 0x4c1d50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f4824
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f4850
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f487c
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f48ac
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f48f0
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f491c
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f4948
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f4978
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.004b3a10
nop word cs:[eax + eax]
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0x4f49bc
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.004b3a10
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 0x4c1da5
test dl, 0x20
jne 0x4c1ddd
mov eax, ecx
mov edx, ecx
sar al, 7
xor dl, al
sub dl, al
cmp dl, 0x64
jb 0x4c1e36
add dl, dl
mov esi, 0x24
add dl, 0x38
movzx eax, dl
mov dl, 1
movzx eax, word [eax + 0x4f0d72]
mov word [ebp - 0x67], ax
jmp 0x4c1e40
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 0x4c1db0
jmp 0x4c1e1a
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 0x4c1df0
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4c1e90
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
jmp 0x4c1e7c
mov esi, 0x26
cmp dl, 0xa
jae 0x4c1e4c
or dl, 0x30
mov byte [ebp + esi - 0x8c], dl
jmp 0x4c1e60
movzx eax, dl
mov esi, 0x25
movzx eax, word [eax + eax + 0x4f0d72]
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.004b7110
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f0d5c
push pe_nt_image_headers32
push ecx
call fcn.004b93d0
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 0x4c1ef7
test dl, 0x20
jne 0x4c1f2d
movzx esi, cl
cmp cl, 0x64
jb 0x4c1f84
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 + 0x4f0d72]
mov word [ebp - 0x67], ax
jmp 0x4c1f8e
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 0x4c1f00
jmp 0x4c1f6a
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 0x4c1f40
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4c1fd5
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
jmp 0x4c1fbf
mov edx, 0x26
cmp cl, 0xa
jae 0x4c1f9a
or cl, 0x30
mov byte [ebp + edx - 0x8c], cl
jmp 0x4c1fab
movzx eax, word [esi + esi + 0x4f0d72]
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.004b7110
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f0d5c
push pe_nt_image_headers32
push ecx
call fcn.004b93d0
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 0x4c2079
test dl, 0x20
jne 0x4c20b0
mov edx, edi
neg dx
cmovs dx, di
movzx eax, dx
cmp eax, 0x270f
jbe 0x4c2111
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 + 0x4f0d72]
sub edx, esi
mov esi, 0x23
movzx edx, dx
movzx edx, word [edx + edx + 0x4f0d72]
mov word [ebp - 0x69], cx
mov word [ebp - 0x67], dx
mov edx, eax
jmp 0x4c2149
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 0x4c2080
jmp 0x4c20ee
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 0x4c20c0
mov ecx, pe_nt_image_headers32
sub ecx, edx
cmp ecx, 0x81
jae 0x4c219d
push edx
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 0xc]
jmp 0x4c218a
mov esi, 0x27
cmp dx, 0x63
jbe 0x4c2143
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 + 0x4f0d72]
mov word [ebp - 0x67], cx
cmp dx, 0xa
jae 0x4c2156
or dl, 0x30
mov byte [ebp + esi - 0x8d], dl
dec esi
jmp 0x4c216c
movzx eax, dx
movzx eax, word [eax + eax + 0x4f0d72]
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.004b7110
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f0d5c
push pe_nt_image_headers32
push ecx
call fcn.004b93d0
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 0x4c2231
test dl, 0x20
jne 0x4c2270
movzx esi, cx
cmp esi, 0x270f
jbe 0x4c22d1
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 + 0x4f0d72]
sub ecx, edx
mov edx, 0x23
movzx ecx, cx
movzx ecx, word [ecx + ecx + 0x4f0d72]
mov word [ebp - 0x69], ax
mov word [ebp - 0x67], cx
mov ecx, esi
jmp 0x4c2309
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 0x4c2240
jmp 0x4c22ae
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 0x4c2280
mov ecx, pe_nt_image_headers32
sub ecx, edi
cmp ecx, 0x81
jae 0x4c2356
push edi
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
push dword [ebp + 0xc]
jmp 0x4c2343
mov edx, 0x27
cmp cx, 0x63
jbe 0x4c2303
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 + 0x4f0d72]
mov word [ebp - 0x67], ax
cmp cx, 0xa
jae 0x4c2316
or cl, 0x30
mov byte [ebp + edx - 0x8d], cl
dec edx
jmp 0x4c232c
movzx eax, cx
movzx eax, word [eax + eax + 0x4f0d72]
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.004b7110
add esp, 0x18
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f0d5c
push pe_nt_image_headers32
push ecx
call fcn.004b93d0
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 0x4c2463
test al, 0x20
jne 0x4c24a4
mov ecx, edi
mov eax, 0x27
mov dword [ebp - 0x10], edi
neg ecx
cmovs ecx, edi
cmp ecx, 0x2710
jb 0x4c24fe
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 + 0x4f0d72]
cmp ecx, 0x5f5e0ff
mov ecx, edx
movzx eax, ax
movzx eax, word [eax + eax + 0x4f0d72]
mov word [ebp + esi - 0x94], di
mov word [ebp + esi - 0x92], ax
lea eax, [esi - 4]
mov esi, eax
ja 0x4c23c0
cmp edx, 0x63
jbe 0x4c2447
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 + 0x4f0d72]
mov word [ebp + eax - 0x92], dx
add eax, 0xfffffffe
mov edx, ecx
mov esi, dword [ebp - 0x10]
cmp edx, 0xa
jae 0x4c250e
or dl, 0x30
mov byte [ebp + eax - 0x91], dl
dec eax
jmp 0x4c2521
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 0x4c2470
jmp 0x4c24e2
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 0x4c24b0
mov edx, pe_nt_image_headers32
sub edx, eax
cmp edx, 0x81
jae 0x4c2551
push eax
push esi
push 2
push str.0x0b0o00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899assertion_failed:_curr___19
push 1
jmp 0x4c253b
mov edx, ecx
cmp edx, 0x63
ja 0x4c241b
jmp 0x4c2447
movzx ecx, word [edx + edx + 0x4f0d72]
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.004b7110
add esp, 0x18
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f0d5c
push pe_nt_image_headers32
push edx
call fcn.004b93d0
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [ebp - 4], ecx
lea ecx, [ebp - 4]
push eax
push ecx
call fcn.004c3850
add esp, 0xc
pop ebp
ret