Function at 0x407180
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
sub esp, 8
push ebx
push ebp
mov al, 1
push esi
push edi
xor ecx, ecx
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
mov bl, al
and edx, 0xff
mov byte [ecx + 0x428994], al
mov byte [edx + 0x425794], cl
mov dl, al
and dl, 0x80
neg dl
sbb dl, dl
and edx, 0x1b
shl bl, 1
xor dl, bl
xor al, dl
inc ecx
cmp ecx, 0x100
mov byte [esp + 0x10], al
jb 0x40718f
mov al, 1
mov byte [0x425795], 0
mov byte [esp + 0x10], al
mov ecx, 0x42576c
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [ecx], edx
mov dl, al
and dl, 0x80
neg dl
sbb dl, dl
add ecx, 4
and edx, 0x1b
shl al, 1
xor al, dl
cmp ecx, 0x425794
mov byte [esp + 0x10], al
jb 0x4071d8
xor ebx, ebx
test ebx, ebx
je 0x40721c
xor eax, eax
mov ecx, 0x428a93
mov al, byte [ebx + 0x425794]
sub ecx, eax
mov dl, byte [ecx]
jmp 0x40721e
xor dl, dl
mov al, dl
mov cl, dl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
mov al, cl
xor dl, cl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
xor cl, dl
xor cl, 0x63
mov byte [esp + 0x10], cl
mov byte [ebx + 0x427894], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov byte [edx + 0x428a94], bl
inc ebx
cmp ebx, 0x100
jb 0x407205
xor esi, esi
mov bl, byte [esi + 0x427894]
mov byte [esp + 0x10], bl
mov edi, dword [esp + 0x10]
and edi, 0xff
mov eax, edi
mov ecx, edi
rol eax, 8
mov edx, edi
mov dword [esi*4 + 0x426894], edi
rol ecx, 0x10
mov dword [esi*4 + 0x426c94], eax
mov dword [esi*4 + 0x427094], ecx
rol edx, 0x18
test bl, bl
mov dword [esi*4 + 0x427494], edx
je 0x4072db
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 0x425794]
mov cl, byte [0x425796]
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
xor ecx, ecx
mov cl, byte [edx + 0x428994]
jmp 0x4072dd
xor ecx, ecx
test bl, bl
je 0x407305
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x425794]
mov dl, byte [0x425797]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x428994]
jmp 0x407307
xor eax, eax
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
mov ecx, eax
mov dword [esi*4 + 0x42476c], eax
rol ecx, 8
mov dword [esi*4 + 0x424b6c], ecx
mov cl, byte [esi + 0x428a94]
mov edx, eax
mov byte [esp + 0x10], cl
mov edi, dword [esp + 0x10]
rol edx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x424f6c], edx
and edi, 0xff
mov dword [esi*4 + 0x42536c], eax
mov eax, edi
rol eax, 8
mov dword [esi*4 + 0x425894], edi
mov dword [esi*4 + 0x425c94], eax
mov edx, edi
mov eax, edi
rol edx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x426094], edx
mov dword [esi*4 + 0x426494], eax
test cl, cl
je 0x4073aa
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x425794]
mov dl, byte [0x4257a2]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x428994]
mov dword [esp + 0x14], eax
jmp 0x4073b2
mov dword [esp + 0x14], 0
test cl, cl
je 0x4073dc
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x425794]
mov dl, byte [0x42579d]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x428994]
mov ebp, eax
jmp 0x4073de
xor ebp, ebp
test cl, cl
je 0x407406
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x425794]
mov dl, byte [0x4257a1]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor ebx, ebx
mov bl, byte [edx + 0x428994]
jmp 0x407408
xor ebx, ebx
test cl, cl
je 0x407430
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 0x425794]
mov cl, byte [0x42579f]
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
xor eax, eax
mov al, byte [edx + 0x428994]
jmp 0x407432
xor eax, eax
shl eax, 8
or eax, ebx
shl eax, 8
or eax, ebp
mov ebp, dword [esp + 0x14]
shl eax, 8
or eax, ebp
mov edx, eax
mov ecx, eax
rol edx, 8
mov dword [esi*4 + 0x427994], eax
mov dword [esi*4 + 0x427d94], edx
rol ecx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x428194], ecx
mov dword [esi*4 + 0x428594], eax
inc esi
cmp esi, 0x100
jb 0x407274
pop edi
pop esi
pop ebp
mov dword [0x428b94], 1
pop ebx
add esp, 8
ret