Function at 0x1042d1f
Capabilities:
Get common file path
Set registry value

Disassembly:
push 0x254
mov eax, 0x104dd66
call fcn.0104125b
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
xor ebx, ebx
lea eax, [ebp - 0x216]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x228]
call dword [sym.imp.unbcl.dll_public:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::constructor_void_]
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], ebx
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::get_P_void_const]
test eax, eax
jne 0x1042fe1
push 1
push 0x23
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1042e24
push 0x10
call dword [sym.imp.unbcl.dll_public:_static_void____stdcall_UnBCL::Object::operator_new_unsigned_int_]
mov edi, eax
mov dword [ebp - 0x22c], edi
mov esi, dword [sym.imp.unbcl.dll_public:_void___thiscall_UnBCL::String::constructor_unsigned_short_int_const__]
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x1042dbc
lea eax, [ebp - 0x218]
push eax
mov ecx, edi
call esi
mov dword [edi], 0x1001f58
jmp 0x1042dbe
xor edi, edi
push 0x1010f38
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0
call esi
push eax
push edi
mov byte [ebp - 4], 2
call dword [sym.imp.unbcl.dll_public:_static_class_UnBCL::String____stdcall_UnBCL::Path::Combine_class_UnBCL::String_const___class_UnBCL::String_const__]
push eax
lea ecx, [ebp - 0x220]
call dword [sym.imp.unbcl.dll_public:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::constructor_class_UnBCL::String__]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 3
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::SmartPtr_class_UnBCL::String_____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator_class_UnBCL::SmartPtr_class_UnBCL::String__const__]
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 2
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::String::destructor_void_]
jmp 0x1042fe1
mov esi, dword [sym.imp.unbcl.dll_public:_void___thiscall_UnBCL::String::constructor_unsigned_short_int_const__]
push 0x1010f38
lea ecx, [ebp - 0x260]
call esi
mov edi, eax
push 0x1010f1c
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 4
call esi
push edi
push eax
mov byte [ebp - 4], 5
call dword [sym.imp.unbcl.dll_public:_static_class_UnBCL::String____stdcall_UnBCL::Path::Combine_class_UnBCL::String_const___class_UnBCL::String_const__]
mov ebx, dword [sym.imp.unbcl.dll_public:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::constructor_class_UnBCL::String__]
push eax
lea ecx, [ebp - 0x230]
call ebx
mov edi, dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::String::destructor_void_]
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 7
call edi
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 8
call edi
push 0x1010ef4
lea ecx, [ebp - 0x250]
call esi
push eax
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 9
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::get_P_void_const]
push eax
call fcn.010429d1
push eax
lea ecx, [ebp - 0x220]
call ebx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0xa
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::SmartPtr_class_UnBCL::String_____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator_class_UnBCL::SmartPtr_class_UnBCL::String__const__]
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 9
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 8
call edi
lea ecx, [ebp - 0x228]
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::get_P_void_const]
test eax, eax
jne 0x1042fd1
call dword [sym.imp.unbcl.dll_public:_static_class_UnBCL::String____stdcall_UnBCL::Directory::CreateTemporaryDirectory_void_]
push eax
lea ecx, [ebp - 0x220]
call ebx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0xb
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::SmartPtr_class_UnBCL::String_____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator_class_UnBCL::SmartPtr_class_UnBCL::String__const__]
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 8
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
lea ecx, [ebp - 0x228]
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator___void_const]
mov ecx, eax
call dword [sym.imp.unbcl.dll_public:_int___thiscall_UnBCL::String::get_Length_void_const]
add eax, eax
push eax
lea ecx, [ebp - 0x228]
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator___void_const]
mov ecx, eax
call dword [sym.imp.unbcl.dll_public:_unsigned_short_int_const____thiscall_UnBCL::String::get_CString_void_const]
push eax
push 1
push 0
push 0x1010ef4
push 0x20006
lea ecx, [ebp - 0x230]
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::get_P_void_const]
push eax
call fcn.010428cf
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x1042fd1
push 0x1001dc8
lea ecx, [ebp - 0x250]
call esi
push eax
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0xc
call ebx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0xd
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::SmartPtr_class_UnBCL::String_____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::operator_class_UnBCL::SmartPtr_class_UnBCL::String__const__]
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0xc
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 8
call edi
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
lea ecx, [ebp - 0x228]
call dword [sym.imp.unbcl.dll_public:_class_UnBCL::String____thiscall_UnBCL::SmartPtr_class_UnBCL::String_::Steal_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x228]
mov esi, eax
call dword [sym.imp.unbcl.dll_public_virtual:_void___thiscall_UnBCL::SmartPtr_class_UnBCL::String_::destructor_void_]
mov eax, esi
call fcn.010412ed
ret