Function at 0x41efac
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push ecx
add esp, 4
call 0x41eeac
add byte [esi], dh
inc esi
inc ebx
dec esp
xor edi, dword [ecx]
dec ecx
add esp, 4
add ebx, 0xeb11
or ebx, 0x12b2e
call 0x41eec7
add byte [edx + 0x40], cl
cmp edi, dword [eax]
cmp al, 0x50
add esp, 4
pop ebx
lea edx, [ebp - 0x1770]
mov dword [ebp - 0xcdc], edx
mov eax, dword [ebp - 0x448]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcd8], ecx
xor edx, edx
mov word [ebp - 0x1c8], dx
xor eax, eax
mov word [ebp - 0x34], ax
push eax
push edi
add esp, 4
jmp 0x41ef00
add eax, 0x13e1c
sub eax, 0x372d
pop eax
push ebx
or ebx, 0x109b8
or ebx, 0x15a7f
pop ebx
push eax
push eax
add esp, 4
add eax, 0xb86a
pop eax
mov ecx, dword [ebp - 0xcd8]
mov dx, word [ecx]
mov word [ebp - 0x1066], dx
mov eax, dword [ebp - 0xcd8]
add eax, 2
mov dword [ebp - 0xcd8], eax
mov cx, word [ebp - 0x1066]
mov word [ebp - 0x1c8], cx
mov edx, dword [ebp - 0xcdc]
mov ax, word [edx]
mov word [ebp - 0x1068], ax
mov ecx, dword [ebp - 0xcdc]
add ecx, 2
mov dword [ebp - 0xcdc], ecx
mov dx, word [ebp - 0x1068]
mov word [ebp - 0x34], dx
push edi
add edi, 0x143eb
sub edi, 0x18390
add edi, 0x5a30
and edi, 0x109ea
pop edi
push ebx
push ebx
add esp, 4
call 0x41efac
add byte [eax], al
add byte [edi + 0x44], al
dec esi
inc esp
xor eax, 0x48474f40
add esp, 4
pop ebx
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x41efcd
movzx ecx, word [ebp - 0x1c8]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x163c], ecx
jmp 0x41f027
movzx eax, word [ebp - 0x1c8]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x41eef5
movzx edx, word [ebp - 0x1c8]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x41eef5
movzx ecx, word [ebp - 0x1c8]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x41f011
mov dword [ebp - 0x1638], 0xffffffff
jmp 0x41f01b
mov dword [ebp - 0x1638], 1
mov eax, dword [ebp - 0x1638]
mov dword [ebp - 0x163c], eax
cmp dword [ebp - 0x163c], 0
jne 0x41f070
push ebx
sub ebx, 0x47e5
call 0x41f043
add byte [ebx], dh
xor eax, 0x3733464a
add esp, 4
pop ebx
push esi
add esi, 0x11051
and esi, 0x15393
jmp 0x41f059
pop esi
push edx
sub edx, 0xd779
pop edx
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x2fc], ecx
jmp 0x41f0d8
push eax
push ebx
add esp, 4
sub eax, 0x128ff
call 0x41f08a
add byte [0x43323b42], bh
inc ebx
dec ebp
cmp al, byte [ebp - 0x7d]
les eax, [eax + ebx*2]
push eax
push edi
add esp, 4
jmp 0x41f09b
and eax, 0xd921
pop eax
mov edx, dword [ebp - 0x448]
mov eax, dword [edx]
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x448]
cmp ecx, dword [ebp - 0xce0]
je 0x41f0ce
mov edx, dword [ebp - 0x448]
cmp dword [edx + 0x30], 0
jne 0x41ee99
mov dword [ebp - 0x2fc], 0
push ebx
or ebx, 0x13348
or ebx, 0x115f7
pop ebx
push edi
push ebx
add esp, 4
or edi, 0x3bb3
call 0x41f100
add byte [edi + 0x39], cl
inc ebx
dec ebx
aaa
inc esi
dec ecx
dec edx
xor al, byte [ebx - 0x107efb3c]
lodsd eax, dword [esi]
inc edi
add byte [eax], al
pop edi
cmp dword [ebp - 0x2fc], 0
add byte [edi], cl
test eax, edi
or byte [eax], al
invalid
mov eax, 0x6b
mov word [ebp - 0x17c8], ax
mov ecx, 0x65
mov word [ebp - 0x17c6], cx
mov edx, 0x72
mov word [ebp - 0x17c4], dx
mov eax, 0x6e
mov word [ebp - 0x17c2], ax
mov ecx, 0x65
mov word [ebp - 0x17c0], cx
mov edx, 0x6c
mov word [ebp - 0x17be], dx
mov eax, 0x33
mov word [ebp - 0x17bc], ax
mov ecx, 0x32
mov word [ebp - 0x17ba], cx
mov edx, 0x2e
mov word [ebp - 0x17b8], dx
mov eax, 0x64
mov word [ebp - 0x17b6], ax
mov ecx, 0x6c
mov word [ebp - 0x17b4], cx
mov edx, 0x6c
mov word [ebp - 0x17b2], dx
xor eax, eax
mov word [ebp - 0x17b0], ax
push ecx
add ecx, 0xcd04
and ecx, 0x10eeb
xor ecx, 0x8558
pop ecx
push esi
push ecx
add esp, 4
jmp 0x41f1ce
or esi, 0x973b
or esi, 0x5531
jmp 0x41f1e1
pop esi
mov byte [ebp - 0x8cc], 0x4c
mov byte [ebp - 0x8cb], 0x6f
mov byte [ebp - 0x8ca], 0x61
mov byte [ebp - 0x8c9], 0x64
mov byte [ebp - 0x8c8], 0x4c
mov byte [ebp - 0x8c7], 0x69
mov byte [ebp - 0x8c6], 0x62
mov byte [ebp - 0x8c5], 0x72
mov byte [ebp - 0x8c4], 0x61
mov byte [ebp - 0x8c3], 0x72
mov byte [ebp - 0x8c2], 0x79
mov byte [ebp - 0x8c1], 0x57
mov byte [ebp - 0x8c0], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19d4], ecx
mov edx, dword [ebp - 0x19d4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19d8], eax
mov ecx, dword [ebp - 0x19d8]
mov dword [ebp - 0x1640], ecx
push edi
push edi
add esp, 4
add edi, 0x3635
or edi, 0x1554d
or edi, 0x14005
pop edi
push ecx
sub ecx, 0xe2e7
and ecx, 0x121a0
jmp 0x41f290
or ecx, 0x87
pop ecx
cmp dword [ebp - 0x1640], 0
jne 0x41f2af
mov dword [ebp - 0x784], 0
jmp 0x41f556
mov edx, dword [ebp - 0x1640]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcec], ecx
push edi
call 0x41f2cf
add byte [edi + 0x38], al
inc ebx
dec ebp
dec edi
inc edx
dec edx
add esp, 4
and edi, 0x124ab
xor edi, 0x843f
pop edi
push ecx
xor ecx, 0x9211
and ecx, 0x4dd
or ecx, 0xdd56
pop ecx
cmp dword [ebp - 0xcec], 0
jne 0x41f30b
mov dword [ebp - 0x784], 0
jmp 0x41f556
mov edx, dword [ebp - 0xcec]
mov dword [ebp - 0x444], edx
push ecx
push edi
add esp, 4
or ecx, 0x8928
xor ecx, 0x4446
pop ecx
push eax
xor eax, 0x1545f
pop eax
push edi
push edx
add esp, 4
xor edi, 0xd362
xor edi, 0x13a1f
or edi, 0x153a6
pop edi
lea eax, [ebp - 0x17c8]
mov dword [ebp - 0xce8], eax
mov ecx, dword [ebp - 0x444]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xce4], edx
xor eax, eax
mov word [ebp - 0x1cc], ax
xor ecx, ecx
mov word [ebp - 0x38], cx
push esi
push edi
add esp, 4
and esi, 0x816d
xor esi, 0xd2b9
pop esi
push ebx
call 0x41f395
add byte [0x3b4b4a38], dh
dec ebx
inc edx
dec esi
inc ebx
add esp, 4
sub ebx, 0xb6c8
or ebx, 0xca40
pop ebx
mov edx, dword [ebp - 0xce4]
mov ax, word [edx]
mov word [ebp - 0x106a], ax
mov ecx, dword [ebp - 0xce4]
add ecx, 2
mov dword [ebp - 0xce4], ecx
mov dx, word [ebp - 0x106a]
mov word [ebp - 0x1cc], dx
mov eax, dword [ebp - 0xce8]
mov cx, word [eax]
mov word [ebp - 0x106c], cx
mov edx, dword [ebp - 0xce8]
add edx, 2
mov dword [ebp - 0xce8], edx
mov ax, word [ebp - 0x106c]
mov word [ebp - 0x38], ax
push edi
or edi, 0x5289
or edi, 0x3364
pop edi
push ebx
push ebx
add esp, 4
and ebx, 0xca66
pop ebx
push edi
call 0x41f424
add byte [edi], dh
xor eax, 0x3b4c3748
aas
add esp, 4
xor edi, 0x17889
pop edi
movzx ecx, word [ebp - 0x38]
test ecx, ecx
jne 0x41f44b
movzx edx, word [ebp - 0x1cc]
movzx eax, word [ebp - 0x38]
sub edx, eax
mov dword [ebp - 0x1648], edx
jmp 0x41f4a5
movzx ecx, word [ebp - 0x1cc]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
je 0x41f373
movzx eax, word [ebp - 0x1cc]
xor eax, 0x20
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x41f373
movzx edx, word [ebp - 0x1cc]
movzx eax, word [ebp - 0x38]
cmp edx, eax
jge 0x41f48f
mov dword [ebp - 0x1644], 0xffffffff
jmp 0x41f499
mov dword [ebp - 0x1644], 1
mov ecx, dword [ebp - 0x1644]
mov dword [ebp - 0x1648], ecx
cmp dword [ebp - 0x1648], 0
jne 0x41f4ee
push ecx
sub ecx, 0x160db
and ecx, 0x383c
add ecx, 0x2ef9
pop ecx
push edi
push ebx
add esp, 4
xor edi, 0x116bc
and edi, 0xd64a
xor edi, 0x16452
or edi, 0x133f4
pop edi
mov edx, dword [ebp - 0x444]
mov dword [ebp - 0x784], edx
jmp 0x41f556
push ebx
jmp 0x41f4f8
jmp 0x41f4ff
add ebx, 0x8eb9
pop ebx
push ebx
jmp 0x41f50e
call 0x41f51c
add byte [ecx + 0x3e], al
xor dh, byte [edx]
cmp eax, 0xc483393b
add al, 0x5b
mov eax, dword [ebp - 0x444]
mov ecx, dword [eax]
mov dword [ebp - 0x444], ecx
mov edx, dword [ebp - 0x444]
cmp edx, dword [ebp - 0xcec]
je 0x41f54c
mov eax, dword [ebp - 0x444]
cmp dword [eax + 0x30], 0
jne 0x41f317
mov dword [ebp - 0x784], 0
push edx
push edx
add esp, 4
jmp 0x41f560
pop edx
push eax
push edx
add esp, 4
jmp 0x41f56d
xor eax, 0x1732a
and eax, 0xd855
pop eax
push esi
sub esi, 0xd147
or esi, 0x250
pop esi
cmp dword [ebp - 0x784], 0
jne 0x41f5d2
push ecx
or ecx, 0x2759
sub ecx, 0x122d3
pop ecx
push eax
and eax, 0xb136
or eax, 0xf3b5
sub eax, 0xbb10
jmp 0x41f5ba
pop eax
push edx
and edx, 0x165ad
pop edx
mov dword [ebp - 0xa80], 0
jmp 0x4200fa
push edi
call 0x41f5df
add byte [ebx + 0x37], al
xor eax, 0x834d373e
les eax, [ecx + eax*4]
iretd
push eax
and eax, 0xd887
xor eax, 0x15bb5
pop eax
push edi
and edi, 0x3f9
and edi, 0x7b45
sub edi, 0xd089
pop edi
push edx
and edx, 0x147a8
pop edx
push ecx
and ecx, 0xc1d2
pop ecx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19f4], ecx
mov edx, dword [ebp - 0x19f4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19f8], eax
mov ecx, dword [ebp - 0x19f8]
mov dword [ebp - 0x16a8], ecx
push ebx
xor ebx, 0x50c0
add ebx, 0xc22e
pop ebx
push ebx
push esi
add esp, 4
xor ebx, 0x103f6
xor ebx, 0x2cef
call 0x41fa97
add byte [ebx], dh
inc eax
xor al, 0x43
aas
inc eax
dec esp
cmp al, 0x83
les eax, [ebx + ebx*2]
cmp dword [ebp - 0x16a8], 0
jne 0x41fab3
mov dword [ebp - 0x2fc], 0
jmp 0x41fd5a
mov edx, dword [ebp - 0x16a8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcfc], ecx
push edi
xor edi, 0xc506
sub edi, 0x136d7
xor edi, 0x8e1
and edi, 0xf46c
pop edi
push ecx
push edi
add esp, 4
call 0x41faf3
add byte [ecx + 0x44], cl
cmp dword [0x3747373e], esi
cmp al, byte [ebx - 0x7ca6fb3c]
mov ebp, 0xfffff304
add byte [ebp + 0xf], dh
mov dword [ebp - 0x2fc], 0
jmp 0x41fd5a
push edi
sub edi, 0x2d04
sub edi, 0xb358
sub edi, 0x16414
sub edi, 0x961d
pop edi
push esi
push ebx
add esp, 4
jmp 0x41fd7f
and esi, 0x395e
and esi, 0xe3df
pop esi
mov ecx, dword [ebp - 0x2fc]
invalid
dec dword [ebx - 0x6a76e7af]
pushal
cld
invalid
call dword [esi + 0x52]
add esp, 4
or esi, 0x14c57
into
push edi
dec esp
add dword [eax], eax
call 0x41fdb3
add byte [eax + 0x46], cl
dec eax
cmp ecx, dword [eax + 0x3e]
aaa
add esp, 4
call 0x41fdc3
add byte [edi + esi], dh
dec esp
push eax
inc ebp
dec esi
inc esp
add esp, 4
add esi, 0x10e90
pop esi
mov dword [ebp - 0x7a4], 0
invalid
invalid
pushal
push ebx
push edi
add esp, 4
and ebx, 0x9630
xor ebx, 0x15acb
xor ebx, 0x1471f
pop ebx
push ecx
add ecx, 0x9855
and ecx, 0xd144
pop ecx
push ebx
push eax
add esp, 4
add al, 0x81
ret
and dh, byte [ecx + eax]
pop ebx
mov edx, dword [ebp - 0xa80]
mov dword [ebp - 0x1a0c], edx
lea eax, [ebp - 0xd04]
push eax
push 0x40
mov ecx, dword [ebp - 0x16c0]
push ecx
mov edx, dword [ebp - 0x408]
push edx
call dword [ebp - 0x1a0c]
test eax, eax
jne 0x42019f
push esi
push edi
add esp, 4
and esi, 0xf686
sub esi, 0x4975
or esi, 0x281e
xor esi, 0x66c4
pop esi
push ecx
sub ecx, 0xc76f
xor ecx, 0xe5ec
xor ecx, 0x48c
int1
mov word [eax + eax], es
add byte [ecx - 0x75], bl
test dword [eax + edi*8 - 1], edx
dec dword [ecx - 0x1a0f7b]
jmp [edx]
call dword [ebp - 0x1a10]
mov ecx, dword [ebp - 0x1a14]
mov dword [ebp - 0x7a8], ecx
jmp 0x4201bc
mov edx, dword [ebp - 0x7a8]
add edx, 1
mov dword [ebp - 0x7a8], edx
mov eax, dword [ebp - 0x7a8]
cmp eax, dword [ebp - 0xae8]
jae 0x420218
push ebx
push esi
add esp, 4
sub ebx, 0xd2eb
or ebx, 0x12d35
jmp 0x4201e1
or ebx, 0x11740
pop ebx
push eax
push ecx
add esp, 4
xor eax, 0xbfd1
jmp 0x4201fb
pop eax
movzx ecx, byte [ebp - 0x3c2]
mov edx, dword [ebp - 0x7a8]
movsx eax, byte [edx]
sub eax, ecx
mov ecx, dword [ebp - 0x7a8]
mov byte [ecx], al
jmp 0x4201ad
mov edx, dword [ebp - 0xa80]
mov dword [ebp - 0x1a18], edx
lea eax, [ebp - 0xd04]
push eax
mov ecx, dword [ebp - 0xd04]
push ecx
mov edx, dword [ebp - 0x16c0]
push edx
mov eax, dword [ebp - 0x408]
push eax
call dword [ebp - 0x1a18]
test eax, eax
jne 0x420290
push esi
push edi
add esp, 4
sub esi, 0x1069b
or esi, 0xdde8
sub esi, 0x3f27
and esi, 0xbe76
pop esi
push esi
push eax
add esp, 4
add esi, 0x15e4d
jmp 0x42027b
pop esi
mov ecx, dword [ebp - 0x7ac]
mov dword [ebp - 0x1a1c], ecx
push 0
call dword [ebp - 0x1a1c]
push ecx
call 0x4202a1
add byte [esi + 0x4b], cl
xor al, 0x4a
push eax
dec ebp
inc ecx
cmp dword [ebx + 0x44], eax
add esp, 4
jmp 0x4202ad
jmp 0x4202b3
pop ecx
push eax
jmp 0x4202bb
add eax, 0x14b09
pop eax
push ecx
mov ecx, 0x10101010
pop ecx
push ecx
mov ecx, 0xffff03ff
pop ecx
pop ecx
push ebp
xchg bh, al
pop es
test cl, dh
pop ebp
mov dword [ebx], eax
add eax, dword [ecx + edi*8 + 0x303d3f7]
test cl, ch
movsd dword es:[edi], dword [esi]
dec ebx
add eax, dword [ebx]
popal
push esi
test dh, al
or eax, 0x8403038f
into
jecxz 0x420291
add eax, dword [ebx]
test dh, ch
or ebx, dword [esi]
add eax, dword [ebx]
test dh, al
inc ebp
jne 0x420303
add ebx, dword [esi + 0x56]
test dh, ch
cwde
movsd dword es:[edi], dword [esi]
add eax, dword [ebx]
test dh, ch
mov word [ecx + 4], ss
add ebp, esi
pop es
xor eax, 0x5e493d38
push ebx
push ebp
xchg bh, al
pop es
test bl, al
ret