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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3f4
push ebx
push esi
push edi
mov esi, 0xc71654
mov dword [ebp - 0xe0], edx
lea edi, [ebp - 0x174]
mov dword [ebp - 0xd4], ecx
push 0x11
pop eax
movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov byte [ebp - 0xed], al
mov eax, ebx
mov dword [ebp - 0x140], 0x4bcff82a
mov dword [ebp - 0x13c], 0x52df70bc
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x138], 0x8a7fd01b
mov dword [ebp - 0x134], 0xe6c53a6
mov dword [ebp - 0x130], 0xb31eed3c
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x12c], 0xb7701aeb
mov dword [ebp - 0x128], 0xb1c3751e
mov dword [ebp - 0x124], 0x3b7d89c2
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x120], 0x41350db9
mov dword [ebp - 0x11c], 0xc4b1797b
mov dword [ebp - 0x118], 0x8ba596d8
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x114], 0x2810c121
mov edi, ebx
mov dword [ebp - 0x110], 0xa8a0e6df
mov dword [ebp - 0x10c], 0x4f4f5828
mov dword [ebp - 0x108], 0xbda78d01
mov dword [ebp - 0x104], 0xe46fe74d
mov dword [ebp - 0x100], 0x8236ed1
mov dword [ebp - 0xfc], 0x861389a0
mov dword [ebp - 0xf8], 0x417a4370
mov dword [ebp - 0xf4], 0xfd8329de
mov word [ebp - 0xf0], 0xbc92
mov byte [ebp - 0xee], 6
mov dword [ebp - 0xec], 0xa67d9c3d
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6a19e
mov esi, ebx
mov dl, byte [ebp + esi - 0x290]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x174]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov byte [ebp + edi - 0x290], dl
cmp esi, 0x100
jb 0xc6a1af
xor eax, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x290]
mov byte [ebp + edi - 0x290], al
mov byte [ebp + ebx - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x3f0], al
inc esi
cmp esi, 0x58
jb 0xc6a1f1
mov esi, 0xc72dc0
mov dword [ebp - 0x20], 0x42b01966
lea edi, [ebp - 0x174]
mov word [ebp - 0x1c], 0x52b6
push 0x4e
xor ecx, ecx
mov dword [ebp - 0x19], 0xecfeea24
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x1a], al
mov eax, ecx
mov byte [ebp - 0x398], cl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x15], 0xb343a142
mov dword [ebp - 0x11], 0x5d600bb
mov dword [ebp - 0xd], 0xd762b2af
movsd dword es:[edi], dword [esi]
mov byte [ebp - 9], 0x64
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6a294
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x290]
push 0x11
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x174]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov byte [ebp + edi - 0x290], bl
cmp esi, 0x100
jb 0xc6a2a5
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x290]
mov byte [ebp + edi - 0x290], al
mov byte [ebp + ebx - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x190], al
inc esi
cmp esi, 0x18
jb 0xc6a2ed
mov esi, 0xc72ee8
mov dword [ebp - 0xd0], 0xfe3170f3
lea edi, [ebp - 0x16c]
mov dword [ebp - 0xcc], 0xcbb7ef7
push 0x11
xor ebx, ebx
mov dword [ebp - 0xc8], 0x5f4133ed
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x7c], al
mov eax, ebx
mov byte [ebp - 0x178], bl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc4], 0xa93e990
mov dword [ebp - 0xc0], 0x5eeea0f2
mov dword [ebp - 0xbc], 0x2fcb4833
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xb8], 0x51027f24
mov edi, ebx
mov dword [ebp - 0xb4], 0xae6fd9b6
mov dword [ebp - 0xb0], 0xb3c1d1a8
mov dword [ebp - 0xac], 0x8faa9473
mov dword [ebp - 0xa8], 0x814e75e0
mov dword [ebp - 0xa4], 0xf957d707
mov dword [ebp - 0xa0], 0x67072375
mov dword [ebp - 0x9c], 0xbf1a6b86
mov dword [ebp - 0x98], 0x7504949f
mov dword [ebp - 0x94], 0x2f251b66
mov dword [ebp - 0x90], 0x94353a1e
mov dword [ebp - 0x8c], 0x3eb00938
mov dword [ebp - 0x88], 0x72737ad5
mov dword [ebp - 0x84], 0xfd467340
mov dword [ebp - 0x80], 0x9c26d037
mov dword [ebp - 0x7b], 0x3bb7c2bc
mov dword [ebp - 0x77], 0x826c6a38
mov dword [ebp - 0x73], 0x769e6f93
mov dword [ebp - 0x6f], 0x23fd7de3
mov dword [ebp - 0x6b], 0x671c30fd
mov dword [ebp - 0x67], 0x104830e1
mov dword [ebp - 0x63], 0xa3726195
mov dword [ebp - 0x5f], 0xc1c6664a
mov dword [ebp - 0x5b], 0x10bf725e
mov dword [ebp - 0x57], 0xad6d3b5a
mov dword [ebp - 0x53], 0x3364925b
mov dword [ebp - 0x4f], 0xca444abb
mov dword [ebp - 0x4b], 0x6f0986de
mov dword [ebp - 0x47], 0x9c32c401
mov dword [ebp - 0x43], 0xfef496ad
mov dword [ebp - 0x3f], 0xcce9d681
mov dword [ebp - 0x3b], 0xaba0bc53
mov dword [ebp - 0x37], 0xc51476c4
mov dword [ebp - 0x33], 0x44506446
mov dword [ebp - 0x2f], 0x6625ec56
mov dword [ebp - 0x2b], 0x7023a4e6
mov word [ebp - 0x27], 0x2d46
mov byte [ebp - 0x25], 0x20
mov byte [ebp + eax - 0x390], al
inc eax
cmp eax, 0x100
jb 0xc6a4c9
mov esi, ebx
mov dl, byte [ebp + esi - 0x390]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x16c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x390]
mov byte [ebp + esi - 0x390], al
inc esi
mov byte [ebp + edi - 0x390], dl
cmp esi, 0x100
jb 0xc6a4da
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 8], ebx
mov ebx, 0x3a0c383e
push str.NtUpdateWnfStateData
mov ecx, str.system
call fcn.00c67921
pop ecx
push 0x1f
pop ecx
mov esi, 0xc74f80
lea edi, [ebp - 0x160]
rep movsd dword es:[edi], dword [esi]
push 0x4e
xor eax, eax
pop ecx
movsw word es:[edi], word [esi]
mov dword [ebp - 4], eax
cmp cx, word [ebp - 0x160]
jne 0xc6a58a
xor esi, esi
mov edx, ecx
mov ecx, esi
test dx, dx
je 0xc6a587
cmp word [ebp + ecx - 0x160], si
je 0xc6a587
inc eax
lea ecx, [eax + eax]
movzx edx, word [ecx + str.NtUpdateWnfStateData]
cmp dx, word [ebp + ecx - 0x160]
je 0xc6a563
mov dword [ebp - 4], eax
mov edx, ebx
mov ecx, str.NtUpdateWnfStateData
call fcn.00c67de7
mov ecx, dword [ebp - 4]
movzx eax, byte [ebp + ecx*2 - 0x160]
movzx ecx, byte [ecx*2 + str.NtUpdateWnfStateData]
sub ecx, eax
cmp ecx, 0x198e
jae 0xc6a5c0
call fcn.00c6710f
add ebx, 0xe2e5259e
jmp 0xc6a5cb
call fcn.00c67f6c
or ebx, 0xea0670a9
mov eax, dword [ebp - 0xd8]
inc eax
mov dword [0xc78bcc], ebx
movzx esi, al
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], esi
mov cl, byte [ebp + esi - 0x390]
movzx edx, cl
add eax, edx
movzx edi, al
mov dword [ebp - 0xdc], edi
mov al, byte [ebp + edi - 0x390]
mov byte [ebp + esi - 0x390], al
mov byte [ebp + edi - 0x390], cl
movzx eax, byte [ebp + esi - 0x390]
mov ecx, dword [ebp - 8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x390]
xor al, byte [ebp + ecx - 0xd0]
mov byte [ebp + ecx - 0x240], al
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0xac
jb 0xc6a52a
xor eax, eax
mov ecx, 0x208
mov byte [ebp - 0x194], al
call fcn.00c4b9d3
mov ecx, 0xf800
mov edi, eax
call fcn.00c4b9d3
mov ebx, eax
mov ecx, 0x19000
mov dword [ebp - 4], ebx
call fcn.00c4b9d3
mov esi, eax
mov dword [ebp - 8], esi
test edi, edi
je 0xc6a825
test esi, esi
je 0xc6a825
test ebx, ebx
je 0xc6a825
lea ecx, [ebp - 0x3f0]
call fcn.00c4d02f
push dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
lea edx, [ebp - 0x190]
push edi
push dword [ebp - 0xe0]
mov esi, eax
push esi
push ebx
push 2
pop ecx
call fcn.00c4ba1b
call eax
add esp, 0x14
mov ecx, esi
call fcn.00c4d309
push eax
xor ebx, ebx
push ebx
push esi
call fcn.00c4cf49
add esp, 0xc
mov ecx, esi
call fcn.00c4ba07
mov edi, ebx
call fcn.00c67500
inc edi
cmp word [edi*2 + str.NtUpdateWnfStateData], bx
jne 0xc6a6dc
push str.NtUpdateWnfStateData
mov ecx, 0xc6f4a0
call fcn.00c67921
mov esi, dword [ebp - 0xd4]
mov ebx, dword [ebp + 0xc]
pop ecx
cmp esi, edi
jae 0xc6a72a
mov dword [0xc78bcc], 0x7fddf7fe
call fcn.00c67f6c
cmp esi, 0x47c
jne 0xc6a725
call fcn.00c671ed
inc esi
cmp esi, edi
jb 0xc6a713
mov ecx, ebx
call fcn.00c4d309
mov edx, dword [ebp + 0x14]
push eax
call fcn.00c4a061
mov edi, dword [ebp + 0x10]
lea edx, [ebp - 0x240]
pop ecx
mov ecx, dword [ebp - 0xd4]
push 1
push dword [ebp + 0x14]
push edi
push ebx
call fcn.00c4e687
mov esi, eax
xor eax, eax
push 0x100000
push eax
push ebx
call fcn.00c4cf49
add esp, 0x1c
test esi, esi
jne 0xc6a7ab
mov ecx, edi
call fcn.00c4d309
mov edx, eax
call fcn.00c5de60
mov ecx, edi
call fcn.00c4d309
mov ecx, dword [ebp - 4]
mov edx, edi
push eax
call fcn.00c4d13f
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 4]
pop ecx
push esi
xor ecx, ecx
call fcn.00c6545f
mov edx, dword [ebp + 0x14]
pop ecx
push eax
mov ecx, esi
call fcn.00c4a061
pop ecx
jmp 0xc6a7ae
mov esi, dword [ebp - 8]
push 0x100000
xor eax, eax
push eax
push edi
call fcn.00c4cf49
add esp, 0xc
xor eax, eax
push 0x100000
push eax
push dword [ebp + 0x14]
call fcn.00c4cf49
mov edx, dword [ebp - 0xe0]
add esp, 0xc
mov ecx, dword [ebp - 0xd4]
xor eax, eax
push dword [ebp + 0x14]
push edi
push ebx
push eax
push esi
push dword [ebp + 8]
call fcn.00c4faec
push 0x100000
xor eax, eax
push eax
push ebx
call fcn.00c4cf49
add esp, 0x24
xor ebx, ebx
push 0x100000
push ebx
push dword [ebp + 0x14]
call fcn.00c4cf49
add esp, 0xc
push 0x100000
push ebx
push edi
call fcn.00c4cf49
mov ebx, dword [ebp - 4]
add esp, 0xc
mov ecx, ebx
call fcn.00c4ba07
mov ecx, esi
call fcn.00c4ba07
pop edi
pop esi
pop ebx
leave
ret