Function at 0x471140
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffedc
xor ecx, ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4715c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00405f44
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jle 0x47117f
cmp dword [ebp - 0x14], 0x100
jle 0x4711c2
mov eax, dword [ebp - 0x14]
shl eax, 3
mov dword [ebp - 0x120], eax
mov byte [ebp - 0x11c], 0
lea eax, [ebp - 0x120]
push eax
push 0
lea edx, [ebp - 0x124]
mov eax, dword [0x4ffa78]
call fcn.00406dc0
mov ecx, dword [ebp - 0x124]
mov dl, 1
mov eax, dword [0x46d964]
call fcn.0040ce9c
call fcn.00404170
xor eax, eax
mov dword [ebp - 0xc], eax
mov al, byte [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx], al
mov eax, dword [ebp - 0xc]
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x115], al
mov al, byte [ebp - 0xc]
inc eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 1], al
mov eax, dword [ebp - 0xc]
inc eax
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x114], al
mov al, byte [ebp - 0xc]
add al, 2
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 2], al
mov eax, dword [ebp - 0xc]
add eax, 2
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x113], al
mov al, byte [ebp - 0xc]
add al, 3
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 3], al
mov eax, dword [ebp - 0xc]
add eax, 3
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x112], al
mov al, byte [ebp - 0xc]
add al, 4
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 4], al
mov eax, dword [ebp - 0xc]
add eax, 4
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x111], al
mov al, byte [ebp - 0xc]
add al, 5
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 5], al
mov eax, dword [ebp - 0xc]
add eax, 5
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x110], al
mov al, byte [ebp - 0xc]
add al, 6
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 6], al
mov eax, dword [ebp - 0xc]
add eax, 6
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x10f], al
mov al, byte [ebp - 0xc]
add al, 7
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 7], al
mov eax, dword [ebp - 0xc]
add eax, 7
cdq
idiv dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x10e], al
add dword [ebp - 0xc], 8
cmp dword [ebp - 0xc], 0xff
jle 0x4711c7
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x115]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 1]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x114]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 1]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 1], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 2]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x113]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 2]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 2], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 3]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x112]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 3]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 3], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 4]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x111]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 4]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 4], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 5]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x110]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 5]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 5], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 6]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x10f]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 6]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 6], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 7]
mov edx, dword [ebp - 0xc]
movzx edx, byte [ebp + edx - 0x10e]
add eax, edx
add dword [ebp - 0x10], eax
xor eax, eax
mov al, byte [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 7]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov byte [edx + ecx + 7], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
add dword [ebp - 0xc], 8
cmp dword [ebp - 0xc], 0xff
jle 0x471321
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4715c7
lea eax, [ebp - 0x124]
call fcn.004047d0
ret