Function at 0x441970
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
test byte [0x748da4], 0x40
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], esi
je 0x4419fa
cmp word [0x6e84ba], 0
jne 0x4419fa
cmp word [edi + 0x7a], 1
jne 0x4419fa
movzx ecx, word [esi + 0x4e]
mov ebx, 0x2aa8
mov edx, ecx
lea eax, [ecx + 0x1554]
cmp ax, bx
ja 0x4419b7
xor ebx, ebx
jmp 0x441a08
lea eax, [ecx - 0x2aac]
cmp ax, bx
ja 0x4419c9
mov ebx, 0x4000
jmp 0x441a08
lea eax, [ecx + 0x6aaa]
mov ebx, 0xd554
cmp ax, bx
ja 0x441a03
lea eax, [ecx + 0x5554]
mov ecx, 0x2aa8
cmp ax, cx
ja 0x4419f0
mov ebx, 0xffffc000
jmp 0x441a08
mov ebx, edx
test edx, 0x3fff
je 0x441a08
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 0xffff8000
mov eax, dword [edi + 0x30]
sub eax, dword [edi + 0x3c]
cdq
xor eax, edx
mov dword [ebp - 8], 1
sub eax, edx
mov edx, dword [edi + 0xc]
mov dword [ebp - 4], eax
lea ecx, [edx + 0x280]
cmp ecx, 0x100
ja 0x441adb
cmp eax, 0x3c
jge 0x4419fa
sub edx, dword [edi + 0x10]
js 0x4419fa
mov eax, dword [edi + 0x30]
sub eax, dword [edi + 0x34]
js 0x4419fa
mov eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x40]
js 0x4419fa
mov eax, dword [0x6e85a4]
movsx eax, word [eax + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [0x6e0d8c]
add ecx, ecx
test byte [eax + ecx*8 + 0x4e], 0x80
je 0x441a72
cmp dword [0x6e84ee], 0xfffffd00
jl 0x4419fa
mov eax, 0x32
mov word [esi + 0x14], ax
mov eax, dword [0x6e0d84]
mov ax, word [eax + 0x650]
mov word [esi + 0x16], ax
mov dword [esi + 0xe], 0x20013
mov eax, dword [edi + 0xc]
add eax, 0x200
add dword [esi + 0x44], eax
mov eax, dword [ebp - 8]
mov word [0x6e84ba], ax
mov word [esi + 0x4e], bx
mov eax, dword [edi + 0x58]
add dword [esi + 0x40], eax
mov eax, dword [edi + 0x5c]
add dword [esi + 0x44], eax
mov eax, dword [edi + 0x60]
add dword [esi + 0x48], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0x60], 0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x58], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edx + 0x380]
cmp eax, 0x100
ja 0x441b6e
cmp dword [ebp - 4], 0x3c
jge 0x4419fa
sub edx, dword [edi + 0x10]
js 0x4419fa
mov eax, dword [edi + 0x30]
sub eax, dword [edi + 0x34]
js 0x4419fa
mov eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x40]
js 0x4419fa
mov eax, dword [0x6e85a4]
movsx eax, word [eax + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [0x6e0d8c]
add ecx, ecx
test byte [eax + ecx*8 + 0x4e], 0x80
je 0x441b41
cmp dword [0x6e84ee], 0xfffffd00
jl 0x4419fa
mov eax, 0x2a
mov word [esi + 0x14], ax
mov eax, dword [0x6e0d84]
mov ax, word [eax + 0x550]
mov word [esi + 0x16], ax
mov dword [esi + 0xe], 0x20013
mov eax, dword [edi + 0xc]
add eax, 0x300
jmp 0x441a9a
cmp dword [ebp - 4], 0x3c
jge 0x441c3c
lea eax, [edx + 0x780]
cmp eax, 0x400
ja 0x441c3c
mov eax, dword [0x6e85a4]
movsx eax, word [eax + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [0x6e0d8c]
add ecx, ecx
test byte [eax + ecx*8 + 0x4e], 0x80
jne 0x4419fa
mov eax, 0xb
mov word [esi + 0x14], ax
mov eax, dword [0x6e0d84]
mov ax, word [eax + 0x170]
mov word [esi + 0x16], ax
mov dword [esi + 0xe], 0x1c0002
mov esi, 0xffffda80
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*2]
shl eax, 2
sub esi, eax
mov eax, 0x40000000
mov dword [ebp - 4], eax
xor edi, edi
movzx eax, bx
mov edx, esi
mov ebx, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, edi
shr eax, 1
lea ecx, [ebx + edi]
mov edi, eax
or eax, ebx
cmp ecx, esi
cmovbe edi, eax
shr ebx, 2
mov eax, edx
mov dword [ebp - 4], ebx
sub eax, ecx
cmp ecx, edx
cmovbe esi, eax
cmp dword [ebp - 4], 0
mov eax, dword [ebp - 0xc]
movzx ebx, ax
jne 0x441be1
mov esi, dword [ebp - 0x10]
mov eax, 0xfffffffd
sub eax, edi
mov ecx, esi
mov word [0x6e84c2], ax
call fcn.00450ee0
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x14]
movzx ebx, ax
jmp 0x441aa6
cmp word [0x6e84c6], 0
je 0x4419fa
cmp edx, 0xfffff880
jg 0x441cae
cmp word [0x6e84c4], 4
je 0x441cc3
cmp dword [edi + 0x30], 0xfffff880
jg 0x441cc3
cmp dword [edi + 0x3c], 0xfffff800
jg 0x441cc3
cmp dword [edi + 4], 0xfffffb7a
jg 0x441cc3
mov eax, 0xb
mov ecx, esi
mov word [esi + 0x14], ax
mov eax, dword [0x6e0d84]
mov ax, word [eax + 0x170]
mov word [esi + 0x16], ax
mov eax, 0xffffff8c
mov dword [esi + 0xe], 0x1c0002
mov word [0x6e84c2], ax
call fcn.00450ee0
jmp 0x441aa6
cmp edx, 0xfffffc00
jl 0x441cc3
cmp dword [edi + 0x10], 0x1fa
jl 0x441aa6
cmp dword [edi + 4], 0xfffffdfa
jg 0x441aa6
mov eax, dword [edi + 0x58]
mov edx, edi
add dword [esi + 0x40], eax
mov ecx, esi
mov eax, dword [edi + 0x5c]
add dword [esi + 0x44], eax
mov eax, dword [edi + 0x60]
add dword [esi + 0x48], eax
mov dword [edi + 0x60], 0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x58], 0
call fcn.004418b0
test eax, eax
je 0x4419fa
mov eax, 0xb
mov ecx, esi
mov word [esi + 0x14], ax
mov eax, dword [0x6e0d84]
mov ax, word [eax + 0x170]
mov word [esi + 0x16], ax
mov dword [esi + 0xe], 0x380002
call fcn.00450ee0
mov word [esi + 0x4e], bx
mov eax, 1
pop edi
pop esi
mov word [0x6e84ba], ax
pop ebx
mov esp, ebp
pop ebp
ret