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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x574
push ebx
push esi
push edi
mov esi, 0xc750b4
mov dword [ebp - 0x10c], ecx
lea edi, [ebp - 0x108]
mov dword [ebp - 0x118], edx
xor ecx, ecx
mov dword [ebp - 0x80], 0x12aa2d9f
mov dword [ebp - 0x7c], 0x21222dc3
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x78], 0xa293616d
mov dword [ebp - 0x74], 0x856c887f
mov dword [ebp - 0x70], 0x77beb786
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x6c], 0x23e5c49
mov dword [ebp - 0x68], 0xac94ee1f
mov dword [ebp - 0x64], 0x16d71c42
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x60], 0x77966332
mov edi, ecx
mov dword [ebp - 0x5c], 0x70342405
mov dword [ebp - 0x58], 0x49ce6bb
mov dword [ebp - 0x54], 0x483744c7
mov dword [ebp - 0x50], 0x42523637
mov dword [ebp - 0x4c], 0xb318d4be
mov dword [ebp - 0x48], 0x3d2af5c9
mov dword [ebp - 0x44], 0x4d9bfc5
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc61aee
push 0xb
mov esi, ecx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
mov eax, esi
div ecx
movzx ecx, bl
push 0xb
movzx eax, byte [ebp + edx - 0x108]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc61b02
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x218]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x218]
mov byte [ebp + edi - 0x218], al
mov byte [ebp + ebx - 0x218], cl
movzx eax, byte [ebp + edi - 0x218]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + esi - 0x80]
mov byte [ebp + esi - 0x328], al
inc esi
cmp esi, 0x40
jb 0xc61b4a
mov esi, 0xc6f224
mov dword [ebp - 0x80], 0xb5ccfd7d
lea edi, [ebp - 0x94]
mov word [ebp - 0x7c], 0xe5b5
push 0xb
pop edx
movsd dword es:[edi], dword [esi]
xor ecx, ecx
push 0xf
pop eax
mov byte [ebp - 0x6b], al
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x66], al
mov eax, ecx
mov byte [ebp - 0x2e8], cl
mov byte [ebp - 0x7a], 0xd1
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x79], dl
mov dword [ebp - 0x78], 0x7d77aa7b
mov dword [ebp - 0x74], 0xa8fb5948
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x70], 0xd485ef24
mov edi, ecx
mov byte [ebp - 0x6c], 0x4e
mov dword [ebp - 0x6a], 0x12409ac7
mov dword [ebp - 0x65], 0x84521062
mov dword [ebp - 0x61], 0xd2d584e6
mov byte [ebp - 0x5d], 0x65
mov byte [ebp - 0x5c], dl
mov dword [ebp - 0x5b], 0x138570f4
mov dword [ebp - 0x57], 0x97d3598a
mov dword [ebp - 0x53], 0xc30899b3
mov dword [ebp - 0x4f], 0x6a77ed6d
mov dword [ebp - 0x4b], 0x579bce8d
mov dword [ebp - 0x47], 0xaf127ab7
mov word [ebp - 0x43], 0x2d94
mov byte [ebp - 0x41], 0xd4
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc61c3e
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
push 0xf
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x94]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc61c4f
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
imul eax, dword [0xc789f4], 0x7b70eb05
mov dword [ebp - 0x40], eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x218]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x218]
mov byte [ebp + edi - 0x218], al
mov byte [ebp + ebx - 0x218], cl
movzx eax, byte [ebp + edi - 0x218]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + esi - 0x80]
mov byte [ebp + esi - 0x370], al
inc esi
cmp esi, 0x40
jb 0xc61ca4
mov esi, 0xc6f4ec
mov dword [ebp - 0xc8], 0xb08dd9bd
lea edi, [ebp - 0x108]
mov dword [ebp - 0xc4], 0x4eaa049b
xor ecx, ecx
mov dword [ebp - 0xc0], 0xfeb925f9
mov byte [ebp - 0x330], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xbc], 0x3730e3c4
mov dword [ebp - 0xb8], 0xa0eb1061
mov dword [ebp - 0xb4], 0x543b39e8
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xb0], 0x39678f8
mov dword [ebp - 0xac], 0x286792d7
mov dword [ebp - 0xa8], 0xc6b46360
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xa4], 0xf6bfdcf3
mov edi, ecx
mov dword [ebp - 0xa0], 0xa90c1cac
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc61d7c
imul eax, dword [ebp - 0x40], 0x36f75757
mov esi, ecx
mov dword [ebp - 0x40], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
push 0xb
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x108]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc61d97
mov ecx, 0xc70054
call fcn.00c61508
push 6
pop ecx
mov esi, str.not_a_stream
lea edi, [ebp - 0x234]
rep movsd dword es:[edi], dword [esi]
push 0x61
xor edx, edx
pop eax
movsw word es:[edi], word [esi]
mov ebx, edx
cmp ax, word [ebp - 0x234]
jne 0xc61e38
mov ecx, eax
mov eax, edx
test cx, cx
je 0xc61e38
cmp word [ebp + eax - 0x234], dx
je 0xc61e38
mov ecx, str.LocalSM0:_d:_d:_hs
call fcn.00c61508
inc ebx
push 0
pop edx
lea eax, [ebx + ebx]
movzx ecx, word [eax + str.address_in_use]
cmp cx, word [ebp + eax - 0x234]
je 0xc61e07
mov ebx, edx
mov edi, edx
mov esi, edx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x218]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x218]
mov byte [ebp + edi - 0x218], al
mov byte [ebp + ebx - 0x218], cl
movzx eax, byte [ebp + edi - 0x218]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + esi - 0xc8]
mov byte [ebp + esi - 0x2b0], al
inc esi
cmp esi, 0x2c
jb 0xc61e3e
push 0xf
pop eax
push 5
pop ecx
mov esi, str.SrchGatherHistoryHash
mov byte [ebp - 0x9c], al
lea edi, [ebp - 0x28]
mov dword [ebp - 0x9b], 0x5841ec6e
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x97], 0x932f1067
mov byte [ebp - 0x284], dl
mov eax, edx
mov dword [ebp - 0x93], 0xb629b86a
movsw word es:[edi], word [esi]
mov dword [ebp - 0x8f], 0x9283b1c5
mov edi, edx
mov dword [ebp - 0x8b], 0xffa1f284
mov word [ebp - 0x87], 0x515c
mov byte [ebp - 0x85], 0x57
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc61ef7
push 0x15
mov esi, edx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
mov eax, esi
div ecx
movzx ecx, bl
push 0x15
movzx eax, byte [ebp + edx - 0x28]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc61f0b
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x218]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x218]
mov byte [ebp + edi - 0x218], al
mov byte [ebp + ebx - 0x218], cl
movzx eax, byte [ebp + edi - 0x218]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + esi - 0x9c]
mov byte [ebp + esi - 0x234], al
inc esi
cmp esi, 0x18
jb 0xc61f50
mov eax, dword [0xc789fc]
xor ecx, ecx
mov dword [ebp - 8], eax
mov edi, ecx
xor eax, 0x4438b687
mov byte [ebp - 0x21c], cl
mov dword [ebp - 0xc], eax
mov dword [0xc78a14], eax
inc edi
cmp word [edi*2 + str.address_in_use], cx
jne 0xc61fc2
mov esi, dword [ebp + 8]
cmp esi, edi
jae 0xc62015
imul eax, dword [ebp - 0x40], 0x764fb8e9
mov dword [ebp - 0xc], eax
mov dword [0xc78a14], eax
push 0xc704d0
call fcn.00c6161d
pop ecx
cmp esi, 0x1cc
jne 0xc6200b
mov ebx, dword [str.7f_tR]
xor ebx, 0xd6a00367
mov dword [ebp - 8], ebx
mov dword [0xc789fc], ebx
call fcn.00c61962
inc esi
cmp esi, edi
jb 0xc61fe3
mov esi, str.DownLevelDaemon
mov dword [ebp - 0x3c], 0x5263c1dc
lea edi, [ebp - 0x94]
mov dword [ebp - 0x38], 0x15bdcc4a
mov dword [ebp - 0x34], 0xfdfdaa94
mov dword [ebp - 0x30], 0xdf02719d
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2c], 0x6a6fa644
mov dword [ebp - 0x28], 0xbfc83a82
mov dword [ebp - 0x24], 0x130924d9
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], 0x9a8bbd44
mov dword [ebp - 0x1c], 0x38890acb
mov dword [ebp - 0x18], 0xa222099d
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xa7ea508f
movsd dword es:[edi], dword [esi]
call fcn.00c619ba
push 7
pop ecx
mov esi, 0xc70fb4
lea edi, [ebp - 0xbc]
rep movsd dword es:[edi], dword [esi]
push 0x61
xor edx, edx
pop eax
movsw word es:[edi], word [esi]
mov ebx, edx
cmp ax, word [ebp - 0xbc]
jne 0xc620f5
mov ecx, eax
mov eax, edx
test cx, cx
je 0xc620c8
cmp word [ebp + eax - 0xbc], dx
je 0xc620c8
call fcn.00c61844
inc ebx
push 0
pop edx
lea eax, [ebx + ebx]
movzx ecx, word [eax + str.address_in_use]
cmp cx, word [ebp + eax - 0xbc]
je 0xc6209c
mov esi, dword [ebp + 8]
jmp 0xc620f1
cmp esi, 0x33e
jne 0xc620f0
mov eax, dword [ebp - 0xc]
sub eax, 0xfc1a1d8
push 0xc6f240
mov dword [ebp - 0xc], eax
mov dword [0xc78a14], eax
call fcn.00c6161d
pop ecx
inc esi
cmp esi, ebx
jb 0xc620cd
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc620fb
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
push 0xf
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x94]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc6210c
xor eax, eax
mov edx, eax
mov dword [ebp - 0x84], eax
mov ecx, eax
mov esi, dword [ebp - 8]
lea eax, [ecx + 1]
movzx eax, al
xor ebx, ebx
mov dword [ebp - 0xc], eax
mov edi, ebx
mov al, byte [ebp + eax - 0x218]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0xf8], eax
add eax, edx
movzx eax, al
or esi, 0x63dc0d7f
mov dword [ebp - 0x40], eax
mov dword [0xc789f4], esi
push str.no_link
call fcn.00c6161d
inc edi
pop ecx
cmp word [edi*2 + str.address_in_use], bx
jne 0xc6218f
push ecx
push ecx
call fcn.00c611d7
pop ecx
pop ecx
cmp edi, 0x1be8
jbe 0xc621cb
lea eax, [esi + 0x575918dd]
mov dword [ebp - 8], eax
mov dword [0xc789fc], eax
call fcn.00c61040
jmp 0xc621dc
xor esi, 0x45027bb2
mov dword [str.7f_tR], esi
call fcn.00c60cf3
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x84]
mov al, byte [ebp + edx - 0x218]
mov byte [ebp + ecx - 0x218], al
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x218], al
movzx eax, byte [ebp + ecx - 0x218]
add eax, dword [ebp - 0xf8]
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + ebx - 0x3c]
mov byte [ebp + ebx - 0x2e0], al
inc ebx
mov dword [ebp - 0x84], ebx
cmp ebx, 0x2c
jb 0xc62158
push 0xf
pop eax
push 7
pop ecx
mov esi, str.too_many_symbolic_link_levels
mov byte [ebp - 0x2b], al
lea edi, [ebp - 0xbc]
mov byte [ebp - 0x15], al
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x3c], 0x652f2f07
mov byte [ebp - 0x2b4], dl
mov eax, edx
mov dword [ebp - 0x38], 0xa98a4a05
movsw word es:[edi], word [esi]
mov dword [ebp - 0x34], 0xb64f5554
mov edi, edx
mov dword [ebp - 0x30], 0x944d6c46
mov byte [ebp - 0x2c], 0xf4
mov dword [ebp - 0x2a], 0xf1a48307
mov dword [ebp - 0x26], 0xd2255a4f
mov dword [ebp - 0x22], 0x94d92f44
mov dword [ebp - 0x1e], 0x1a623e06
mov dword [ebp - 0x1a], 0xc3d05c17
mov byte [ebp - 0x16], 0x71
mov dword [ebp - 0x14], 0xbf735bd2
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc622a8
mov eax, dword [ebp - 8]
mov esi, edx
add eax, 0x49cc3c58
mov dword [0xc78a14], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
push 0x1d
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xbc]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc622c6
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x218]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x218]
mov byte [ebp + edi - 0x218], al
mov byte [ebp + ebx - 0x218], cl
movzx eax, byte [ebp + edi - 0x218]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x218]
xor al, byte [ebp + esi - 0x3c]
mov byte [ebp + esi - 0x70], al
inc esi
cmp esi, 0x2c
jb 0xc6230e
xor esi, esi
xor ebx, ebx
inc esi
mov byte [ebp - 0x44], bl
mov dword [ebp - 8], ebx
cmp dword [ebp + 8], esi
jne 0xc62383
mov ecx, dword [ebp + 0xc]
call fcn.00c5eda6
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
jne 0xc62383
push 3
pop eax
jmp 0xc627ee
push 0x10
lea eax, [ebp - 0x94]
mov dword [ebp - 0x84], ebx
push ebx
push eax
call fcn.00c4cf49
push 0x48
lea eax, [ebp - 0x280]
push ebx
push eax
call fcn.00c4cf49
add esp, 0x18
lea eax, [ebp - 0x84]
lea edx, [ebp - 0x328]
mov ecx, esi
push eax
push ebx
push 2
push ebx
call fcn.00c4ba1b
call eax
mov ecx, dword [ebp - 0x84]
call fcn.00c4b9d3
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x23c], eax
push ecx
push ebx
push 2
push eax
lea edx, [ebp - 0x370]
mov ecx, esi
call fcn.00c4ba1b
call eax
push ebx
push ebx
push 8
lea eax, [ebp - 0x108]
mov dword [ebp - 0x108], ebx
push eax
push 0x20007
push ebx
push dword [ebp - 0x23c]
lea edx, [ebp - 0x2b0]
mov dword [ebp - 0x104], 0x1000
mov ecx, esi
call fcn.00c4ba1b
call eax
cmp dword [ebp + 8], esi
jne 0xc625f3
mov esi, str.SrchCollatorCxn
mov dword [ebp - 0xf4], 0x65e62e60
lea edi, [ebp - 0x20]
mov dword [ebp - 0xf0], 0xe0ae5e40
mov dword [ebp - 0xec], 0xbf0312ef
mov eax, ebx
mov dword [ebp - 0xe8], 0x8ae91730
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xe4], 0x526c4eb4
mov dword [ebp - 0xe0], 0xa3675a9d
mov dword [ebp - 0xdc], 0xb1c434e1
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xd8], 0x70fb0352
mov dword [ebp - 0xd4], 0x952b76ed
mov dword [ebp - 0xd0], 0xe7d4fe9a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xcc], 0xfe46a343
movsd dword es:[edi], dword [esi]
mov edi, ebx
mov byte [ebp + eax - 0x218], al
inc eax
cmp eax, 0x100
jb 0xc624ac
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x218]
push 0xf
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x20]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x218]
mov byte [ebp + esi - 0x218], al
inc esi
mov byte [ebp + edi - 0x218], bl
cmp esi, 0x100
jb 0xc624bd
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0xc], eax
mov ecx, eax
mov dword [ebp - 0x40], eax
mov eax, dword [0xc789fc]
xor eax, 0x87d1f74b
mov dword [0xc78a14], eax
lea eax, [ecx + 1]
movzx ebx, al
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xf8], ebx
mov cl, byte [ebp + ebx - 0x218]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x218]
mov byte [ebp + ebx - 0x218], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x218], cl
movzx eax, byte [ebp + ebx - 0x218]
add eax, edx
xor edi, edi
movzx eax, al
mov ebx, edi
mov al, byte [ebp + eax - 0x218]
mov byte [ebp - 1], al
mov ecx, str.onecoreuap_baseAppModelSearchcommonincludeerrormsg_common.hxx
call fcn.00c61508
inc ebx
cmp word [ebx*2 + str.address_in_use], di
jne 0xc6256a
mov edi, dword [ebp - 0x40]
cmp esi, ebx
jae 0xc625ac
mov eax, dword [0xc789f4]
add eax, 0xafd15f44
mov dword [str.7f_tR], eax
cmp esi, 0x19ca
jne 0xc625a2
call fcn.00c61962
call fcn.00c612ed
inc esi
cmp esi, ebx
jb 0xc62595
mov al, byte [ebp + edi - 0xf4]
xor al, byte [ebp - 1]
mov ecx, dword [ebp - 0xf8]
mov byte [ebp + edi - 0x3c], al
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x2c
jb 0xc62516
xor ebx, ebx
lea eax, [ebp - 8]
push ebx
push ebx
push 4
push eax
push 0x20000
push ebx
push dword [ebp - 0x23c]
xor ecx, ecx
mov byte [ebp - 0x10], bl
lea edx, [ebp - 0x3c]
inc ecx
call fcn.00c4ba1b
call eax
mov dword [ebp - 0x280], 0x48
call fcn.00c61962
push 7
pop ecx
mov esi, str._HRESULT_:_0x
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
push 0x61
pop ecx
cmp cx, word [ebp - 0x2c]
jne 0xc62648
xor edx, edx
mov eax, edx
test cx, cx
je 0xc62648
cmp word [ebp + eax - 0x2c], dx
je 0xc62648
push str.HKEY_CURRENT_CONFIG
call fcn.00c6161d
inc ebx
pop ecx
push 0
pop edx
lea eax, [ebx + ebx]
movzx ecx, word [eax + str.address_in_use]
cmp cx, word [ebp + eax - 0x2c]
je 0xc6261c
movzx eax, byte [ebp + ebx*2 - 0x2c]
movzx ecx, byte [ebx*2 + str.address_in_use]
sub ecx, eax
cmp ecx, 0x1c97
jae 0xc62670
call fcn.00c60f0e
mov eax, dword [0xc78a14]
and eax, 0xf7df9d1c
jmp 0xc6267f
call fcn.00c612ed
mov eax, dword [0xc789f4]
or eax, 0x321d45a6
mov dword [0xc789f4], eax
lea edx, [ebp - 0x234]
xor eax, eax
mov dword [ebp - 0x254], 0x80001
mov word [ebp - 0x250], ax
xor ebx, ebx
lea eax, [ebp - 0x94]
xor esi, esi
push eax
lea eax, [ebp - 0x280]
inc esi
push eax
push ebx
push ebx
push 0x808000c
push esi
push ebx
push ebx
push ebx
push dword [ebp - 0x10c]
mov ecx, esi
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc626ee
mov ecx, dword [ebp - 0x23c]
call fcn.00c4ba07
cmp dword [ebp + 8], esi
jne 0xc626e7
push dword [ebp - 8]
call fcn.00c6e4cf
pop ecx
push 5
jmp 0xc6237d
push dword [ebp - 0x23c]
lea edx, [ebp - 0x2e0]
mov ecx, esi
call fcn.00c4ba1b
call eax
mov ecx, dword [ebp - 0x23c]
call fcn.00c4ba07
cmp dword [ebp + 8], esi
jne 0xc6271c
push dword [ebp - 8]
call fcn.00c6e4cf
pop ecx
push ebx
push 0x18
lea eax, [ebp - 0xb4]
push eax
push ebx
push dword [ebp - 0x94]
call fcn.00c6e4b1
lea eax, [ebp - 0x114]
push eax
push 4
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0xb0]
add eax, 8
push eax
push dword [ebp - 0x94]
call fcn.00c6e493
mov edi, dword [ebp - 0x110]
lea eax, [ebp - 0x114]
push eax
push 0x200
lea eax, [ebp - 0x570]
push eax
push edi
push dword [ebp - 0x94]
call fcn.00c6e493
mov eax, dword [ebp - 0x534]
add esp, 0x3c
mov ebx, dword [ebp - 0x118]
mov ecx, ebx
mov esi, dword [ebp + eax - 0x548]
add esi, edi
call fcn.00c4d309
mov edx, eax
call fcn.00c5de60
xor edi, edi
lea edx, [ebp - 0x70]
push edi
push eax
push ebx
push esi
push dword [ebp - 0x94]
xor ecx, ecx
inc ecx
call fcn.00c4ba1b
call eax
push edi
push dword [ebp - 0x90]
call fcn.00c6e475
pop ecx
pop ecx
test eax, eax
je 0xc627d4
push 0xb
jmp 0xc6237d
push dword [ebp - 0x94]
call fcn.00c6e4cf
push dword [ebp - 0x90]
call fcn.00c6e4cf
pop ecx
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret