Function at 0x401c00
Capabilities:
Encrypt data using rc4 ksa
Encrypt data using rc4 prga

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42ee7b
push eax
mov eax, 0x15798
mov dword fs:[0], esp
call fcn.00412670
mov eax, dword [esp + 0x157b4]
test eax, eax
jbe 0x4025fa
xor eax, eax
mov byte [esp + eax + 0x268], al
inc eax
cmp eax, 0x1552e
jb 0x401c30
push ebx
push ebp
mov ebp, dword [esp + 0x157b0]
push esi
push edi
mov edi, dword [esp + 0x157bc]
xor esi, esi
xor ecx, ecx
mov eax, ecx
xor edx, edx
div edi
mov bl, byte [esp + ecx + 0x278]
xor eax, eax
mov al, byte [edx + ebp]
mov edx, eax
mov eax, ebx
and eax, 0xff
add esi, edx
add eax, esi
xor edx, edx
mov esi, 0x1552e
div esi
inc ecx
cmp ecx, 0x1552e
mov esi, edx
mov al, byte [esp + esi + 0x278]
mov byte [esp + ecx + 0x277], al
mov byte [esp + esi + 0x278], bl
jb 0x401c55
mov ebp, dword [esp + 0x157c4]
mov ebx, dword [esp + 0x157c0]
xor edi, edi
xor esi, esi
dec ebp
inc ebp
lea eax, [esi + 1]
xor edx, edx
mov ecx, 0x1552e
push 0
div ecx
mov esi, edx
xor edx, edx
mov cl, byte [esp + esi + 0x27c]
mov eax, ecx
mov byte [esp + 0x14], cl
and eax, 0xff
add eax, edi
mov edi, 0x1552e
div edi
mov edi, edx
mov dl, byte [esp + edi + 0x27c]
mov byte [esp + esi + 0x27c], dl
mov byte [esp + edi + 0x27c], cl
lea ecx, [esp + 0x18]
call fcn.00401800
lea ecx, [esp + 0x14]
mov dword [esp + 0x157b0], 0
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
lea ecx, [esp + 0x14]
call fcn.00408cc0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [esp + esi + 0x278]
and ecx, 0xff
add eax, ecx
mov ecx, 0x1552e
cdq
idiv ecx
mov al, byte [ebx]
lea ecx, [esp + 0x14]
mov dword [esp + 0x157b0], 0xffffffff
mov dl, byte [esp + edx + 0x278]
xor al, dl
mov byte [ebx], al
inc ebx
call fcn.00401970
dec ebp
jne 0x401cb1
mov eax, dword [esp + 0x157c0]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x15798]
mov dword fs:[0], ecx
add esp, 0x157a4
ret
mov ecx, dword [esp + 0x15798]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x157a4
ret