Function at 0x41b3c0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
xor eax, eax
mov dword [ebp - 0x18], ebx
xor esi, esi
mov dword [ebp - 0x10], edi
mov dl, byte [edi + 0x1e3]
movzx ecx, byte [edi + 0x1e7]
mov dword [ebp - 4], ecx
cmp dl, 1
jne 0x41b56d
movzx eax, word [edi + 0x30e]
test al, 0x10
je 0x41b405
movzx esi, word [edi + 0x1de]
mov edx, dword [ebp + 8]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x24], 1
movzx ecx, byte [eax + edx - 1]
movzx eax, word [edi + 0x30e]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], ecx
test al, 8
je 0x41b502
sub edx, esi
lea esi, [ebx - 1]
add esi, edx
mov dword [ebp - 0xc], edx
lea eax, [edx - 1]
mov bl, byte [esi]
mov byte [ebp - 5], bl
movzx ebx, bl
mov dword [ebp - 0x1c], ebx
sub ebx, edx
add ebx, dword [ebp - 4]
shr ebx, 0x1f
dec bl
mov dword [ebp - 0x20], eax
cmp eax, 0xff
jle 0x41b465
mov dword [ebp - 0x20], 0xff
jmp 0x41b469
test eax, eax
jle 0x41b495
mov edi, dword [ebp - 0x20]
xor edx, edx
mov ah, byte [ebp - 5]
mov ecx, dword [ebp - 0x1c]
lea esi, [esi - 1]
mov al, byte [esi + 1]
sub ecx, edx
shr ecx, 0x1f
xor al, ah
dec cl
inc edx
and cl, al
or bl, cl
cmp edx, edi
jl 0x41b471
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 4]
lea eax, [ebp - 0xa4]
push 1
push 1
push dword [ebp + 0xc]
sub edx, ecx
push ecx
dec edx
push edx
push dword [ebp - 0x18]
push eax
mov eax, dword [edi + 0xb4]
push edi
call eax
movzx ecx, byte [edi + 0x1e7]
mov esi, eax
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0xa4]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0041ada0
or al, bl
add esp, 0x28
not al
mov cl, al
shr cl, 4
and al, cl
movzx eax, al
mov ecx, eax
shr ecx, 2
and ecx, eax
mov eax, ecx
shr eax, 1
and eax, ecx
dec eax
add eax, esi
je 0x41b565
pop edi
pop esi
mov eax, 0xfffffecf
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edx
xor esi, esi
sub eax, dword [ebp - 4]
push 1
push 1
push dword [ebp + 0xc]
lea edx, [eax - 1]
cmp ecx, edx
mov dword [ebp - 0x18], edx
cmova ecx, esi
cmp dword [ebp - 0xc], edx
mov dword [ebp - 0x14], ecx
cmovbe esi, dword [ebp - 0x1c]
sub eax, esi
push esi
dec eax
push eax
push ebx
lea eax, [ebp - 0x64]
push eax
mov eax, dword [edi + 0xb4]
push edi
call eax
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x10], eax
sub ebx, esi
mov eax, dword [ebp - 4]
dec edx
sub ebx, eax
push eax
add edx, ebx
call fcn.00412380
add esp, 0x24
test eax, eax
jne 0x41b4f6
cmp dword [ebp - 0x10], eax
jne 0x41b4f6
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
ja 0x41b4f6
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
jmp 0x41b5ba
test dl, dl
jne 0x41b5bd
mov esi, dword [ebp + 8]
mov eax, esi
push 1
push 1
push dword [ebp + 0xc]
sub eax, ecx
push 0xffffffffffffffff
push eax
push ebx
lea eax, [ebp - 0x64]
push eax
mov eax, dword [edi + 0xb4]
push edi
call eax
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x64]
mov eax, dword [ebp - 4]
sub ebx, eax
push eax
lea edx, [esi + ebx]
call fcn.00412380
add esp, 0x24
test eax, eax
jne 0x41b4f6
cmp dword [ebp - 0x10], eax
jne 0x41b4f6
xor esi, esi
mov ecx, dword [ebp - 4]
cmp byte [edi + 0x1e3], 2
jne 0x41b5db
mov eax, dword [ebp + 0x10]
movzx ecx, word [edi + 0x1e0]
pop edi
pop esi
mov dword [eax], ecx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
add ecx, esi
add ecx, eax
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov dword [eax], ecx
xor eax, eax
mov esp, ebp
pop ebp
ret