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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x103c4120]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
mov dl, 1
lea ebx, [ebx]
movzx eax, dl
mov cl, dl
and cl, 0x80
mov byte [ebp + ebx - 0x204], dl
neg cl
sbb cl, cl
mov byte [ebp + eax - 0x104], bl
mov al, dl
and cl, 0x1b
add al, al
inc ebx
xor cl, al
xor dl, cl
cmp ebx, 0x100
jb 0x10154ec0
xor esi, esi
test esi, esi
je 0x10154f08
movzx eax, byte [ebp + esi - 0x104]
lea ecx, [ebp - 0x105]
sub ecx, eax
mov al, byte [ecx]
jmp 0x10154f0a
xor al, al
mov dl, al
rol dl, 1
xor al, dl
rol dl, 1
xor al, dl
rol dl, 1
mov cl, dl
rol cl, 1
xor cl, dl
xor cl, al
xor cl, 0x63
mov byte [esi + 0x103de300], cl
inc esi
cmp esi, 0x100
jb 0x10154ef0
xor ebx, ebx
mov edi, 0xff
mov dword [ebp - 0x208], ebx
mov dword [ebp - 0x218], edi
jmp 0x10154f50
mov dl, byte [ebx + 0x103de300]
mov byte [ebp - 0x209], dl
test dl, dl
je 0x10154f9b
movzx eax, dl
movzx ecx, byte [ebp + eax - 0x104]
movzx eax, byte [ebp - 0x102]
add eax, ecx
cdq
idiv edi
movzx eax, byte [ebp - 0x101]
add eax, ecx
movzx esi, byte [ebp + edx - 0x204]
cdq
idiv edi
movzx ecx, byte [ebp + edx - 0x204]
mov dl, byte [ebp - 0x209]
jmp 0x10154f9f
xor esi, esi
xor ecx, ecx
shl ecx, 8
movzx edi, dl
or ecx, edi
shl ecx, 8
or ecx, edi
shl ecx, 8
or ecx, esi
mov eax, ecx
mov dword [ebx*4 + 0x103e2420], ecx
rol eax, 8
mov dword [ebx*4 + 0x103e2820], eax
mov eax, ecx
rol eax, 0x10
rol ecx, 0x18
mov dword [ebx*4 + 0x103e2c20], eax
mov dword [ebx*4 + 0x103e3020], ecx
test dl, dl
je 0x10155042
movzx esi, byte [ebp - 0x102]
mov ecx, 0xff
movzx eax, byte [ebp + edi - 0x104]
add eax, esi
cdq
idiv ecx
movzx ecx, byte [ebp + edx - 0x204]
test ecx, ecx
je 0x10155044
movzx eax, byte [ebp + ecx - 0x104]
add eax, esi
cdq
idiv dword [ebp - 0x218]
movzx eax, byte [ebp + edx - 0x204]
mov dword [ebp - 0x210], eax
test eax, eax
je 0x1015504e
movzx eax, byte [ebp + eax - 0x104]
add eax, esi
mov esi, 0xff
cdq
idiv esi
movzx edx, byte [ebp + edx - 0x204]
jmp 0x10155050
xor ecx, ecx
mov dword [ebp - 0x210], 0
xor edx, edx
mov esi, edx
mov eax, edi
xor eax, edx
xor esi, ecx
shl ecx, 8
or esi, ecx
shl esi, 8
or esi, eax
shl esi, 8
or esi, edx
mov edx, edi
shl edx, 8
mov eax, esi
or edx, dword [ebp - 0x210]
shl eax, 8
shl edx, 8
or edx, edi
mov dword [ebx*8 + 0x103de404], esi
shl edx, 8
or edx, edi
mov dword [ebp - 0x214], esi
mov dword [ebx*8 + 0x103de400], edx
mov ecx, edx
shr ecx, 0x18
mov edi, edx
or ecx, eax
shr edi, 0x10
mov dword [ebx*8 + 0x103dec04], ecx
mov eax, esi
shr eax, 0x18
mov ebx, edx
shl ebx, 8
or ebx, eax
mov dword [ebp - 0x220], ecx
mov ecx, dword [ebp - 0x208]
mov eax, esi
shl eax, 0x10
mov esi, edx
or edi, eax
shl esi, 0x10
mov eax, dword [ebp - 0x214]
shr eax, 0x10
or esi, eax
mov dword [ebp - 0x210], edx
mov eax, ecx
shr edx, 8
mov dword [ecx*8 + 0x103dec00], ebx
mov dword [ecx*8 + 0x103df404], edi
mov dword [ebp - 0x21c], ebx
mov ebx, dword [ebp - 0x208]
mov dword [eax*8 + 0x103df400], esi
mov eax, dword [ebp - 0x214]
shl eax, 0x18
or edx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x210]
shl ecx, 0x18
mov dword [eax*8 + 0x103dfc04], edx
mov eax, dword [ebp - 0x214]
shr eax, 8
or ecx, eax
mov eax, dword [ebp - 0x208]
mov dword [eax*8 + 0x103dfc00], ecx
mov eax, dword [ebp - 0x210]
mov dword [ebx*8 + 0x103e0404], eax
mov eax, dword [ebp - 0x214]
mov dword [ebx*8 + 0x103e0400], eax
mov eax, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x21c]
mov dword [eax*8 + 0x103e0c04], ebx
mov ebx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x220]
mov dword [ebx*8 + 0x103e1400], edi
mov edi, 0xff
mov dword [ebx*8 + 0x103e0c00], eax
mov dword [ebx*8 + 0x103e1404], esi
mov dword [ebx*8 + 0x103e1c04], ecx
mov dword [ebx*8 + 0x103e1c00], edx
inc ebx
mov dword [ebp - 0x208], ebx
cmp ebx, 0x100
jb 0x10154f50
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret