Function at 0x414115
Capabilities:
Set registry value

Disassembly:
push 0x7f4
mov eax, 0x42bfd5
call fcn.0042baa2
lea ecx, [ebp - 0x708]
call fcn.004158f0
xor ebx, ebx
lea ecx, [ebp - 0x7a0]
mov dword [ebp - 4], ebx
call fcn.004158f0
push 6
pop edi
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.00414b20
cmp eax, 1
jne 0x41415c
mov esi, 0x4010f8
jmp 0x414580
push 0x200
lea eax, [ebp - 0x410]
push eax
push 0x1f4
push ebx
call dword [sym.imp.USER32.dll_LoadStringW]
xor eax, eax
lea ecx, [ebp - 0x410]
mov word [ebp - 0x12], ax
mov ax, word [ebp - 0x410]
test ax, ax
je 0x4141a7
movzx edx, ax
cmp dx, 0x23
jne 0x41419a
xor eax, eax
mov word [ecx], ax
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x41418f
push ebx
mov esi, 0x104
lea ecx, [ebp - 0x708]
push esi
call fcn.004154cb
lea eax, [ebp - 0x708]
mov edx, 0x1f5
push esi
push eax
call fcn.0041647c
lea eax, [ebp - 0x7a0]
mov edx, 0x1f6
push esi
push eax
call fcn.0041647c
push 0x58
pop esi
push esi
lea eax, [ebp - 0x800]
push ebx
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [0x42e780]
lea ecx, [ebp - 0x670]
mov dword [ebp - 0x7fc], eax
add esp, 0x1c
lea eax, [ebp - 0x410]
mov dword [ebp - 0x800], esi
mov dword [ebp - 0x7f4], eax
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x7e4], eax
mov eax, dword [ebp - 0x700]
mov dword [ebp - 0x7e0], eax
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x7cc], edi
mov dword [ebp - 0x7c4], eax
call fcn.004158f0
lea ecx, [ebp - 0x670]
mov byte [ebp - 4], 2
call fcn.00414a8a
neg eax
mov esi, 0x4010f8
sbb eax, eax
and eax, dword [ebp - 0x664]
cmp dword [0x42e7cc], 0
mov dword [ebp - 0x7d4], eax
je 0x4143c7
lea ecx, [ebp - 0x4a8]
call fcn.004158f0
mov byte [ebp - 4], 3
call dword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o_rand]
and eax, 0x80000001
jns 0x414297
dec eax
or eax, 0xfffffffe
add eax, 1
jne 0x41434c
mov edi, 0x401908
mov ecx, edi
call fcn.00415c83
push eax
push edi
lea ecx, [ebp - 0x4a8]
call fcn.0041617d
push ecx
lea eax, [ebp - 0x4a8]
xor ecx, ecx
push eax
call fcn.00420c90
pop ecx
pop ecx
test eax, eax
jns 0x41455e
lea ecx, [ebp - 0x5d8]
call fcn.004158f0
lea ecx, [ebp - 0x540]
call fcn.004158f0
mov edi, 0x104
lea eax, [ebp - 0x5d8]
push edi
push eax
mov edx, 0x1f8
call fcn.0041647c
lea eax, [ebp - 0x540]
mov edx, 0x192
push edi
push eax
call fcn.0041647c
add esp, 0x10
push ebx
push dword [ebp - 0x534]
push dword [ebp - 0x5cc]
push dword [0x42e780]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x540]
mov dword [ebp - 0x540], esi
call fcn.0041585e
mov dword [ebp - 0x5d8], esi
lea ecx, [ebp - 0x5d8]
jmp 0x414559
mov edi, 0x4018f0
mov ecx, edi
call fcn.00415c83
push eax
push edi
lea ecx, [ebp - 0x4a8]
call fcn.0041617d
push ecx
lea eax, [ebp - 0x4a8]
xor ecx, ecx
push eax
inc ecx
call fcn.00420c90
pop ecx
pop ecx
test eax, eax
jns 0x41455e
lea ecx, [ebp - 0x540]
call fcn.004158f0
lea ecx, [ebp - 0x5d8]
call fcn.004158f0
mov edi, 0x104
lea eax, [ebp - 0x5d8]
push edi
push eax
mov edx, 0x192
call fcn.0041647c
lea eax, [ebp - 0x540]
mov edx, 0x1f8
push edi
push eax
call fcn.0041647c
add esp, 0x10
push ebx
jmp 0x414524
lea eax, [ebp - 0x800]
push eax
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
test eax, eax
je 0x41456f
lea ecx, [ebp - 0x4a8]
call fcn.004158f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x670]
push dword [ebp - 0x7e4]
call fcn.00415590
push dword [ebp - 0x7e4]
lea ecx, [ebp - 0x4a8]
call fcn.00415590
push 0x5c
lea ecx, [ebp - 0x670]
call fcn.00415353
cmp eax, 0xffffffff
jle 0x414487
push eax
lea ecx, [ebp - 0x670]
call fcn.00415743
push ebx
lea eax, [ebp - 0x7a4]
mov dword [ebp - 0x7a4], ebx
push eax
push ebx
push 2
push ebx
push ebx
push ebx
push 0x4017d8
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x414487
mov eax, dword [ebp - 0x660]
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x664]
push 1
push ebx
push 0x401c3c
push dword [ebp - 0x7a4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x7a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x2e
push dword [ebp - 0x49c]
mov byte [ebp - 0x494], 1
call dword [sym.imp.api_ms_win_crt_private_l1_1_0.dll_wcsrchr]
pop ecx
pop ecx
lea ecx, [ebp - 0x4a8]
mov byte [ebp - 0x494], 0
mov ebx, eax
call fcn.0041613c
xor edi, edi
test ebx, ebx
je 0x4144cb
push 0x4018d8
push ebx
call dword [sym.imp.api_ms_win_crt_private_l1_1_0.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x4144cb
inc edi
push ecx
lea eax, [ebp - 0x4a8]
mov ecx, edi
push eax
call fcn.00420c90
pop ecx
pop ecx
test eax, eax
jns 0x41455e
lea ecx, [ebp - 0x540]
call fcn.004158f0
lea ecx, [ebp - 0x5d8]
call fcn.004158f0
mov edi, 0x104
lea eax, [ebp - 0x5d8]
push edi
push eax
mov edx, 0x192
call fcn.0041647c
lea eax, [ebp - 0x540]
mov edx, 0x1f8
push edi
push eax
call fcn.0041647c
add esp, 0x10
push 0
push dword [ebp - 0x5cc]
push dword [ebp - 0x534]
push dword [0x42e780]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x5d8]
mov dword [ebp - 0x5d8], esi
call fcn.0041585e
lea ecx, [ebp - 0x540]
mov dword [ebp - 0x540], esi
call fcn.0041585e
lea ecx, [ebp - 0x4a8]
mov dword [ebp - 0x4a8], esi
call fcn.0041585e
lea ecx, [ebp - 0x670]
mov dword [ebp - 0x670], esi
call fcn.0041585e
lea ecx, [ebp - 0x7a0]
mov dword [ebp - 0x7a0], esi
call fcn.0041585e
lea ecx, [ebp - 0x708]
mov dword [ebp - 0x708], esi
call fcn.0041585e
call fcn.0042ba3f
ret