Function at 0x4098e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, edx
push esi
push ebx
sub esp, 0x1b0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x198]
mov eax, edx
sub eax, 0xffffff80
cmp edx, eax
mov dword [ebp - 0x1a8], eax
jmp 0x409922
mov ebx, dword [edx]
add edx, 4
mov dword [ecx], ebx
add ecx, 4
cmp edx, dword [ebp - 0x1a8]
jb 0x409912
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x198]
mov edx, dword [ebp - 0x1a8]
sub ecx, 0xffffff80
add eax, 0x100
cmp edx, eax
mov dword [ebp - 0x1ac], eax
jmp 0x409958
mov ebx, dword [edx]
add edx, 4
mov dword [ecx], ebx
add ecx, 4
cmp edx, dword [ebp - 0x1ac]
jb 0x409948
mov dword [esp], 1
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1a4]
add edx, 0x1f8
call sym.__ZN9CBack_DES6deskeyEPhs_12
mov ecx, dword [ebp - 0x1a8]
add ebx, 0x1f0
sub esp, 4
mov edx, dword [ebp - 0x1a4]
cmp edx, ecx
jmp 0x4099a7
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
cmp edx, dword [ebp - 0x1a8]
jb 0x409997
mov dword [esp], 0
mov ecx, dword [ebp - 0x1a4]
mov edx, ebx
call sym.__ZN9CBack_DES6deskeyEPhs_12
mov edx, dword [ebp - 0x1a4]
sub esp, 4
mov ebx, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1ac]
cmp edx, ebx
jmp 0x4099e6
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
cmp edx, dword [ebp - 0x1a8]
jb 0x4099d6
xor edx, edx
lea esi, [esi]
mov ecx, dword [ebp - 0x1a4]
movzx ebx, byte [ecx + edx + 0x1f0]
mov byte [edx + esi], bl
inc edx
cmp edx, 7
jle 0x4099f0
movzx edx, byte [edi]
lea esi, [esi]
xor ebx, ebx
test dl, dl
mov ecx, esi
je 0x409a39
nop
lea esi, [esi]
mov eax, ecx
and dl, 0x7f
inc ebx
xor byte [eax], dl
inc ecx
mov byte [edi], 0
inc edi
cmp ebx, 7
jg 0x409a39
movzx edx, byte [edi]
test dl, dl
jne 0x409a20
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
movzx ebx, byte [esi + 2]
movzx edx, byte [esi + 3]
shl ecx, 0x18
shl eax, 0x10
or ecx, eax
shl ebx, 8
or ecx, ebx
or ecx, edx
mov dword [ebp - 0x1a0], ecx
movzx ecx, byte [esi + 4]
movzx eax, byte [esi + 5]
movzx ebx, byte [esi + 6]
movzx edx, byte [esi + 7]
shl ecx, 0x18
shl eax, 0x10
or ecx, eax
shl ebx, 8
mov eax, dword [ebp - 0x1a4]
or ecx, ebx
or ecx, edx
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x19c], ecx
mov ecx, eax
mov dword [esp], eax
call sym.__ZN9CBack_DES7desfuncEPmS0__12
mov ebx, dword [ebp - 0x1a8]
sub esp, 4
lea edx, [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1a4]
mov dword [esp], ebx
call sym.__ZN9CBack_DES7desfuncEPmS0__12
mov edx, dword [ebp - 0x1ac]
sub esp, 4
mov ecx, dword [ebp - 0x1a4]
mov dword [esp], edx
lea edx, [ebp - 0x1a0]
call sym.__ZN9CBack_DES7desfuncEPmS0__12
mov edx, dword [ebp - 0x1a0]
sub esp, 4
mov eax, edx
mov byte [esi + 3], dl
mov ecx, edx
mov ebx, edx
shr eax, 0x18
shr ecx, 0x10
mov byte [esi], al
shr ebx, 8
mov byte [esi + 1], cl
mov byte [esi + 2], bl
mov edx, dword [ebp - 0x19c]
mov eax, edx
mov byte [esi + 7], dl
mov ecx, edx
mov ebx, edx
shr eax, 0x18
shr ecx, 0x10
mov byte [esi + 4], al
shr ebx, 8
mov byte [esi + 5], cl
mov byte [esi + 6], bl
movzx edx, byte [edi]
test dl, dl
jne 0x409a10
mov edx, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x198]
mov esi, dword [ebp - 0x1a8]
cmp edx, esi
jmp 0x409b47
mov edi, dword [ecx]
add ecx, 4
mov dword [edx], edi
add edx, 4
cmp edx, dword [ebp - 0x1a8]
jb 0x409b37
mov edx, dword [ebp - 0x1a8]
lea ecx, [ebp - 0x198]
mov ebx, dword [ebp - 0x1ac]
sub ecx, 0xffffff80
cmp edx, ebx
jmp 0x409b72
mov eax, dword [ecx]
add ecx, 4
mov dword [edx], eax
add edx, 4
cmp edx, dword [ebp - 0x1ac]
jb 0x409b62
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1a4]
jmp 0x409b8c
mov esi, dword [ecx]
add ecx, 4
mov dword [edx], esi
add edx, 4
cmp ecx, dword [ebp - 0x1a8]
jb 0x409b82
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4