Function at 0x41d200
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov dword [esp + 0x10], 0x8bc885ad
mov dword [esp + 0x14], 0x8fed891b
mov dword [esp + 0x18], 0xb3e08de9
mov dword [esp + 0x1c], 0xb720b1f5
mov dword [esp + 0x20], 0xbbf0b526
mov dword [esp + 0x24], 0xbf2cb9dd
mov dword [esp + 0x28], 0xa397bdd9
lea eax, [esp + 0x2c]
mov word [esp + 0x2c], 0xa1a2
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x35], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x28
ja 0x41d2d9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx esi, byte [esp + ecx + 0x10]
lea ecx, [edx + esi]
add ecx, 0xb1e9d595
add edx, 0xb1e9d595
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0xed
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x29
jb 0x41d290
lea esi, [esp + 0x10e]
lea edx, [esp + 0x10]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x12a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x9c]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x449940]
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jns 0x41d32b
mov eax, 0xffffffff
jmp 0x41d32e
lea eax, [ebx + ebx]
push eax
call fcn.00436470
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push 0xe
push esi
push 0
call dword [0x449940]
mov dword [esp + 0x10], 0xbbe8b9ea
mov dword [esp + 0x14], 0xbfd9bdd9
mov dword [esp + 0x18], 0xc3a3c1d3
mov dword [esp + 0x1c], 0xc7a3c5ab
mov dword [esp + 0x20], 0xcbc8c9b3
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov byte [esp + 0x30], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x20
ja 0x41d3fe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx esi, byte [esp + ecx + 0x10]
lea ecx, [edx - 0x5a3593c9]
add edx, 0x37
or edx, ecx
and edx, esi
or ecx, esi
sub ecx, edx
mov edx, ecx
or edx, 0x7e
and ecx, 0x7e
add ecx, edx
inc cl
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x21
jb 0x41d3b0
lea edi, [esp + 0xfa]
lea edx, [esp + 0x10]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x9c]
mov ecx, 1
sub ecx, eax
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
mov ecx, eax
add ecx, 0xa
jns 0x41d446
mov eax, 0xffffffff
jmp 0x41d44b
add eax, eax
add eax, 0x14
push eax
call fcn.00436470
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x41d481
lea edx, [ebx + 2]
mov eax, esi
nop
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 0x41d470
mov word [eax], 0
movzx ecx, word [esp + 0xfa]
test cx, cx
je 0x41d4b1
lea edx, [esp + 0xfc]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d4a0
mov edi, dword [ebp + 8]
mov word [eax], 0
lea eax, [esp + 0xa8]
push eax
push esi
call fcn.0043b290
add esp, 8
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x4439b8]
mov ecx, 0x5bf07511
xor ecx, dword [0x4439c0]
add eax, ecx
inc eax
mov dword [esp + 0xa0], ebx
jmp eax
mov dword [ebx], 0xf7c4ced3
mov dword [ebx + 4], 0xc2f4c4f3
mov dword [ebx + 8], 0xc7cbdf87
mov dword [ebx + 0xc], 0xdc81c8fa
mov dword [ebx + 0x10], 0xfef3f4c4
mov dword [ebx + 0x14], 0xf9f996bb
mov dword [ebx + 0x18], 0xcff9fcf6
mov dword [ebx + 0x1c], 0xf7fdfc9f
mov word [ebx + 0x20], 0x41e5
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x2e], 0
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 0x31
ja 0x42305f
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x40]
movzx eax, byte [ebx + eax]
mov edx, 0xef
sub edx, ecx
add ecx, 0x10
and ecx, eax
or edx, eax
add edx, ecx
sub eax, edx
add al, 0x8f
mov ecx, dword [esi + 0x40]
mov byte [ebx + ecx], al
inc dword [esi + 0x40]
mov eax, dword [esi + 0x40]
cmp eax, 0x32
jb 0x423030
mov ecx, edi
push ebx
call fcn.00424820
jmp dword [0x444978]
and al, byte [eax]
add byte [eax], al
add bh, al
inc ebx
add byte es:[eax], al
add byte [eax], al
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x2e], 0
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
inc eax
inc eax
cmp eax, 0x31
ja 0x42310f
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x40]
movzx eax, byte [ebx + eax]
mov edi, 0xef
sub edi, edx
add edx, 0x10
and edx, eax
or edi, eax
add edi, edx
sub eax, edi
add al, 0x8f
mov edx, dword [esi + 0x40]
mov byte [ebx + edx], al
inc dword [esi + 0x40]
mov eax, dword [esi + 0x40]
cmp eax, 0x32
jb 0x4230e0
push ebx
call fcn.00424820
mov eax, dword [esi + 0x30]
mov edi, dword [eax]
jmp 0x422fc3