Function at 0x408f10
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433a35
mov eax, dword fs:[0]
push eax
sub esp, 0x678
mov eax, dword [0x455070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov byte [ebp - 0x539], 0
mov dword [ebp - 0x548], 0
mov dword [ebp - 0x57c], 1
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x578], 0
lea ecx, [ebp - 0x534]
call fcn.00407760
mov byte [ebp - 4], 1
lea eax, [ebp - 0x534]
push eax
push 0x43a258
lea ecx, [ebp - 0x474]
push ecx
call fcn.0040c860
add esp, 0xc
mov byte [ebp - 4], 2
call dword [sym.imp.iImportLib.dll_bool___cdecl_elex::os::IsX64System_void_]
movzx edx, al
test edx, edx
je 0x408ffb
lea eax, [ebp - 0x534]
push eax
push 0x43a2c8
lea ecx, [ebp - 0x60c]
push ecx
call fcn.0040c860
add esp, 0xc
mov dword [ebp - 0x55c], eax
mov edx, dword [ebp - 0x55c]
push edx
lea ecx, [ebp - 0x474]
call fcn.004032c0
lea ecx, [ebp - 0x60c]
call fcn.00405b70
mov eax, dword [ebp - 0x548]
or eax, 0x200
mov dword [ebp - 0x548], eax
xor ecx, ecx
mov word [ebp - 0x420], cx
push 0x206
push 0
lea edx, [ebp - 0x41e]
push edx
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x43a24c
mov ecx, dword [ebp + 8]
call fcn.004059f0
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
xor ecx, ecx
mov word [ebp - 0x218], cx
push 0x206
push 0
lea edx, [ebp - 0x216]
push edx
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x14
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.00406730
mov ecx, eax
call fcn.0041fe00
mov dword [ebp - 0x42c], 0
xor edx, edx
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], edx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x444]
call fcn.004065b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x444]
call fcn.00406660
movzx ecx, al
test ecx, ecx
jne 0x409396
lea ecx, [ebp - 0x45c]
call fcn.00405b40
mov byte [ebp - 4], 4
push 0
push 0x43a2c4
lea ecx, [ebp - 0x444]
call fcn.0040b9d0
mov dword [ebp - 0x540], eax
mov edx, dword [ebp - 0x540]
push edx
push 0
lea eax, [ebp - 0x624]
push eax
lea ecx, [ebp - 0x444]
call fcn.004033f0
mov dword [ebp - 0x560], eax
mov ecx, dword [ebp - 0x560]
push ecx
lea ecx, [ebp - 0x45c]
call fcn.004032c0
lea ecx, [ebp - 0x624]
call fcn.00405b70
lea ecx, [ebp - 0x45c]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x5c4]
call fcn.004065b0
mov byte [ebp - 4], 5
push 0xfde9
lea edx, [ebp - 0x5c4]
push edx
lea eax, [ebp - 0x654]
push eax
call dword [sym.imp.iImportLib.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_elex::strings::ws2s_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_]
add esp, 0xc
mov dword [ebp - 0x570], eax
mov ecx, dword [ebp - 0x570]
call fcn.0040ed00
push eax
call dword [sym.imp.MSVCR110.dll_atoi]
add esp, 4
mov ecx, 4
imul ecx, ecx, 0
mov dword [ebp + ecx - 0x42c], eax
lea ecx, [ebp - 0x654]
call fcn.00406f00
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5c4]
call fcn.00405b70
lea ecx, [ebp - 0x444]
call fcn.00405c20
push eax
mov edx, dword [ebp - 0x540]
add edx, 1
push edx
lea eax, [ebp - 0x684]
push eax
lea ecx, [ebp - 0x444]
call fcn.004033f0
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x554]
push ecx
lea ecx, [ebp - 0x444]
call fcn.004032c0
lea ecx, [ebp - 0x684]
call fcn.00405b70
push 0
push 0x43a34c
lea ecx, [ebp - 0x444]
call fcn.0040b9d0
mov dword [ebp - 0x540], eax
mov edx, dword [ebp - 0x540]
push edx
push 0
lea eax, [ebp - 0x5dc]
push eax
lea ecx, [ebp - 0x444]
call fcn.004033f0
mov dword [ebp - 0x550], eax
mov ecx, dword [ebp - 0x550]
push ecx
lea ecx, [ebp - 0x45c]
call fcn.004032c0
lea ecx, [ebp - 0x5dc]
call fcn.00405b70
lea ecx, [ebp - 0x45c]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x5ac]
call fcn.004065b0
mov byte [ebp - 4], 6
push 0xfde9
lea edx, [ebp - 0x5ac]
push edx
lea eax, [ebp - 0x66c]
push eax
call dword [sym.imp.iImportLib.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_elex::strings::ws2s_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_]
add esp, 0xc
mov dword [ebp - 0x564], eax
mov ecx, dword [ebp - 0x564]
call fcn.0040ed00
push eax
call dword [sym.imp.MSVCR110.dll_atoi]
add esp, 4
mov ecx, 4
shl ecx, 0
mov dword [ebp + ecx - 0x42c], eax
lea ecx, [ebp - 0x66c]
call fcn.00406f00
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5ac]
call fcn.00405b70
lea ecx, [ebp - 0x444]
call fcn.00405c20
push eax
mov edx, dword [ebp - 0x540]
add edx, 1
push edx
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ebp - 0x444]
call fcn.004033f0
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
push ecx
lea ecx, [ebp - 0x444]
call fcn.004032c0
lea ecx, [ebp - 0x63c]
call fcn.00405b70
lea edx, [ebp - 0x444]
push edx
lea ecx, [ebp - 0x45c]
call fcn.00405ac0
lea ecx, [ebp - 0x45c]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x594]
call fcn.004065b0
mov byte [ebp - 4], 7
push 0xfde9
lea eax, [ebp - 0x594]
push eax
lea ecx, [ebp - 0x5f4]
push ecx
call dword [sym.imp.iImportLib.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_elex::strings::ws2s_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_]
add esp, 0xc
mov dword [ebp - 0x574], eax
mov ecx, dword [ebp - 0x574]
call fcn.0040ed00
push eax
call dword [sym.imp.MSVCR110.dll_atoi]
add esp, 4
mov edx, 4
shl edx, 1
mov dword [ebp + edx - 0x42c], eax
lea ecx, [ebp - 0x5f4]
call fcn.00406f00
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x594]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x45c]
call fcn.00405b70
lea eax, [ebp - 0x538]
push eax
mov ecx, dword [ebp - 0x548]
or ecx, 0xf003f
push ecx
push 0
lea ecx, [ebp - 0x474]
call fcn.004059f0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40944c
lea edx, [ebp - 0x218]
mov dword [ebp - 0x544], edx
mov eax, dword [ebp - 0x544]
add eax, 2
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x544]
mov dx, word [ecx]
mov word [ebp - 0x54a], dx
add dword [ebp - 0x544], 2
cmp word [ebp - 0x54a], 0
jne 0x4093e6
mov eax, dword [ebp - 0x544]
sub eax, dword [ebp - 0x558]
sar eax, 1
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x568]
shl ecx, 1
push ecx
lea edx, [ebp - 0x218]
push edx
push 1
push 0
lea ecx, [ebp + 0xc]
call fcn.004059f0
push eax
mov eax, dword [ebp - 0x538]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov byte [ebp - 0x539], 1
cmp dword [ebp - 0x538], 0
je 0x409462
mov ecx, dword [ebp - 0x538]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dl, byte [ebp - 0x539]
mov byte [ebp - 0x53a], dl
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x444]
call fcn.00405b70
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x474]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x534]
call fcn.004094d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00405b70
mov al, byte [ebp - 0x53a]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004314a6
mov esp, ebp
pop ebp
ret