Function at 0x6c6f1f
Capabilities:
Copy file
Set registry value

Disassembly:
push 0x80070057
call fcn.006bb270
xor eax, eax
mov dword [edi - 0xc], 0
mov word [edi], ax
jmp 0x6c5ef9
or dword [ebp - 0xc48], 1
push 0
push edi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x6c5f15
test byte [ebp - 0xc48], 1
je 0x6c5f3a
add edi, 0xfffffff0
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c5f3a
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
lea ecx, [ebp - 0x320]
lea edx, [ebp - 0x118]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c5f46
lea eax, [ebp - 0xd6c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c5f58
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c5f68
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x6ded5c
call edx
lea edi, [eax + 0x10]
mov dword [ebp - 0xc4c], edi
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 2
push 0
test eax, 0xffff0000
jne 0x6c5fd9
mov ecx, eax
movzx esi, cx
push esi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6094
push esi
push eax
lea ecx, [ebp - 0xc4c]
call fcn.006c45a0
mov edi, dword [ebp - 0xc4c]
jmp 0x6c6094
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call ebx
lea esi, [eax - 1]
test esi, esi
jle 0x6c603f
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x6c601a
push esi
lea ecx, [ebp - 0xc4c]
call fcn.006c3420
mov edi, dword [ebp - 0xc4c]
push esi
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 3
call ebx
cmp esi, dword [edi - 8]
jg 0x6c5ebf
xor ecx, ecx
mov dword [edi - 0xc], esi
mov word [edi + esi*2], cx
jmp 0x6c6094
cmp dword [edi - 0xc], 0
mov esi, dword [edi - 0x10]
lea eax, [edi - 0x10]
je 0x6c6094
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6072
push ds
cmp dword [edi - 8], 0
jge 0x6c6064
push 0x80070057
call fcn.006bb270
xor edx, edx
mov dword [edi - 0xc], 0
mov word [edi], dx
jmp 0x6c6094
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6088
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea edi, [eax + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
mov byte [ebp - 4], 0
call ebx
add edi, 0xfffffff0
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c60bd
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
cmp dword [ebp + 0x10], 0
je 0x6c6246
lea ecx, [ebp - 0x730]
lea edx, [ebp - 0x118]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c60d3
lea eax, [ebp - 0xd6c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c60e5
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c60f5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x6ded5c
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0xc4c], esi
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 3
push 0
test eax, 0xffff0000
jne 0x6c6166
mov ecx, eax
movzx edi, cx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6223
push edi
push eax
lea ecx, [ebp - 0xc4c]
call fcn.006c45a0
mov esi, dword [ebp - 0xc4c]
jmp 0x6c6223
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edi, [eax - 1]
test edi, edi
jle 0x6c61ce
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c61a5
push edi
lea ecx, [ebp - 0xc4c]
call fcn.006c3420
mov esi, dword [ebp - 0xc4c]
push edi
push esi
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor ecx, ecx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], cx
jmp 0x6c6223
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6223
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6201
cmp dword [esi - 8], 0
jge 0x6c61f3
push 0x80070057
call fcn.006bb270
xor edx, edx
mov dword [esi - 0xc], 0
mov word [esi], dx
jmp 0x6c6223
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6217
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push esi
mov byte [ebp - 4], 0
call ebx
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6246
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
lea ecx, [ebp - 0x62c]
lea edx, [ebp - 0x21c]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c6252
lea eax, [ebp - 0xf74]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c6264
lea edi, [ebp - 0x21c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c6274
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [ebp + 0x10], 0
rep movsb byte es:[edi], byte [esi]
lea edx, [ebp - 0x118]
je 0x6c62ac
lea ecx, [ebp - 0x730]
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c62a0
jmp 0x6c62bc
lea ecx, [ebp - 0x320]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c62b2
lea eax, [ebp - 0xf74]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c62c4
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c62d4
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x6ded5c
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 4
push 0
test eax, 0xffff0000
jne 0x6c6345
mov ecx, eax
movzx esi, cx
push esi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6406
push esi
push eax
lea ecx, [ebp - 0xc4c]
call fcn.006c45a0
mov ebx, dword [ebp - 0xc4c]
jmp 0x6c6406
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call edi
lea esi, [eax - 1]
test esi, esi
jle 0x6c63ab
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x6c6386
push esi
lea ecx, [ebp - 0xc4c]
call fcn.006c3420
mov ebx, dword [ebp - 0xc4c]
push esi
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 3
call edi
cmp esi, dword [ebx - 8]
jg 0x6c5ebf
xor ecx, ecx
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], cx
jmp 0x6c6406
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x6c6406
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c63de
cmp dword [ebx - 8], 0
jge 0x6c63d0
push 0x80070057
call fcn.006bb270
xor edx, edx
mov dword [ebx - 0xc], 0
mov word [ebx], dx
jmp 0x6c6406
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c63f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
mov edx, dword [0x6ded5c]
mov eax, dword [edx + 0xc]
mov ecx, 0x6ded5c
mov byte [ebp - 4], 5
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 6
push 0
test ecx, 0xffff0000
jne 0x6c6465
mov edx, ecx
movzx edi, dx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6522
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
jmp 0x6c6522
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x21c]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edi, [eax - 1]
test edi, edi
jle 0x6c64cd
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c64a4
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0x21c]
push ecx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor edx, edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], dx
jmp 0x6c6522
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6522
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6500
cmp dword [esi - 8], 0
jge 0x6c64f2
push 0x80070057
call fcn.006bb270
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x6c6522
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6516
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push 1
push ebx
push esi
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_CopyFileW]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c654c
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x6c656c
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
lea ecx, [ebp - 0xa3c]
lea edx, [ebp - 0x320]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c6578
lea edi, [ebp - 0x320]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x6c6590
mov ecx, 6
mov esi, str.CONEXANTSA3HP_NB_AIO_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x320]
lea edx, [ebp - 0x118]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c65b1
lea eax, [ebp - 0x938]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c65c3
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c65d3
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [0x6ded5c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [edx + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x6ded5c
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 7
push 0
test ecx, 0xffff0000
jne 0x6c6771
mov edx, ecx
movzx edi, dx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6641
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c666e
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [ebp - 0xc60], 1
lea ecx, [ebp - 0x62c]
lea edx, [ebp - 0x21c]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c6684
lea eax, [ebp - 0x834]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c6696
lea edi, [ebp - 0x21c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c66a6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x320]
lea edx, [ebp - 0x118]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c66d0
lea eax, [ebp - 0x834]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c66e2
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c66f2
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x6ded5c
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea eax, [ebp - 0x118]
shr eax, 0x10
mov byte [ebp - 4], 8
mov dword [ebp - 0xc58], eax
push 0
test eax, eax
jne 0x6c683b
lea eax, [ebp - 0x118]
movzx edi, ax
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c68f0
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
jmp 0x6c68f0
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 3
call ebx
lea edi, [eax - 1]
test edi, edi
jle 0x6c67da
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c67b2
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0x118]
push ecx
push 0
push 3
call ebx
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor edx, edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], dx
jmp 0x6c6647
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6647
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6814
cmp dword [esi - 8], 0
jge 0x6c6803
push 0x80070057
call fcn.006bb270
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x6c6647
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c682a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
jmp 0x6c6647
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x118]
push ecx
push 0
push 3
call ebx
lea edi, [eax - 1]
test edi, edi
jle 0x6c689b
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c6876
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call ebx
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + edi*2], ax
jmp 0x6c68f0
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c68f0
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c68ce
cmp dword [esi - 8], 0
jge 0x6c68c0
push 0x80070057
call fcn.006bb270
xor ecx, ecx
mov dword [esi - 0xc], 0
add byte [esi - 0x77], ah
push cs
jmp 0x6c68f0
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c68e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push esi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6917
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
mov ecx, 0x6ded5c
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
cmp dword [ebp - 0xc58], 0
mov byte [ebp - 4], 9
push 0
jne 0x6c6970
lea eax, [ebp - 0x118]
movzx esi, ax
push esi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6a31
push esi
push eax
lea ecx, [ebp - 0xc4c]
call fcn.006c45a0
mov ebx, dword [ebp - 0xc4c]
jmp 0x6c6a31
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x118]
push ecx
push 0
push 3
call edi
lea esi, [eax - 1]
test esi, esi
jle 0x6c69d6
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x6c69b1
push esi
lea ecx, [ebp - 0xc4c]
call fcn.006c3420
mov ebx, dword [ebp - 0xc4c]
push esi
push ebx
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call edi
cmp esi, dword [ebx - 8]
jg 0x6c5ebf
xor eax, eax
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], ax
jmp 0x6c6a31
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x6c6a31
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6a09
cmp dword [ebx - 8], 0
jge 0x6c69fb
push 0x80070057
call fcn.006bb270
xor ecx, ecx
mov dword [ebx - 0xc], 0
mov word [ebx], cx
jmp 0x6c6a31
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6a1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
mov edx, dword [0x6ded5c]
mov eax, dword [edx + 0xc]
mov ecx, 0x6ded5c
mov byte [ebp - 4], 0xa
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0xb
push 0
test ecx, 0xffff0000
jne 0x6c6a90
mov edx, ecx
movzx edi, dx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6b4d
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
jmp 0x6c6b4d
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x21c]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edi, [eax - 1]
test edi, edi
jle 0x6c6af8
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c6acf
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0x21c]
push ecx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor edx, edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], dx
jmp 0x6c6b4d
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6b4d
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6b2b
cmp dword [esi - 8], 0
jge 0x6c6b1d
push 0x80070057
call fcn.006bb270
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x6c6b4d
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6b41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push 1
push ebx
push esi
mov byte [ebp - 4], 0xa
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
sete byte [ebp - 0xc51]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6b80
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x6c6ba0
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
cmp byte [ebp - 0xc51], 0
je 0x6c6bb3
mov dword [ebp - 0xc60], 0
mov dword [ebp - 0xc68], 1
lea ecx, [ebp - 0x62c]
lea edx, [ebp - 0x21c]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c6bd0
lea eax, [ebp - 0xe70]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6c6be2
lea edi, [ebp - 0x21c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x6c6bf2
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x320]
lea edx, [ebp - 0x118]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x6c6c16
lea eax, [ebp - 0x118]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x6c6c27
mov ecx, dword [str.SADefaultIcon.ico]
mov edx, dword [0x6d812c]
mov dword [eax], ecx
mov ecx, dword [0x6d8130]
mov dword [eax + 4], edx
mov edx, dword [0x6d8134]
mov dword [eax + 8], ecx
mov cx, word [0x6d8138]
mov dword [eax + 0xc], edx
mov edx, dword [0x6ded5c]
mov word [eax + 0x10], cx
mov eax, dword [edx + 0xc]
mov ecx, 0x6ded5c
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea eax, [ebp - 0x118]
shr eax, 0x10
mov byte [ebp - 4], 0xc
mov dword [ebp - 0xc58], eax
push 0
test eax, eax
jne 0x6c6cc1
lea ecx, [ebp - 0x118]
movzx edi, cx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6d7c
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
jmp 0x6c6d7c
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call ebx
lea edi, [eax - 1]
test edi, edi
jle 0x6c6d27
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c6d02
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 3
call ebx
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor ecx, ecx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], cx
jmp 0x6c6d7c
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6d7c
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6d5a
cmp dword [esi - 8], 0
jge 0x6c6d4c
push 0x80070057
call fcn.006bb270
xor edx, edx
mov dword [esi - 0xc], 0
mov word [esi], dx
jmp 0x6c6d7c
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6d70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push esi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6da3
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [0x6ded5c]
mov edx, dword [eax + 0xc]
mov ecx, 0x6ded5c
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
cmp dword [ebp - 0xc58], 0
mov byte [ebp - 4], 0xd
push 0
jne 0x6c6dfc
lea eax, [ebp - 0x118]
movzx esi, ax
push esi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6ebd
push esi
push eax
lea ecx, [ebp - 0xc4c]
call fcn.006c45a0
mov ebx, dword [ebp - 0xc4c]
jmp 0x6c6ebd
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x118]
push ecx
push 0
push 3
call edi
lea esi, [eax - 1]
test esi, esi
jle 0x6c6e62
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x6c6e3d
push esi
lea ecx, [ebp - 0xc4c]
call fcn.006c3420
mov ebx, dword [ebp - 0xc4c]
push esi
push ebx
push 0xffffffffffffffff
lea edx, [ebp - 0x118]
push edx
push 0
push 3
call edi
cmp esi, dword [ebx - 8]
jg 0x6c5ebf
xor eax, eax
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], ax
jmp 0x6c6ebd
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x6c6ebd
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6e95
cmp dword [ebx - 8], 0
jge 0x6c6e87
push 0x80070057
call fcn.006bb270
xor ecx, ecx
mov dword [ebx - 0xc], 0
mov word [ebx], cx
jmp 0x6c6ebd
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6eab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4c], ebx
mov edx, dword [0x6ded5c]
mov eax, dword [edx + 0xc]
mov ecx, 0x6ded5c
mov byte [ebp - 4], 0xe
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0xc48], esi
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0xf
push 0
test ecx, 0xffff0000
jne 0x6c6f1c
mov edx, ecx
movzx edi, dx
push edi
call fcn.006c2d20
add esp, 8
test eax, eax
je 0x6c6fd9
push edi
push eax
lea ecx, [ebp - 0xc48]
call fcn.006c45a0
mov esi, dword [ebp - 0xc48]
jmp 0x6c6fd9
push 0
push 0xffffffffffffffff
dec dword [ebp - 0x21b7b]
call dword [eax + 0x6a]
add byte [edx + 3], ch
dec dword [ebp - 0x21b7b]
call dword [eax + 0x6a]
add byte [edx + 3], ch
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edi, [eax - 1]
test edi, edi
jle 0x6c6f84
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x6c6f5b
push edi
lea ecx, [ebp - 0xc48]
call fcn.006c3420
mov esi, dword [ebp - 0xc48]
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0x21c]
push ecx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
adc eax, sym.imp.KERNEL32.dll_MultiByteToWideChar
cmp edi, dword [esi - 8]
jg 0x6c5ebf
xor edx, edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], dx
jmp 0x6c6fd9
cmp dword [esi - 0xc], 0
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x6c6fd9
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x6c6fb7
cmp dword [esi - 8], 0
jge 0x6c6fa9
push 0x80070057
call fcn.006bb270
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x6c6fd9
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c6fcd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea esi, [eax + 0x10]
push 1
push ebx
push esi
mov byte [ebp - 4], 0xe
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
sete byte [ebp - 0xc51]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x6c700c
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x6c702c
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
cmp byte [ebp - 0xc51], 0
je 0x6c7039
xor eax, eax
jmp 0x6c703f
mov eax, dword [ebp - 0xc68]
cmp dword [ebp - 0xc60], 1
jne 0x6c709f
cmp eax, 1
jne 0x6c709f
push 0
lea ecx, [ebp - 0xc50]
push ecx
push 0
push 0x20106
push 0
push 0
push 0
push str.SoftwareConexant
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x6c709f
push 4
lea edx, [ebp + 0xc]
push edx
push 4
push eax
mov eax, dword [ebp - 0xc50]
push str.SetCOMMBranding
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0xc50]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.006c2fb0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.006c7820
mov esp, ebp
pop ebp
ret 0x10