Function at 0x410e30
Capabilities:
Check if file exists
Persist via path registry key
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44148b
mov eax, dword fs:[0]
push eax
mov eax, 0x190cc
call fcn.0043a3c0
mov eax, dword [0x450398]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea esi, [ebp - 0x190d4]
call fcn.00402300
push eax
lea eax, [ebp - 0x190d8]
push eax
mov ebx, 0x4462a4
mov dword [ebp - 4], 0
call fcn.004141a0
push eax
lea ecx, [ebp - 0x190d0]
push ecx
mov ebx, 0x4463f0
mov byte [ebp - 4], 1
call fcn.004141a0
push eax
lea edx, [ebp - 0x190bc]
push edx
mov ebx, str.ExcelAddinSSL
mov byte [ebp - 4], 2
call fcn.004141a0
add esp, 0x18
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x190d0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410edb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x190d8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410f01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x190d4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410f27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x190c0]
push ecx
mov ecx, 0x449128
call fcn.00413b80
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x190bc]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x411493
mov edx, dword [ebp - 0x190c0]
mov ecx, dword [ebp - 0x190bc]
call fcn.00402c30
test eax, eax
jne 0x4111e4
test byte [0x453d58], 1
jne 0x410f99
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 8
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x1c]
push 2
push 0
mov ecx, 0x452c40
call edx
test al, al
je 0x411484
test byte [0x453d58], 1
jne 0x410fe3
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 9
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x6c]
push 2
push 0
mov ecx, 0x452c40
call edx
mov edi, eax
xor eax, eax
mov word [ebp - 0x19048], ax
mov eax, dword [ebp - 0x190c0]
mov ebx, 7
mov ecx, eax
mov dword [ebp - 0x19034], ebx
mov dword [ebp - 0x19038], 0
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x411021
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x19048]
call fcn.00417550
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x190bc]
xor ecx, ecx
mov word [ebp - 0x19064], cx
mov ecx, eax
mov dword [ebp - 0x19050], ebx
mov dword [ebp - 0x19054], 0
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x411064
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x19064]
call fcn.00417550
lea edx, [ebp - 0x19048]
push edx
lea eax, [ebp - 0x1909c]
push eax
mov byte [ebp - 4], 0xb
call fcn.00402430
mov esi, eax
lea ecx, [ebp - 0x19064]
push ecx
lea edx, [ebp - 0x190b8]
push edx
mov byte [ebp - 4], 0xc
call fcn.00402430
add esp, 0x10
cmp dword [esi + 0x14], 0x10
jb 0x4110ba
mov esi, dword [esi]
cmp dword [eax + 0x14], 0x10
jb 0x4110c4
mov ecx, dword [eax]
jmp 0x4110c6
mov ecx, eax
mov eax, dword [edi + 0x20]
push esi
push ecx
push str.copy_folder__s_to__s_success.
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + edi + 0x24]
push edx
call fcn.00427aed
add esp, 0x18
cmp dword [ebp - 0x190a4], 0x10
mov esi, eax
jb 0x411101
mov eax, dword [ebp - 0x190b8]
push eax
call fcn.00426798
add esp, 4
cmp dword [ebp - 0x19088], 0x10
mov dword [ebp - 0x190a4], 0xf
mov dword [ebp - 0x190a8], 0
mov byte [ebp - 0x190b8], 0
jb 0x411134
mov ecx, dword [ebp - 0x1909c]
push ecx
call fcn.00426798
add esp, 4
cmp dword [ebp - 0x19050], 8
mov dword [ebp - 0x19088], 0xf
mov dword [ebp - 0x1908c], 0
mov byte [ebp - 0x1909c], 0
jb 0x411167
mov edx, dword [ebp - 0x19064]
push edx
call fcn.00426798
add esp, 4
xor eax, eax
mov byte [ebp - 4], 7
cmp dword [ebp - 0x19034], 8
mov dword [ebp - 0x19050], ebx
mov dword [ebp - 0x19054], 0
mov word [ebp - 0x19064], ax
jb 0x41119c
mov ecx, dword [ebp - 0x19048]
push ecx
call fcn.00426798
add esp, 4
test esi, esi
jns 0x4111a8
mov esi, 0xa000
sub esi, dword [edi + 0x20]
add dword [edi + 0x20], esi
test byte [0x453d58], 1
jne 0x4111da
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0xd
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
push 0x1482
jmp 0x41146e
test byte [0x453d58], 1
jne 0x411213
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0xe
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x1c]
push 4
push 0
mov ecx, 0x452c40
call eax
test al, al
je 0x411484
test byte [0x453d58], 1
jne 0x41125e
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0xf
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x6c]
push 4
push 0
mov ecx, 0x452c40
call eax
xor ecx, ecx
mov edi, eax
mov eax, dword [ebp - 0x190c0]
mov word [ebp - 0x19048], cx
mov ecx, eax
mov dword [ebp - 0x19034], 7
mov dword [ebp - 0x19038], 0
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4112a0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x19048]
call fcn.00417550
mov ebx, 0x10
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x190bc]
xor edx, edx
mov ecx, eax
mov dword [ebp - 0x19050], 7
mov dword [ebp - 0x19054], 0
mov word [ebp - 0x19064], dx
lea esi, [ecx + 2]
jmp 0x4112f0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4112f0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x19064]
call fcn.00417550
lea eax, [ebp - 0x19048]
push eax
lea ecx, [ebp - 0x190b8]
push ecx
mov byte [ebp - 4], 0x11
call fcn.00402430
mov esi, eax
lea edx, [ebp - 0x19064]
push edx
lea eax, [ebp - 0x1909c]
push eax
mov byte [ebp - 4], 0x12
call fcn.00402430
add esp, 0x10
cmp dword [esi + 0x14], ebx
jb 0x411345
mov esi, dword [esi]
cmp dword [eax + 0x14], ebx
jb 0x41134e
mov ecx, dword [eax]
jmp 0x411350
mov ecx, eax
mov eax, dword [edi + 0x20]
push esi
push ecx
push str.copy_folder__s_to__s_fail.
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + edi + 0x24]
push edx
call fcn.00427aed
add esp, 0x18
mov esi, eax
cmp dword [ebp - 0x19088], ebx
jb 0x41138a
mov eax, dword [ebp - 0x1909c]
push eax
call fcn.00426798
add esp, 4
mov dword [ebp - 0x19088], 0xf
mov dword [ebp - 0x1908c], 0
mov byte [ebp - 0x1909c], 0
cmp dword [ebp - 0x190a4], ebx
jb 0x4113bc
mov ecx, dword [ebp - 0x190b8]
push ecx
call fcn.00426798
add esp, 4
mov ebx, 8
mov dword [ebp - 0x190a4], 0xf
mov dword [ebp - 0x190a8], 0
mov byte [ebp - 0x190b8], 0
cmp dword [ebp - 0x19050], ebx
jb 0x4113f3
mov edx, dword [ebp - 0x19064]
push edx
call fcn.00426798
add esp, 4
xor eax, eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x19050], 7
mov dword [ebp - 0x19054], 0
mov word [ebp - 0x19064], ax
cmp dword [ebp - 0x19034], ebx
jb 0x41142b
mov ecx, dword [ebp - 0x19048]
push ecx
call fcn.00426798
add esp, 4
test esi, esi
jns 0x411437
mov esi, 0xa000
sub esi, dword [edi + 0x20]
add dword [edi + 0x20], esi
test byte [0x453d58], 1
jne 0x411469
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x13
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 7
push 0x1486
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x20]
push str.ChoiceHelper.cpp
push edi
mov ecx, 0x452c40
call eax
lea ecx, [ebp - 0x190bc]
push ecx
call fcn.004027d0
add esp, 4
lea edx, [ebp - 0x190c4]
push edx
mov ecx, str.SYSTEMCurrentControlSetControlSession_ManagerEnvironment
call fcn.00413b80
lea eax, [ebp - 0x190c8]
push eax
push 0xf003f
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x190c4]
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x41169f
test byte [0x453d58], 1
jne 0x4114ff
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x15
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x14
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x1c]
push 4
push 0
mov ecx, 0x452c40
call eax
test al, al
je 0x411d73
test byte [0x453d58], 1
jne 0x41154a
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x16
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x14
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x6c]
push 4
push 0
mov ecx, 0x452c40
call eax
xor ecx, ecx
mov edi, eax
mov eax, dword [ebp - 0x190c4]
mov word [ebp - 0x19048], cx
mov ecx, eax
mov dword [ebp - 0x19034], 7
mov dword [ebp - 0x19038], 0
lea esi, [ecx + 2]
jmp 0x411590
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x411590
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x19048]
call fcn.00417550
mov edx, esi
push edx
lea eax, [ebp - 0x1909c]
push eax
mov byte [ebp - 4], 0x17
call fcn.00402430
mov ebx, 0x10
add esp, 8
cmp dword [eax + 0x14], ebx
jb 0x4115cf
mov ecx, dword [eax]
jmp 0x4115d1
mov ecx, eax
mov eax, dword [edi + 0x20]
push ecx
push str.Failed_to_RegOpenKeyEx_HKEY_LOCAL_MACHINE_key:_s
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + edi + 0x24]
push edx
call fcn.00427aed
add esp, 0x14
mov esi, eax
cmp dword [ebp - 0x19088], ebx
jb 0x41160a
mov eax, dword [ebp - 0x1909c]
push eax
call fcn.00426798
add esp, 4
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0x19034], 8
mov dword [ebp - 0x19088], 0xf
mov dword [ebp - 0x1908c], 0
mov byte [ebp - 0x1909c], 0
jb 0x411641
mov ecx, dword [ebp - 0x19048]
push ecx
call fcn.00426798
add esp, 4
test esi, esi
jns 0x41164d
mov esi, 0xa000
sub esi, dword [edi + 0x20]
add dword [edi + 0x20], esi
test byte [0x453d58], 1
jne 0x41167f
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x18
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x14
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x20]
push 0x1492
push str.ChoiceHelper.cpp
push edi
mov ecx, 0x452c40
call eax
jmp 0x411d73
push 0
push 0x4461ad
lea ecx, [ebp - 0x19080]
mov dword [ebp - 0x1906c], 0xf
mov dword [ebp - 0x19070], 0
mov byte [ebp - 0x19080], 0
call fcn.00416f20
push 0x18fff
lea ecx, [ebp - 0x1900f]
push 0
mov byte [ebp - 4], 0x19
push ecx
mov byte [ebp - 0x19010], 0
call fcn.00429770
mov ecx, dword [ebp - 0x190c8]
add esp, 0xc
lea edx, [ebp - 0x190cc]
push edx
lea eax, [ebp - 0x19010]
push eax
push 0
push 2
push str.Path
push 0
push ecx
mov dword [ebp - 0x190cc], 0x19000
call dword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x41183b
test byte [0x453d58], 1
jne 0x411754
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x1a
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x19
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x1c]
push 4
push 0
mov ecx, 0x452c40
call eax
test al, al
je 0x411860
test byte [0x453d58], 1
jne 0x41179f
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x1b
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x19
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x6c]
push 4
push 0
mov ecx, 0x452c40
call eax
mov edi, eax
mov esi, dword [edi + 0x20]
mov eax, 0xa000
sub eax, esi
lea esi, [esi + edi + 0x24]
add eax, esi
mov ebx, 0x19
sub eax, esi
mov ecx, esi
cmp eax, ebx
jae 0x4117d8
mov ebx, eax
test eax, eax
je 0x4117ea
push ebx
push str.Failed_to_read_Path_value
push esi
call fcn.0042aac0
add esp, 0xc
lea ecx, [ebx + esi]
sub ecx, esi
add dword [edi + 0x20], ecx
test byte [0x453d58], 1
jne 0x41181e
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x1c
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x19
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x20]
push 0x149c
push str.ChoiceHelper.cpp
push edi
mov ecx, 0x452c40
call eax
jmp 0x411860
lea eax, [ebp - 0x19010]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411844
sub eax, edx
push eax
lea ecx, [ebp - 0x19010]
push ecx
lea ecx, [ebp - 0x19080]
call fcn.00416f20
push 0x2d
push str.C:ProgramDataEastmoneyChoiceExcelAddinSSL
lea ecx, [ebp - 0x1902c]
mov dword [ebp - 0x19018], 0xf
mov dword [ebp - 0x1901c], 0
mov byte [ebp - 0x1902c], 0
call fcn.00416f20
mov byte [ebp - 4], 0x1d
cmp dword [ebp - 0x19070], 0
je 0x4118fb
cmp dword [ebp - 0x19018], 0x10
mov edx, dword [ebp - 0x1902c]
jae 0x4118af
lea edx, [ebp - 0x1902c]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4118b4
sub eax, esi
push eax
push edx
lea edx, [ebp - 0x19080]
push edx
xor eax, eax
call fcn.00416120
cmp eax, 0xffffffff
jne 0x411a42
push 1
mov eax, 0x44928c
lea ecx, [ebp - 0x1902c]
call fcn.004144d0
mov esi, eax
push 0
lea eax, [ebp - 0x19080]
push eax
or eax, 0xffffffff
call fcn.00415e40
cmp dword [ebp - 0x19018], 0x10
mov eax, dword [ebp - 0x1902c]
jae 0x411910
lea eax, [ebp - 0x1902c]
mov ecx, dword [ebp - 0x1901c]
mov edx, dword [ebp - 0x190c8]
inc ecx
push ecx
push eax
push 2
push 0
push str.Path
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x411beb
test byte [0x453d58], 1
jne 0x411966
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x21
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x1c]
push 4
push 0
mov ecx, 0x452c40
call edx
test al, al
je 0x411d06
test byte [0x453d58], 1
jne 0x4119b0
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x22
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x6c]
push 4
push 0
mov ecx, 0x452c40
call edx
cmp dword [ebp - 0x19018], 0x10
mov ecx, dword [ebp - 0x1902c]
mov esi, eax
jae 0x4119da
lea ecx, [ebp - 0x1902c]
mov eax, dword [esi + 0x20]
push ecx
push str.Failed_to_set_new_Path_value:_s
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + esi + 0x24]
push edx
call fcn.00427aed
add esp, 0x14
test eax, eax
jns 0x411a06
mov eax, 0xa000
sub eax, dword [esi + 0x20]
add dword [esi + 0x20], eax
test byte [0x453d58], 1
jne 0x411a38
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x23
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
push 0x14b3
jmp 0x411cf1
mov ecx, dword [ebp - 0x190c8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test byte [0x453d58], 1
jne 0x411a7e
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x1e
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x1c]
push 2
push 0
mov ecx, 0x452c40
call eax
test al, al
je 0x411b6c
test byte [0x453d58], 1
jne 0x411ac9
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x1f
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov edx, dword [0x452c40]
mov eax, dword [edx + 0x6c]
push 2
push 0
mov ecx, 0x452c40
call eax
cmp dword [ebp - 0x19018], 0x10
mov ecx, dword [ebp - 0x1902c]
mov esi, eax
jae 0x411af4
lea ecx, [ebp - 0x1902c]
mov eax, dword [esi + 0x20]
push ecx
push str.Path_has_value:_s
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + esi + 0x24]
push edx
call fcn.00427aed
add esp, 0x14
test eax, eax
jns 0x411b20
mov eax, 0xa000
sub eax, dword [esi + 0x20]
add dword [esi + 0x20], eax
test byte [0x453d58], 1
jne 0x411b52
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x20
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x20]
push 0x14ad
push str.ChoiceHelper.cpp
push esi
mov ecx, 0x452c40
call edx
mov ebx, 0x10
cmp dword [ebp - 0x19018], ebx
jb 0x411b88
mov eax, dword [ebp - 0x1902c]
push eax
call fcn.00426798
add esp, 4
xor esi, esi
mov edi, 0xf
mov dword [ebp - 0x19018], edi
mov dword [ebp - 0x1901c], esi
mov byte [ebp - 0x1902c], 0
cmp dword [ebp - 0x1906c], ebx
jb 0x411bb9
mov ecx, dword [ebp - 0x19080]
push ecx
call fcn.00426798
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x190c4]
add eax, 0xfffffff0
mov dword [ebp - 0x1906c], edi
mov dword [ebp - 0x19070], esi
mov byte [ebp - 0x19080], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x411d8d
test byte [0x453d58], 1
jne 0x411c1a
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x24
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x1c]
push 2
push 0
mov ecx, 0x452c40
call edx
test al, al
je 0x411d06
test byte [0x453d58], 1
jne 0x411c64
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x25
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x6c]
push 2
push 0
mov ecx, 0x452c40
call edx
cmp dword [ebp - 0x19018], 0x10
mov ecx, dword [ebp - 0x1902c]
mov esi, eax
jae 0x411c8e
lea ecx, [ebp - 0x1902c]
mov eax, dword [esi + 0x20]
push ecx
push str.success_to_set_new_Path_value:_s
mov ecx, 0xa000
push 0xffffffffffffffff
sub ecx, eax
push ecx
lea edx, [eax + esi + 0x24]
push edx
call fcn.00427aed
add esp, 0x14
test eax, eax
jns 0x411cba
mov eax, 0xa000
sub eax, dword [esi + 0x20]
add dword [esi + 0x20], eax
test byte [0x453d58], 1
jne 0x411cec
or dword [0x453d58], 1
mov ebx, 0x452c30
mov byte [ebp - 4], 0x26
call fcn.0041b190
push 0x4422a0
call fcn.00427096
add esp, 4
mov byte [ebp - 4], 0x1d
push 0x14b7
mov eax, dword [0x452c40]
mov edx, dword [eax + 0x20]
push str.ChoiceHelper.cpp
push esi
mov ecx, 0x452c40
call edx
mov eax, dword [ebp - 0x190c8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, 0x10
cmp dword [ebp - 0x19018], ebx
jb 0x411d2f
mov ecx, dword [ebp - 0x1902c]
push ecx
call fcn.00426798
add esp, 4
xor edi, edi
mov esi, 0xf
mov dword [ebp - 0x19018], esi
mov dword [ebp - 0x1901c], edi
mov byte [ebp - 0x1902c], 0
cmp dword [ebp - 0x1906c], ebx
jb 0x411d60
mov edx, dword [ebp - 0x19080]
push edx
call fcn.00426798
add esp, 4
mov dword [ebp - 0x1906c], esi
mov dword [ebp - 0x19070], edi
mov byte [ebp - 0x19080], 0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x190c4]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411d99
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x190c0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411dbf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x190bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411de8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004267a3
mov esp, ebp
pop ebp
ret