Function at 0x415920
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov eax, dword [ebp + 0xc]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x415940
sar esi, 1
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push esi
push eax
push 0
call dword [0x449c1c]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x41596f
mov eax, 0xffffffff
jmp 0x415972
lea eax, [ebx + ebx]
push eax
call fcn.00408ea0
add esp, 4
push edi
push ebx
mov dword [esp + 0x1c], eax
push eax
push esi
push dword [ebp + 0xc]
push 0
call dword [0x449c1c]
mov dword [esp + 0x18], 0x73be6db0
mov dword [esp + 0x1c], 0x77c171d1
mov dword [esp + 0x20], 0x7b9a75c0
mov dword [esp + 0x24], 0x7fdb79a2
mov dword [esp + 0x28], 0x43f57dca
mov dword [esp + 0x2c], 0x47f541e9
mov dword [esp + 0x30], 0x4b4a45f6
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
mov word [esp + 0x38], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x21
ja 0x415a47
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx + edx]
add esi, 0xbe984f8e
add ecx, 0xbe984f8e
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xac], esi
mov ecx, dword [esp + 0xac]
add cl, 0x1e
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x22
jb 0x4159f0
lea edi, [esp + 0x90]
lea edx, [esp + 0x18]
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xac]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 0xd
jns 0x415a7d
mov eax, 0xffffffff
jmp 0x415a82
add eax, eax
add eax, 0x1a
push eax
call fcn.00408ea0
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x415ac1
mov eax, dword [esp + 0x14]
lea edx, [eax + 2]
mov eax, ebx
nop
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 0x415ab0
mov word [eax], 0
movzx ecx, word [esp + 0x90]
test cx, cx
je 0x415af1
lea edx, [esp + 0x92]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415ae0
mov word [eax], 0
lea eax, [esp + 0x50]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043b6c0
add esp, 0x14
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x442948]
mov ecx, 0x1069e0cb
xor ecx, dword [0x442950]
add eax, ecx
inc eax
jmp eax
xor dh, byte [ecx]
xor esi, dword [ecx]
xor al, 0x31
xor eax, 0x37313631
xor dword [eax], edi
xor dword [ecx], edi
xor dh, byte [eax]
xor dh, byte [ecx]
xor dh, byte [edx]
xor dh, byte [ebx]
xor dh, byte [edx + esi]
xor eax, 0x37323632
xor bh, byte [eax]
xor bh, byte [ecx]
xor esi, dword [eax]
xor esi, dword [ecx]
xor esi, dword [edx]
xor esi, dword [ebx]
xor esi, dword [ebx + esi]
xor eax, 0x37333633
xor edi, dword [eax]
xor edi, dword [ecx]
xor al, 0x30
xor al, 0x31
xor al, 0x32
xor al, 0x33
xor al, 0x34
xor al, 0x35
xor al, 0x36
xor al, 0x37
xor al, 0x38
xor al, 0x39
xor eax, 0x35313530
xor dh, byte [0x35343533]
xor eax, 0x37353635
xor eax, 0x36393538
xor byte [esi], dh
xor dword [esi], esi
xor dh, byte [esi]
xor esi, dword [esi]
xor al, 0x36
xor eax, 0x37363636
cmp byte ss:[esi], dh
cmp dword [edi], esi
xor byte [edi], dh
xor dword [edi], esi
xor dh, byte [edi]
xor esi, dword [edi]
xor al, 0x37
xor eax, 0x37373637
aaa
cmp byte [edi], dh
cmp dword [eax], edi
xor byte [eax], bh
xor dword [eax], edi
xor bh, byte [eax]
xor edi, dword [eax]
xor al, 0x38
xor eax, 0x37383638
cmp byte [eax], bh
cmp byte [ecx], bh
cmp dword [eax], esi
cmp dword [ecx], esi
cmp dword [edx], esi
cmp dword [ebx], esi
cmp dword [ecx + edi], esi
xor eax, 0x37393639
cmp dword [eax], edi
cmp dword [ecx], edi
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
or al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte fs:[eax], al
add byte [eax], al
add byte [eax], al
add al, ch
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], dl
daa
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov al, byte [0x186]
add byte [eax], al
add byte [eax + 0x42], al
sldt word [eax]
add byte [eax], al
add byte [eax + 0x9896], al
add byte [eax], al
adc byte [esi + 0x98], 0
add byte [eax], al
loope 0x43d338
add eax, 0
add dl, cl
lcall 0, 0x3b
in al, 0xb
push esp
add al, byte [eax]
add byte [eax], al
add al, ch
jbe 0x43d3a4
pop ss
add byte [eax], al
add byte [eax], al
adc byte [ebp + 0xe8d4], ah
add byte [eax], al
mov al, byte [0x9184e72]
add byte [eax], al
add byte [eax + 0x7a], al
adc bl, dh
pop edx
add byte [eax], al
add byte [eax - 0x72815b3a], al
add eax, dword [eax]
add byte [eax], al
shr dword [edi - 0xe], 0x86
and eax, dword [eax]
add byte [eax], al
mov bl, byte [ebp + 0x78]
pop ebp
js 0x43d3d3
js 0x43d3d3
arpl word [ecx], ax
add byte [eax], al
cmpsd dword fs:[esi], dword es:[edi]
mov bl, 0xb6
loopne 0x43d3a5
add byte [eax], al
call 0xc766d828
mov al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
add al, dh
aas
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, 0x40
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop ecx
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x71], al
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax + 0x40c3], cl
add byte [eax], al
add byte [edx - 8], ch
inc eax
add byte [eax], al
add byte [eax], al
add byte [esi + ebp + 0x41], 0
rcl byte [edx]
arpl word [ecx], ax
add byte [eax], al
add byte [edi + edx*8 + 0x4197], al
add byte [eax + 0x412e84], al
add byte [eax], al
add al, dl
adc ah, byte [ebx + 0x41]
add byte [eax], al
add byte [eax], al
test bh, dl
xchg edi, eax
inc ecx
add byte [eax], al
add byte [eax], al
add byte [ebp - 0x33], ah
int 0x41
add byte [eax], al
int 0xcd
inc ecx
add byte [eax], al
add byte [eax], ah
pop edi
mov al, byte [0x4202]
add al, ch
jbe 0x43d446
aaa
inc edx
add byte [eax], al
add byte [edx + 0x426d1a94], ah
add byte [eax], al
inc eax
in eax, 0x9c
xor byte [edx - 0x6fffffbe], ah
push ds
les edi, [esi + edx*8 + 0x34000042]
cmc
imul ecx, dword [ebx + eax*2], 0
and al, 0x37
jns 0x43d3e9
inc ecx
inc ebx
add byte [eax + 0x345785d8], ah
push edi
xor al, 0x76
inc ebx
add al, cl
dec esi
insd dword es:[di], dx
shr dword [ebx - 0x6ec2ffbd], 0x60
in al, 0x58
loope 0x43d483
inc eax
invalid
adc eax, 0xe2ef5044
salc
in al, 0x1a
dec ebx
inc esp
xchg edx, eax
aad 0x4d
push es
iretd
inc esp
lcall 0xb999, 0x99999999
aas
jnp 0x43d476
scasb al, byte es:[edi]
inc edi
loope 0x43d4e0
test byte [edi], bh
cld
test eax, 0x624dd2f1
dec ebp
bound edx, qword [eax + 0x3f]
sub eax, 0xe2eb1c43
sbb bh, byte ss:[edi]
jmp 0x43d457
sbb bh, byte [edi]
int1
push 0xf8b588e3
in al, 0x3e
invalid
mov ch, 0xa0
test esi, 0xaf483eb0
mov al, byte [0x3eb0c6f7]
dec eax
scasd eax, dword es:[edi]
mov esp, 0x7ad7f29a
cmp cl, byte ds:[eax + esi + 0x45798ee2]
xchg ebp, eax
salc
call 0x3e5502ab
mov ebx, 0xdfd9d7bd
jl 0x43d482
cmp eax, 0xe1796495
jg 0x43d4ab
loope 0x43d52c
std
movsd dword es:[edi], dword [esi]
cmp eax, 0x812dea11
cdq
xchg edi, eax
jno 0x43d4f5
xor byte [esi + 0x49], 0x68
ret 0x3c25
lodsb al, byte [esi]
inc ebx
rcl cl, cl
pop ebp
jb 0x43d519
cmp al, 0xac
sal byte [esi - 0x27c36b1], cl
cmp esp, dword [ebx]
inc edx
xchg edx, eax
or al, 0xa1
pushfd
invalid
jle 0x43d585
mov esp, 0xbbd89374
invalid
and edi, 0x9c2cbb8e
movsb byte es:[edi], byte [esi]
stc
arpl word [edx + 0x4b], bx
cmp esp, dword [ebx]
mov al, 0x83
xchg esp, eax
jmp 0x947eeb22
invalid
mov ah, 0x25
cmp dword [ecx], ebp
xor byte [edx], cl
or byte [edx - 0x1146f249], dh
mov word [esi + 6], gs
sub dh, al
xlatb
mov eax, 0x1e9e3d07
mov bl, 0x52
mov bh, byte [eax]
in eax, 0xd8
fsub dword [ebp + 0x38675447]
pop esi
mov bh, 0xe0
loopne 0x43d563
lahf
jbe 0x43d5ee
cmp byte [ecx - 0x59], ch
retf
sbb dword [esi], 0x5dc320d2
mov ebx, 0xbd19bb31
mov eax, dword [0x8c22ca71]
hlt