Function at 0x415160
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + eax], 0
lea eax, [eax + 2]
jne 0x415180
lea ecx, [eax + ebp]
add ecx, 0xfffffffe
add eax, ebp
mov edx, 1
sub edx, eax
and edx, ebp
mov edi, ebp
not edi
and edi, ecx
sub edi, edx
mov esi, dword [esi + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x4151b0
sar edi, 1
lea ecx, [esi + eax]
add ecx, 0xfffffffe
add eax, esi
mov edx, 1
sub edx, eax
and edx, esi
mov eax, esi
not eax
and eax, ecx
sub eax, edx
sar eax, 1
lea ecx, [edi + eax]
add ecx, 2
test ecx, ecx
jns 0x4151e8
mov eax, 0xffffffff
jmp 0x4151ef
add eax, edi
add eax, eax
add eax, 4
push eax
call fcn.004089b0
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x415221
add esi, 2
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x415210
mov word [eax], 0x5c
add eax, 2
movzx ecx, word [ebp]
test cx, cx
je 0x415251
lea edx, [ebp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415240
mov word [eax], 0
lea eax, [esp + 4]
push 0x20
push 1
push 3
push 0x120089
push eax
push ebx
call fcn.00436270
add esp, 0x18
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x43d180]
mov ecx, 0x5f0ecbe0
xor ecx, dword [0x43d188]
add eax, ecx
inc eax
mov dword [esp + 0x28], ebx
jmp eax
add byte [ecx], cl
xor byte [esi], bh
xor byte [esi + 0x30], dh
test al, 0x30
fdiv dword [eax]
adc dword [ecx], esi
inc ebx
xor dword [ebp + 0x31], esi
cmpsd dword [esi], dword es:[edi]
xor ebp, eax
xor dword [esi], eax
xor bh, byte [eax]
xor ch, byte [ebp + 0x32]
mov byte [0x4c32d432], al
xor edx, edx
xor eax, dword [edi]
xor al, 0x28
xor al, 0x5a
xor al, 0x8c
xor al, 0xc1
xor al, 0xf3
xor al, 0x28
xor al, 0x28
xor eax, 0x358f355d
les esi, [0x36ab3687]
mov ebp, 0xcd36c736
xlatb
loope 0x447a5a
jmp 0x447a5c
div byte [edi]
push es
cmp byte [eax], dl
cmp byte [esi], dl
cmp byte [esi], ah
cmp byte [eax + edi], ch
cmp al, 0x38
inc esi
cmp byte [eax + 0x38], dl
push esi
cmp byte [esi + 0x38], ah
jo 0x447aaa
jp 0x447aac
cmp byte [eax], 0x90
cmp byte [edx - 0x55c75bc8], bl
cmp byte [edx - 0x2fc73fc8], bh
cmp dh, dl
cmp dh, ah
cmp al, dh
cmp dl, bh
cmp byte [ecx + edi], al
or bh, byte [ecx]
sbb bh, byte [ecx]
and byte [ecx], bh
xor byte [ecx], bh
cmp bh, byte [ecx]
inc esp
cmp dword [edx + 0x39], ecx
pop edx
cmp dword [eax + 0x39], esp
insd dword es:[edi], dx
cmp dword [edi + 0x39], esi
jge 0x447adf
lea edi, [ecx]
xchg ebx, eax
cmp dword [ebx - 0x49c656c7], esp
mov dword [0xb639a939], eax
test eax, 0xbc39b639
cmp ecx, ecx
cmp edi, ecx
cmp ecx, ebx
cmp edi, ebx
cmp ecx, ebp
cmp edi, ebp
cmp esp, edi
cmp dword [edx], eax
cmp cl, byte [edi]
cmp dl, byte [0x283a223a]
cmp dh, byte [0x483a3b3a]
cmp cl, byte [esi + 0x3a]
pop esi
cmp ah, byte [edx + edi + 0x74]
cmp bh, byte [edx + 0x3a]
mov bh, byte [edx]
nop
cmp ch, byte [ebp + 0x4f3f213a]
cmp dword [ecx + edi + 0x39cf39c9], edi
fnstcw word [ecx]
fistp qword [ecx]
jmp 0xfc7e69f8
cmp ah, byte [ecx]
aas
dec edi
aas
je 0x447b25
loopne 0x447b27
add al, dh
add al, byte [eax]
mov word [eax], es
add byte [eax], al
adc dword [eax], esi
aas
xor byte [ecx + 0x30], ch
mov al, byte [0xff30d130]
xor byte [esi], ah
xor dword [ecx + esi - 0x7b], edx
xor dword [edi + 0x831e431], edi
xor al, byte [edx + esi + 0x78]
xor bh, dh
xor dh, byte [edi + 0x33]
stosd dword es:[edi], eax
xor edi, eax
xor ebx, dword [0x87343f34]
xor al, 0xb5
xor al, 0xdd
xor al, 0xa
xor eax, 0x35573535
test dword [0x361435e6], esi
xor eax, 0x361435e6
xor eax, 0x36403614
jl 0x447b64
inc eax
jl 0x447b64
mov eax, dword [0xd36e136]
aaa
das
aaa
xchg esi, eax
aaa
mov esi, 0x1137ec37
cmp byte [edx + 0x38], al
cmp byte [di - 0x48c8], dl
cmp ah, bl
cmp byte [0x60393839], cl
cmp dword [edi + 0x203a0139], ebp
cmp bl, byte [ebp + 0x3a]
xchg ebx, eax
cmp al, cl
cmp ch, bh
cmp dl, byte [0x6b3b3a3b]
cmp ebx, dword [ebp + 0x23bd43b]
cmp al, 0x23
aam 0x3b
add bh, byte [ebx]
cmp al, 0xc8
jecxz 0x447bac
xor byte [edi], bh
arpl word [edi], di
mov esp, 0x300003f
add byte [eax + eax], al
add byte [ebx - 0x2dcf38d0], bh
xor byte [eax], al
xor dword [edx], ebp
xor dword [0x57315131], esi
xor dword [ebp + 0x31], edi
xor dword [ecx], 0xffffff9d
xor dword [ebx - 0x39ce3fcf], esp
xor ebx, ebp
xor ecx, esi
xor dword [esi + 0x32], ecx
outsb dx, byte [esi]
xor cl, byte [eax + 0xf32ef32]
xor edi, dword [ebx]
xor ebx, dword [ebx + 0x33]
popal
xor edi, dword [ebx + 0x33]
jnp 0x447be1
xor dword [ebx], 0x33b633b0
sal dword [ebx], 1
fdiv qword [ebx]
add byte [eax], dl
add eax, dword [eax]
sub al, 0
add byte [eax], al
mov edi, 0xf23be73b
cmp ecx, dword [ecx - 0x38c34ec4]
cmp al, 0x18
cmp eax, 0x3d993d4b
ret
aas
jmp 0x447c23
aaa
sub byte [edi], dh
jl 0x447c5f
mov ch, 0x37
or eax, 0x81385b38
cmp byte [edx], bl
cmp al, 0
add byte [eax], al
xor byte [ebx], al
add byte [eax], cl
add dword [eax], eax
add byte [ebp + 0x30], dl
pushal
xor byte [ecx + esi], dh
push eax
xor dword [esi + 0x31], edx
popal
xor dword [ebx], esi
xor bh, byte [esi]
xor cl, byte [ecx + 0x32]
push esp
xor dh, byte [ecx + 0x32]
jl 0x447c86
xchg esi, eax
xor ah, byte [ecx - 0x43cd4ece]
xor cl, al
xor bl, byte [edx + 0x33]
push 0x81337333
xor ecx, dword [ebx + esi + 0x34313398]
aas
xor ebp, dword [eax + 0x33]
jae 0x447c97
xor dword [ebx], 0x3398338c
xor dword [edi + edi], esi
xor al, 0x4a
xor al, 0x5b
xor al, 0x66
xor al, 0x74
xor al, 0x7f
xor al, 0xa2
xor al, 0xad
xor al, 0xe2
xor al, 0xed
xor al, 0x24
xor eax, 0x35603545
test byte [0x35b835a5], dh
xor eax, 0x36123607
and esi, dword [esi]
mov byte ss:[0x1d36d236], al
aaa
xor dword [edi], esi
cmp al, 0x37
sal byte ss:[esi], cl
sbb eax, 0x3c373137
aaa
inc edi
aaa
push ebp
aaa
test eax, 0x2437d937
cmp byte [eax + edi], ch
aaa
cmp byte [edx + 0x38], al
dec ebp
cmp byte [ebp + 0x38], ah
jo 0x447cee
jge 0x447cf0
mov byte [eax], bh
xchg ebp, eax
cmp byte [edx + 0x32392138], bl
cmp dword [0x5a394d39], edi
cmp dword [ebp + 0x39], esp
jb 0x447d05
jge 0x447d07
mov bh, byte [ecx]
invalid
lodsb al, byte [esi]
cmp eax, ebp
cmp edx, eax
cmp edi, dword [edi + 0x7b3cca3c]
lds edi, [ebx]
sar byte [ebx], 1
mov edi, 0x7b3cca3c
cmp eax, 0x3e213e1b
sub al, 0x3e
aas
dec edx
popal
insb byte es:[edi], dx
jg 0x447d48
mov bh, byte [esi]
mov cl, 0x3e
mov esp, 0xd83ecd3e
fidivr word ds:[esi]
in al, dx
cli
add byte ds:[edi], bh
adc al, 0x3f
sbb bh, byte [edi]
aas
cmp dword [edi], edi
aas
aas
dec eax
aas
push edi
aas
imul edi, dword [edi], 0x3f883f7b
movsd dword es:[edi], dword [esi]
aas
mov ah, 0x3f
mov ebp, 0xfb3ff03f
aas
add byte [eax], al
add byte [eax + 3], al
add byte [ecx + eax], ch
add byte [ecx], bl
xor byte [edi], dh
xor byte [edx + 0x30], al
push ebx
xor byte [esi + 0x30], bl
jno 0x447d80
inc edx
xor byte [ebx + 0x30], dl
pop esi
xor byte [ecx + 0x30], dh
jl 0x447d82
cwde
xor byte [ebx - 0x37cf42d0], ah
xor byte [ebp + 0x31], ah
jae 0x447d8f
jle 0x447d91
xchg edx, eax
xor dword [ebp - 0x3fce4acf], ebx
xor esp, ecx
xor edi, edx
xor ecx, esp
xor esp, ebp
xor ecx, edi
xor dword [edx + esi], eax
inc edx
xor cl, byte [ebp + 0x32]
sbb dword [ebx], esi
and al, 0x33
cmp al, 0x33
push esp
xor esp, dword [eax + 0x33]
pushal
xor esi, dword [edi + 0x33]
ja 0x447db7
sal byte [ebx], 1
invalid
xor al, 0x18
xor al, 0x2a
xor al, 0x35
xor al, 0x45
xor al, 0x52
xor al, 0x5d
xor al, 0x6a
xor al, 0x75
xor al, 0x82
xor al, 0x8d
xor al, 0x9a
xor al, 0xab
xor al, 0xba
xor al, 0xc5
xor al, 0xda
xor al, 0xe5
xor al, 0xf5
xor al, 8
xor eax, 0x35223517
cmp eax, 0x75354835
xor eax, 0x359d3580
test al, 0x35
sal byte [0x35e435cb], 0xef
xor eax, 0x3548353d
jne 0x447df3
xor byte [0x35a8359d], 0xc0
xor eax, 0x35e435cb
out dx, eax
xor eax, 0x36243619
das
inc edi
jae 0x447e0e
xchg ebp, eax
mov dword ss:[0xc236ae36], eax
in eax, 0x36
in al, dx
and dword ss:[edi], esi
inc edx
aaa
dec ecx
aaa
pushal
aaa
xor dword [edi], 0xffffff8a
aaa
lodsb al, byte [esi]
aaa
mov bh, 0x37
aaa
ret 0xcf37
out dx, eax
cmp dl, bh
cmp byte [edi], ah
cmp dword [edx], esi
cmp dword [ebp + 0x39], eax
push eax
cmp dword [ebx + 0x39], esi
jle 0x447e57
wait
cmp dword [esi - 0x44c64fc7], esp
cmp ebp, ebp
cmp eax, edi
cmp dword [esi], ecx
cmp bl, byte [ecx]
cmp bh, byte [ecx]
cmp al, byte [edx + edi + 0x5d]
cmp ch, byte [eax + 0x3a]
jp 0x447e72
test dword [edx], edi
popfd
cmp ch, byte [eax - 0x37c542c6]
cmp bl, bl
cmp ah, dh
cmp bh, ah
cmp al, byte [edi]
cmp ebx, dword [ebx + edi]
daa
cmp esi, dword [edx]
cmp edi, dword [0x5e3b533b]
cmp esi, dword [ebx + 0x3b]
jle 0x447e95
cmp edi, dword [esi + 0x3b]
invalid
pop esp
cmp al, 0x67
cmp al, 0x7c
cmp al, 0x87
cmp al, 0xa1
cmp al, 0xac
cmp al, 0xc3
cmp al, 0xce
cmp al, 0xf3
cmp al, 0xfe
cmp al, 0x1e
cmp eax, 0x3d433d29
dec esi
cmp eax, 0x3d703d65
cmp dword [0x3e8d3d8c], 0x3e9c3e93
sar byte [esi], 0xc6
cmp eax, 0x3e933e8d
pushfd
sar byte ds:[esi], 0xc6
int 0x3f
jecxz 0x447ee3
out dx, al
aas
add byte [eax], al
add byte [eax + 3], dl
add byte [ecx + eax], bh
add byte [eax], al
and dword [eax], esi
xor al, 0x30
cmp dh, byte [eax]
inc eax
xor byte [esi + 0x30], al
dec esp
xor byte [edx + 0x30], dl
jnp 0x447ef0
xchg byte [eax], dh
xchg edx, eax
xor byte [ebp - 0x44cf4fd0], bl
xor byte [ecx + 0x31], bl
and dh, byte [edx]
sub eax, 0x4f324332
xor bl, byte [edi + 0x32]
outsd dx, dword [esi]
xor cl, byte [edx + esi + 0x32ad32a2]
mov ebx, 0xe332c632
xor bh, cl
xor cl, byte [esi]
xor eax, dword [ecx + 0x33]
pop edi
xor ebp, dword [edx + 0x33]
jne 0x447f23
test byte [ebx], dh
invalid
xor eax, 0x366d3662
test dword [esi], esi
nop
mov dword ss:[0xb736ae36], eax
ret 0xd136