Function at 0x10065a20
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c4
push ebx
push esi
push edi
mov byte [ebp - 0x61], 3
mov dword [ebp - 0xe4], 0x18955d40
mov eax, dword [0x100c30c8]
mov ecx, dword [0x100c30cc]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x88], eax
xor edx, edx
mov dword [ebp - 0x2c], 0xa4b79040
mov dword [ebp - 0x28], edx
movsx eax, word [0x100c308c]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x5c], 0x1c1e6b30
mov ecx, 0x32af
mov word [ebp - 0xc], cx
mov dx, word [0x100c30b0]
mov word [ebp - 0x3c], dx
movsx ax, byte [str.NDisablePerfBackoff]
mov word [ebp - 0x10], ax
mov ecx, 0x4ea9
mov word [ebp - 0x20], cx
mov edx, dword [0x100c30e8]
mov eax, dword [0x100c30ec]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x98], 0x44d
mov dword [ebp - 0x94], ecx
mov eax, dword [0x100c30f8]
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov dx, word [0x100c30fc]
mov byte [ebp - 2], dl
movsx eax, word [0x100c3118]
cdq
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
mov ax, word [0x100c30f8]
mov word [ebp - 0x30], ax
mov ecx, dword [0x100c3080]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x40], 0x61
mov dx, word [0x100c30fc]
mov word [ebp - 8], dx
mov byte [ebp - 1], 0x16
mov eax, 0xffff9024
mov word [ebp - 0x24], ax
movsx eax, word [0x100c30fc]
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [0x100c30e8]
mov edx, dword [0x100c30ec]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], edx
mov eax, 0x6aaa
mov word [ebp - 0x48], ax
mov byte [ebp - 3], 0xc6
mov cl, byte [0x100c3090]
mov byte [ebp - 0x41], cl
xor edx, edx
mov dword [ebp - 0x18c], 0x63b7
mov dword [ebp - 0x188], edx
mov eax, 0x356ff
mov dword [ebp - 0x194], 0x2afdfc9
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x144], 0x373449f1
movzx eax, byte [0x100c3063]
cdq
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], edx
xor ecx, ecx
mov dword [ebp - 0x1a4], 0x42a5aa04
mov dword [ebp - 0x1a0], ecx
xor edx, edx
mov dword [ebp - 0x1ac], 0xaf
mov dword [ebp - 0x1a8], edx
mov dword [ebp - 0x140], 0x14870fa9
movzx ax, byte [0x100c303b]
mov word [ebp - 0xf0], ax
mov ecx, dword [0x100c30a8]
mov edx, dword [0x100c30ac]
mov dword [ebp - 0x13c], edx
mov dword [ebp - 0x184], ecx
movzx eax, byte [0x100c3063]
mov dword [ebp - 0x180], eax
mov ecx, dword [0x100c30d0]
mov edx, dword [0x100c30d4]
mov dword [ebp - 0x1b4], ecx
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0x178], 0xee61c7d
xor eax, eax
mov dword [ebp - 0x1bc], 0x34c4
mov dword [ebp - 0x1b8], eax
mov ecx, 9
mov word [ebp - 0xe0], cx
mov dword [ebp - 0x174], 0x2dd8
mov edx, dword [0x100c3120]
mov eax, dword [0x100c3124]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x4c], 0x5dc
mov ecx, dword [0x100c30e8]
mov esi, dword [0x100c30ec]
add ecx, 0x35c1
adc esi, 0
mov eax, dword [ebp - 0x40]
not eax
movsx edx, word [ebp - 0x24]
sub eax, edx
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xf4], esi
mov eax, dword [ebp - 0xf8]
or eax, dword [ebp - 0xf4]
jne 0x10065cb4
xor ecx, ecx
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0xb0], ecx
jmp 0x10065cbf
xorps xmm0, xmm0
movlpd qword [ebp - 0xb4], xmm0
mov eax, dword [ebp - 0x40]
cdq
xor ecx, ecx
mov esi, dword [0x100c3098]
mov edi, dword [0x100c309c]
xor esi, dword [0x100c310c]
xor edi, ecx
add eax, esi
adc edx, edi
xor eax, dword [ebp - 0xb4]
xor edx, dword [ebp - 0xb0]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov edx, 8
mov word [0x100c3118], dx
movsx eax, word [ebp - 0x3c]
cdq
mov ecx, dword [0x100c3100]
mov esi, dword [0x100c3104]
add ecx, eax
adc esi, edx
mov edx, dword [0x100c30c8]
mov eax, dword [0x100c30cc]
push eax
push edx
push esi
push ecx
call fcn.1008eb70
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
mov ecx, dword [ebp - 0x100]
or ecx, dword [ebp - 0xfc]
jne 0x10065d44
mov byte [ebp - 0x19], 1
jmp 0x10065d48
mov byte [ebp - 0x19], 0
mov dl, byte [ebp - 0x19]
mov byte [0x100c3075], dl
movzx eax, word [0x100c30e0]
cdq
push edx
push eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.1008eb70
mov ecx, dword [ebp - 0x38]
sub ecx, eax
mov eax, dword [ebp - 0x34]
sbb eax, edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x150], edx
sub ecx, 0xbe0a36c4
mov dword [ebp - 0x60], ecx
cmp dword [ebp - 0x4c], 0x4ee
jle 0x10065e14
mov eax, dword [0x100c310c]
add eax, 1
mov dword [0x100c310c], eax
mov ecx, 0x5b31
mov word [ebp - 0x30], cx
mov edx, dword [ebp - 0xa0]
sub edx, 1
mov eax, dword [ebp - 0x9c]
sbb eax, 0
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], eax
movsx ecx, word [0x100c30fc]
and ecx, 0xaf4d
mov word [ebp - 0x10], cx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
sub edx, 0xae
sbb eax, 0
mov ecx, dword [0x100c30d8]
sub ecx, edx
mov edx, dword [0x100c30dc]
sbb edx, eax
mov dword [0x100c30d8], ecx
mov dword [0x100c30dc], edx
mov eax, dword [ebp - 0x4c]
sub eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x10065d8d
mov ecx, dword [0x100c3b38]
mov dword [ebp - 0x50], ecx
mov byte [ebp - 1], 0xd6
movsx eax, word [0x100c308c]
add eax, 0x1930
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movzx eax, word [ebp - 8]
cdq
push 0xb0fd4
push 0xd40c8e30
push edx
push eax
call fcn.1008eb70
mov dword [ebp - 0x60], eax
mov dx, word [0x100c30d8]
mov word [0x100c308c], dx
mov eax, dword [ebp - 0x50]
add eax, 0x7ad
mov dword [ebp - 0x74], eax
mov ecx, dword [0x100c3b38]
xor edx, edx
mov dword [0x100c3080], ecx
mov dword [0x100c3084], edx
movsx eax, byte [ebp - 2]
cdq
xor eax, dword [0x100c3098]
xor edx, dword [0x100c309c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
movsx eax, byte [ebp - 1]
movsx ecx, byte [ebp - 1]
sub eax, ecx
movsx edx, byte [ebp - 1]
or edx, eax
mov byte [ebp - 1], dl
mov ax, word [0x100c3b38]
mov word [0x100c30fc], ax
mov cl, byte [0x100c3027]
sub cl, 1
mov byte [0x100c3027], cl
mov dx, word [ebp - 0x10]
mov eax, 1
imul ecx, eax, 0x2f40
mov byte [ecx + 0x100f8c58], dl
mov edx, dword [ebp - 0x50]
add edx, 0x7b9
mov dword [ebp - 0x154], edx
xor eax, eax
mov dword [0x100c3110], 3
mov dword [0x100c3114], eax
mov ecx, dword [0x100c30e8]
mov edx, dword [0x100c30ec]
and ecx, dword [0x100c30d8]
and edx, dword [0x100c30dc]
mov eax, dword [0x100c30e8]
mov esi, dword [0x100c30ec]
add eax, ecx
adc esi, edx
mov dword [0x100c30e8], eax
mov dword [0x100c30ec], esi
mov ecx, dword [0x100c3098]
mov edx, dword [0x100c309c]
mov dword [ebp - 0x158], edx
mov eax, 4
imul edx, eax, 0x2e
mov dword [edx + 0x100dfc18], ecx
mov eax, dword [0x100c3110]
mov ecx, dword [0x100c3114]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xa8], 0
ja 0x10066288
jb 0x10065f79
cmp dword [ebp - 0xac], 3
ja 0x10066288
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x1c4]
jmp dword [eax*4 + 0x100669cc]
mov eax, dword [ebp - 0x50]
add eax, 0x6c9
mov dword [ebp - 0x54], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x100662b2
mov ecx, dword [ebp - 0x70]
push ecx
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [ebp - 0x168], eax
movsx eax, word [0x100c308c]
cdq
mov ecx, dword [0x100c30c8]
mov esi, dword [0x100c30cc]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100c30c8]
mov eax, dword [0x100c30cc]
sub edx, ecx
sbb eax, esi
mov dword [0x100c30c8], edx
mov dword [0x100c30cc], eax
movzx ecx, word [ebp - 8]
movzx edx, word [ebp - 0xc]
imul ecx, edx
mov word [ebp - 8], cx
mov eax, dword [0x100c30f8]
cdq
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
push edx
push eax
push esi
push ecx
call fcn.1008eb70
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], esi
movsx eax, byte [str.NDisablePerfBackoff]
cdq
add eax, 0xa0b3f5fc
adc edx, 0x92f91
mov dword [0x100c30c8], eax
mov dword [0x100c30cc], edx
mov dl, byte [ebp - 3]
sub dl, 1
mov byte [ebp - 3], dl
movsx eax, byte [ebp - 1]
cdq
mov ecx, eax
and ecx, 0x1181fcc3
movsx eax, byte [ebp - 1]
cdq
or eax, ecx
mov byte [ebp - 1], al
jmp 0x10066366
push 0
lea edx, [ebp - 0x8c]
push edx
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareMyAppTempKey
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x84], eax
push 0
push 0xa3
call fcn.10051570
add esp, 8
cwde
cdq
mov dword [0x100c30e8], eax
mov dword [0x100c30ec], edx
mov eax, dword [0x100c30e8]
mov ecx, dword [0x100c30ec]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], ecx
cmp dword [ebp - 0x10c], 0
ja 0x100663d7
cmp dword [ebp - 0x110], 0
jb 0x10066453
jmp fcn.100663eb
movzx edx, word [ebp - 0x20]
test edx, edx
jne 0x100664b8
mov ax, word [0x100c3090]
sub ax, 1
mov word [0x100c3090], ax
movsx eax, word [ebp - 0x30]
cdq
add eax, dword [0x100c3080]
mov word [ebp - 0x30], ax
movzx eax, word [ebp - 0x20]
cdq
mov ecx, dword [0x100c3098]
mov edx, dword [0x100c309c]
mov dword [ebp - 0x16c], edx
not ecx
sub eax, ecx
mov dword [0x100c3108], eax
mov eax, dword [0x100c30b8]
sub eax, 0x86
mov ecx, dword [0x100c30bc]
sbb ecx, 0
mov dword [0x100c30c8], eax
mov dword [0x100c30cc], ecx