Function at 0x403150
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40d83f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], ecx
xor ebx, ebx
push 0x40ed08
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x24], ebx
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_wchar_t_const__]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 4], ebx
call fcn.0040a050
push eax
lea esi, [ebx + 1]
mov byte [ebp - 4], 1
call dword [sym.imp.FineObj.dll_void___cdecl_FObj::FileSystem::SetRelativeApplicationDataPath_class_FObj::CUnicodeString_const__]
add esp, 0xc
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], bl
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
test byte [0x415a50], 1
jne 0x40320a
or dword [0x415a50], esi
push 0x40ddd0
mov dword [0x415a40], 0x40f330
mov dword [0x415a4c], ebx
mov dword [0x415a44], ebx
mov dword [0x415a3c], 0x40f31c
mov dword [0x415a48], 0x40f328
call fcn.00407fc9
add esp, 4
push ecx
mov edx, esp
mov dword [ebp - 0x24], esp
push edx
mov ecx, 0x41597c
call dword [sym.imp.FineObj.dll_public:_class_FObj::CUnicodeString___thiscall_FObj::CSetupBase::GetString_void_]
mov eax, dword [0x41597c]
mov edx, dword [eax + 0x10]
mov ecx, 0x41597c
call edx
test al, al
mov eax, dword [0x415a3c]
mov edx, dword [eax + 4]
mov ecx, 0x415a3c
je 0x403240
push esi
push ebx
jmp 0x403242
push ebx
push esi
call edx
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
call fcn.00407060
test byte [0x415a50], 1
jne 0x403296
or dword [0x415a50], esi
push 0x40ddd0
mov dword [0x415a40], 0x40f330
mov dword [0x415a4c], ebx
mov dword [0x415a44], ebx
mov dword [0x415a3c], 0x40f31c
mov dword [0x415a48], 0x40f328
call fcn.00407fc9
add esp, 4
mov eax, dword [0x415a3c]
mov edx, dword [eax]
mov ecx, 0x415a3c
call edx
test al, 1
je 0x403407
push 0x20
call dword [sym.imp.FineObj.dll_void____cdecl_FObj::doAlloc_unsigned_int_]
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x4032c3
call dword [sym.imp.FineObj.dll_void___cdecl_FObj::ThrowMemoryException_void_]
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], 2
cmp esi, ebx
je 0x4032e0
push 1
push 0xd
mov ecx, esi
call fcn.0040b520
mov edi, eax
jmp 0x4032e2
xor edi, edi
mov dword [ebp - 0x28], edi
cmp edi, ebx
je 0x4032fd
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
lea eax, [ecx + edi + 4]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [ebp - 4], 3
call fcn.00409eb0
lea ecx, [ebp - 0x24]
mov esi, eax
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_void_]
push eax
push ecx
mov byte [ebp - 4], 4
mov eax, esp
mov dword [ebp - 0x20], esp
mov dword [eax], edi
cmp edi, ebx
je 0x403339
mov edx, dword [edi + 4]
mov eax, dword [edx + 4]
lea eax, [eax + edi + 4]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [esi]
mov edx, dword [edx + 4]
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call edx
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x403377
mov dword [ebp - 0x1c], ebx
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea esi, [edx + eax + 4]
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x403377
cmp esi, ebx
je 0x403377
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
call fcn.00408a00
mov ecx, eax
call fcn.004087e0
push eax
call fcn.004086e0
call fcn.00408a00
push str.CommandLine
mov esi, eax
push 0x40eb64
push esi
call fcn.00408870
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x40eb64
push esi
call fcn.00408870
push 0x40eb5c
push 0x40eb64
push esi
call fcn.00408870
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
cmp edi, ebx
je 0x403407
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
lea edi, [edx + edi + 4]
lea eax, [edi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x403407
cmp edi, ebx
je 0x403407
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 1
mov ecx, edi
call eax
mov ecx, dword [ebp - 0x18]
push ebx
call dword [sym.imp.Awl.dll_public:_void___thiscall_AWL::CWinApp::SetExitCode_int_]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov edi, eax
call fcn.00408a00
push edi
mov esi, eax
push 0x40eb64
push esi
call fcn.00408870
push 0x40eb5c
push 0x40eb64
push esi
call fcn.00408870
mov edi, dword [ebp - 0x18]
mov dword [ebp - 4], 5
add edi, 0x3c
add esp, 0x18
cmp dword [edi], ebx
mov ebx, dword [sym.imp.FineObj.dll_bool___cdecl_FObj::IsSwitch_wchar_t_const___wchar_t_const___int_]
jle 0x403545
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 0xc
push 0x40ecd4
push eax
call ebx
add esp, 0xc
test al, al
je 0x403545
mov esi, dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_wchar_t_const__]
push str.D3E0A0F7_BB78_43B2_94D9_BD63A57BB300
lea ecx, [ebp - 0x20]
call esi
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x1c]
push edx
mov byte [ebp - 4], 6
call fcn.0040bb90
add esp, 8
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 4], 0
jne 0x4034cf
push 0
push 0x58
push str..SrcRegistratorApp.cpp
push 0x40f0a8
push 0x40f0a8
push 0
call dword [sym.imp.FineObj.dll_bool___cdecl_FObj::GenerateInternalError_enum_FObj::TInternalErrorType__wchar_t_const___wchar_t_const___wchar_t_const___long_int__unsigned_long_int_]
add esp, 0x18
push str.msiexec.exe
lea ecx, [ebp - 0x24]
call esi
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x28]
mov bl, 9
push edx
mov byte [ebp - 4], bl
call fcn.00401260
push 0
push 1
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0xa
call fcn.0040bc40
add esp, 0x10
lea ecx, [ebp - 0x28]
mov esi, eax
mov byte [ebp - 4], bl
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
mov ecx, dword [ebp - 0x18]
push esi
call dword [sym.imp.Awl.dll_public:_void___thiscall_AWL::CWinApp::SetExitCode_int_]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi], 0
jle 0x403731
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 0xc
push str.disableLog
push eax
call ebx
add esp, 0xc
test al, al
jne 0x40358d
cmp dword [edi], 0
jle 0x403731
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 0xc
push str.enableLog
push eax
call ebx
add esp, 0xc
test al, al
je 0x403731
cmp dword [edi], 0
jle 0x4035b2
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 0xc
push str.enableLog
push eax
call ebx
add esp, 0xc
mov dword [ebp - 0x24], 1
test al, al
jne 0x4035b9
mov dword [ebp - 0x24], 0
call fcn.00403a00
cmp byte [ebp - 0x24], 0
mov ecx, eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
je 0x4035d1
push 1
push 0
jmp 0x4035d5
push 0
push 1
call eax
call fcn.00403a00
mov ecx, eax
call fcn.00403980
call fcn.00403a00
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push ecx
mov ecx, 0x41597c
mov esi, eax
call dword [sym.imp.FineObj.dll_public:_class_FObj::CUnicodeString___thiscall_FObj::CSetupBase::GetString_void_]
mov edx, dword [0x41597c]
mov eax, dword [edx + 0x10]
mov ecx, 0x41597c
call eax
mov edx, dword [esi]
test al, al
mov eax, dword [edx + 4]
mov ecx, esi
je 0x40361d
push 1
push 0
jmp 0x403621
push 0
push 1
call eax
call dword [sym.imp.Awl.dll_class_AWL::CAwlMessageHandler____cdecl_AWL::GetAwlMessageHandler_void_]
push 0
push 1
push eax
lea ecx, [ebp - 0x38]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CMessageHandlerSwitcher::constructor_class_FObj::CMessageHandler___bool__bool_]
mov byte [ebp - 4], 0xb
cmp dword [edi], 0
jle 0x40365e
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 0xc
push str.enableLog
push eax
call ebx
add esp, 0xc
test al, al
mov eax, str.enable
jne 0x403663
mov eax, str.disable
push eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_wchar_t_const__]
mov byte [ebp - 4], 0xc
call fcn.00403a00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
call eax
and al, 1
cmp al, 1
sete byte [ebp - 0x11]
cmp dword [edi], 0
jle 0x4036ab
mov edi, dword [edi + 4]
mov eax, dword [edi]
push 0xffffffffffffffff
add eax, 0xc
push str.enableLog
push eax
call ebx
add esp, 0xc
test al, al
je 0x4036ab
mov eax, 1
jmp 0x4036ad
xor eax, eax
cmp byte [ebp - 0x11], al
lea ecx, [ebp - 0x1c]
sete al
lea edx, [ebp - 0x28]
push ecx
test al, al
je 0x4036d4
push str.Successful__n_nLog_status:
push edx
call fcn.004038e0
add esp, 0xc
mov byte [ebp - 4], 0xd
push 0x40
jmp 0x4036e8
push str.Failed__n_nLog_status:
push edx
call fcn.004038e0
add esp, 0xc
mov byte [ebp - 4], 0xe
push 0x10
mov eax, dword [eax]
add eax, 0xc
push eax
call dword [sym.imp.FineObj.dll_int___cdecl_FObj::MessageBoxW_wchar_t_const___int_]
add esp, 8
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xc
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xb
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CMessageHandlerSwitcher::destructor_void_]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00401480
mov bl, al
call fcn.004014e0
cmp bl, al
jne 0x40378c
call fcn.00408a00
push str.Install_deinstall_Params_error___
mov esi, eax
push 0x40eb64
push esi
call fcn.00408870
add esp, 0xc
push 0x40eb5c
push 0x40eb64
push esi
call fcn.00408870
mov ecx, dword [ebp - 0x18]
add esp, 0xc
push 0xffffffffffffffff
call dword [sym.imp.Awl.dll_public:_void___thiscall_AWL::CWinApp::SetExitCode_int_]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x18]
call fcn.00403830
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor al, al
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret