Function at 0x43e0e0
Capabilities:
Check if file exists
Get common file path
Link many functions at runtime
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d3a4f
mov eax, dword fs:[0]
push eax
sub esp, 0x894
mov eax, dword [0x653510]
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
mov ebx, dword [ebp + 8]
call fcn.00415d80
mov ecx, eax
test ecx, ecx
je 0x43ee37
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x884], edi
push 0x208
lea eax, [ebp - 0x420]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.00526470
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push dword [0x65a264]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x5f0e6c
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
call fcn.00415cf0
mov esi, eax
cmp dword [esi], 0
jne 0x43e200
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esi], eax
test eax, eax
je 0x43e379
push 0x5e9280
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5e928c
push dword [esi]
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5e9298
push dword [esi]
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5e92a8
push dword [esi]
mov dword [esi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5e92b8
push dword [esi]
mov dword [esi + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x43e200
call eax
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x43e379
cmp dword [esi + 4], 0
je 0x43e379
cmp dword [esi + 0xc], 0
je 0x43e379
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00526470
add esp, 0xc
lea eax, [ebp - 0x628]
push 0x104
push eax
push dword [0x65a264]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.00415d80
mov ecx, eax
test ecx, ecx
je 0x43ee41
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x86c], eax
mov byte [ebp - 4], 1
call fcn.00415d80
mov ecx, eax
test ecx, ecx
je 0x43ee4b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x870], eax
lea eax, [ebp - 0x628]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x870]
call fcn.00407b20
test al, al
jne 0x43e2d2
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43e2b0
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x870]
call fcn.00408f10
lea eax, [ebp - 0x86c]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.004156c0
mov edx, dword [ebp - 0x870]
add esp, 8
mov byte [ebp - 4], 1
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43e30e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov esi, esp
mov dword [ebp - 0x874], esp
call fcn.004301f0
push eax
mov ecx, esi
call fcn.004077f0
push ecx
mov esi, esp
mov byte [ebp - 4], 4
mov dword [ebp - 0x870], esi
mov eax, dword [ebp - 0x86c]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x870], eax
call fcn.00407c60
add esp, 4
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 1
call fcn.005ad560
mov edx, dword [ebp - 0x870]
add esp, 8
mov byte [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43e379
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - method.mf_bind_t_class_CInstaller__class_CInstaller___void_.virtual_0], vtable.mf_bind_t_class_CInstaller__class_CInstaller___void_.0
mov dword [ebp - 0x878], 0x43d740
mov dword [ebp - 0x874], ebx
lea eax, [ebp - 0x87c]
mov byte [ebp - 4], 5
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0
call fcn.004362b0
mov esi, eax
call fcn.00436330
mov ecx, eax
call fcn.004364a0
mov ecx, dword [esi]
push dword [eax]
push esi
call dword [ecx + 0x24]
push eax
push str.install_type:_d__install_version:_s
call fcn.00439630
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x87c], 0x43d750
mov dword [ebp - 0x878], ebx
mov dword [ebp - 0x874], 0
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 6
push eax
call fcn.00434140
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebx + 4]
push esi
call fcn.00436330
mov ecx, eax
call fcn.004364b0
push eax
call fcn.0044a500
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x87c], 0x43d750
mov dword [ebp - 0x878], ebx
mov dword [ebp - 0x874], 2
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 7
push eax
call fcn.00434140
mov esi, dword [esi]
lea ecx, [ebp - 0x848]
add esp, 0xc
mov byte [ebp - 4], 0
call fcn.0044ac30
push esi
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 8
call fcn.0044b210
lea ecx, [ebp - 0x848]
call fcn.0044b520
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0
call fcn.0044ad40
push str.remove_all_pending_files
call fcn.00439630
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x87c], 0x43d750
mov dword [ebp - 0x878], ebx
mov dword [ebp - 0x874], 3
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 9
push eax
call fcn.00434140
push str..tmp
push dword [ebx + 4]
lea esi, [ebx + 4]
mov byte [ebp - 4], 0
call fcn.00408c20
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x87c], 0x43d750
mov dword [ebp - 0x878], ebx
mov dword [ebp - 0x874], 4
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 0xa
push eax
call fcn.00434140
push dword [esi]
mov byte [ebp - 4], 0
push str.remove_all_.tmp_files_in__s
call fcn.00439630
push str.update
lea eax, [ebp - 0x86c]
push esi
push eax
call fcn.0041f650
push dword [eax]
mov byte [ebp - 4], 0xb
call fcn.004082d0
mov edx, dword [ebp - 0x86c]
or esi, 0xffffffff
add esp, 0x2c
mov byte [ebp - 4], 0
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43e56d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.update
lea eax, [ebx + 4]
push eax
lea eax, [ebp - 0x86c]
push eax
call fcn.0041f650
push dword [eax]
mov byte [ebp - 4], 0xc
push str.Delete_directory_recursively:__s
call fcn.00439630
mov edx, dword [ebp - 0x86c]
add esp, 0x14
mov byte [ebp - 4], 0
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43e5b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x87c], 0x43d750
mov dword [ebp - 0x878], ebx
mov dword [ebp - 0x874], 5
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 0xd
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0
mov ecx, ebx
call fcn.0043c9a0
and eax, 1
mov dword [ebp - 0x874], eax
jne 0x43e61b
push 0xf
push str.copy_file_fail
lea ecx, [ebp - 0x884]
call fcn.004152f0
mov edi, dword [ebp - 0x884]
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x37
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0xe
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0
mov ecx, ebx
call fcn.0043f6d0
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x4b
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0xf
push eax
call fcn.00434140
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x5d
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0x10
push eax
call fcn.00434140
push dword [ebx + 4]
mov byte [ebp - 4], 0
call fcn.0044c560
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x60
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0x11
push eax
call fcn.00434140
add esp, 0x10
mov byte [ebp - 4], 0
call fcn.004362b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
test al, 1
je 0x43e736
call fcn.0041a040
mov ecx, eax
call fcn.004180c0
mov dword [ebp - 0x86c], 1
test eax, eax
je 0x43e740
mov dword [ebp - 0x86c], 0
call fcn.004362b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
test al, 2
je 0x43e765
call fcn.0041a040
mov ecx, eax
call fcn.004182a0
test eax, eax
jne 0x43e765
lea esi, [eax + 1]
jmp 0x43e767
xor esi, esi
push 0
call fcn.0041a040
mov ecx, eax
call fcn.00418580
neg eax
sbb eax, eax
inc eax
push eax
call fcn.0041a040
mov ecx, eax
call fcn.004183a0
neg eax
sbb eax, eax
inc eax
push eax
push esi
push dword [ebp - 0x86c]
push ecx
mov esi, esp
mov dword [ebp - 0x86c], esi
mov eax, dword [ebx + 4]
sub eax, 0x10
push eax
call fcn.00407c60
add esp, 4
lea ecx, [ebp - 0x89c]
add eax, 0x10
mov dword [esi], eax
call fcn.00437460
lea ecx, [ebp - 0x89c]
mov byte [ebp - 4], 0x12
call fcn.00438010
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x61
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0x13
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x89c]
call fcn.004378c0
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x62
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0x14
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0x12
mov ecx, ebx
call fcn.0043c6b0
push 0x210
lea eax, [ebp - 0x838]
push 0
push eax
call fcn.00526470
add esp, 0xc
call fcn.00415d80
mov ecx, eax
test ecx, ecx
je 0x43ee55
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x870], eax
mov byte [ebp - 4], 0x15
call fcn.00437d30
test al, al
lea eax, [ebp - 0x838]
je 0x43e8b1
push str.UtilsTabXSDrv_x64.sys
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 8
push str.Pdrv_x64
jmp 0x43e8c7
push str.UtilsTabXSDrv.sys
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 8
push str.Pdrv_x86
lea ecx, [ebp - 0x870]
call fcn.00408f10
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43e9ab
push str.Create_Drivers
call fcn.00439630
add esp, 4
lea eax, [ebp - 0x838]
push 1
push eax
push str.TabXSDrvsfert
call fcn.00448f10
push str.TabXSDrvsfert
call fcn.00448fc0
mov dword [ebp - method.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.virtual_0], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x844], 0x43d750
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], 0x63
lea eax, [ebp - 0x848]
mov byte [ebp - 4], 0x16
push eax
call fcn.00434140
add esp, 4
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x218]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.ldsComputerZ.set
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov esi, dword [ebp - 0x870]
cmp dword [esi - 4], 1
jle 0x43e991
push dword [esi - 0xc]
lea ecx, [ebp - 0x870]
call fcn.004086a0
mov esi, dword [ebp - 0x870]
lea eax, [ebp - 0x218]
push eax
push str.TabXDrv
push str.TabX
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x43e9b1
mov esi, dword [ebp - 0x870]
mov byte [ebp - 4], 0x12
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43e9cd
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
call fcn.0043f550
push 4
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x86c], 0
push eax
push 4
push str.CertificateRevocation
push str.SoftwareMicrosoftWindowsCurrentVersionInternet_Settings
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
jne 0x43ea09
push str.Ban_Check_Certificate_suc
jmp 0x43ea0e
push str.Ban_Check_Certificate_fail
call fcn.00439630
add esp, 4
push str.IsWow64Process2
push str.kernelbase.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x43eb42
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x870], 0
push eax
lea eax, [ebp - 0x870]
mov dword [ebp - 0x86c], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x43eb42
mov eax, dword [ebp - 0x86c]
mov ecx, 0xaa64
cmp ax, cx
je 0x43ea92
mov ecx, 0x1c0
cmp ax, cx
je 0x43ea92
mov ecx, 0x1c4
cmp ax, cx
jne 0x43eb42
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00526470
add esp, 0xc
mov dword [ebp - 0x840], 0
xor eax, eax
mov dword [ebp - 0x83c], 7
lea ecx, [ebp - 0x850]
mov word [ebp - 0x850], ax
push 0xd
push 0x5ea9f0
call fcn.00414260
lea eax, [ebp - 0x850]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x868]
push eax
call fcn.00410ca0
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x43eaf9
mov eax, dword [eax]
push str.config.ini
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x868]
call fcn.0040fa90
lea ecx, [ebp - 0x850]
mov byte [ebp - 4], 0x12
call fcn.0040fa90
lea eax, [ebp - 0x218]
push eax
push 0x5f1d98
push 0x5f1d9c
push str.settings
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
call fcn.0041a040
mov eax, dword [eax + 0x5c]
sub eax, 0x10
push eax
call fcn.00407c60
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x86c], esi
cmp dword [esi - 0xc], 0
mov byte [ebp - 4], 0x18
je 0x43ec15
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00526470
add esp, 0xc
mov dword [ebp - 0x840], 0
xor eax, eax
mov dword [ebp - 0x83c], 7
lea ecx, [ebp - 0x850]
mov word [ebp - 0x850], ax
push 0xd
push 0x5ea9f0
call fcn.00414260
lea eax, [ebp - 0x850]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x868]
push eax
call fcn.00410ca0
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x43ebd4
mov eax, dword [eax]
push str.config.ini
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x868]
call fcn.0040fa90
lea ecx, [ebp - 0x850]
call fcn.0040fa90
lea eax, [ebp - 0x218]
push eax
push esi
push str.theme_mode
push str.settings
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0x12
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43ec33
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0041a040
mov eax, dword [eax + 0x40]
sub eax, 0x10
push eax
call fcn.00407c60
add esp, 4
add eax, 0x10
mov dword [ebp - 0x870], eax
mov ecx, str.__fromnewinstall
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x43ec83
test dx, dx
je 0x43ec77
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x43ec83
add eax, 4
add ecx, 4
test dx, dx
jne 0x43ec55
mov dword [ebp - 0x86c], 0
jmp 0x43ec8e
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0x86c], ecx
mov edx, dword [ebp - 0x870]
mov eax, esi
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43ecaf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x86c], 0
jne 0x43ed1b
call fcn.0041a040
mov ecx, eax
call fcn.00418930
test al, al
je 0x43ed1b
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00526470
add esp, 0xc
lea eax, [ebp - 0x218]
push str.UtilsTabXHelper.exe
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.run_helper
call fcn.00439630
add esp, 4
lea eax, [ebp - 0x218]
push 0xffffffffffffffff
push 0
push 0
push 1
push 1
push 0x5e8438
push eax
call fcn.00435530
mov ecx, ebx
call fcn.0043ef10
test eax, eax
jne 0x43ed42
push 0x14
push str.write_path_reg_fail
lea ecx, [ebp - 0x884]
xor esi, esi
call fcn.004152f0
mov edi, dword [ebp - 0x884]
jmp 0x43ed48
mov esi, dword [ebp - 0x874]
push str.install_end.
call fcn.00439630
mov dword [ebp - method.mf_bind_t_2_class_CInstaller__class_CInstaller___void__int__wchar_t_const__.virtual_0], vtable.mf_bind_t_2_class_CInstaller__class_CInstaller___void__int__wchar_t_const__.0
mov dword [ebp - 0x848], 0x43d720
mov dword [ebp - 0x844], ebx
mov dword [ebp - 0x840], esi
mov dword [ebp - 0x83c], edi
lea eax, [ebp - 0x84c]
mov byte [ebp - 4], 0x1b
push eax
call fcn.00434140
push str.real_install_end.
mov byte [ebp - 4], 0x12
call fcn.00439630
lea esi, [ebx + 0x78]
mov dword [ebp - method._BaseModule::CAutoLocker.virtual_0], vtable._BaseModule::CAutoLocker.0
add esp, 0xc
mov dword [ebp - 0x874], esi
test esi, esi
je 0x43edb5
mov eax, dword [esi]
push esi
call dword [eax]
mov ecx, dword [ebx + 0x68]
mov byte [ebp - 4], 0x1c
test ecx, ecx
je 0x43edc6
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
push str.set_install_finish_event
call fcn.00439630
add esp, 4
push dword [ebx + 0x94]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov byte [ebp - 4], 0x1d
test esi, esi
je 0x43eded
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea ecx, [ebp - 0x89c]
call fcn.004375f0
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x43ee17
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, 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.00464e98
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.00407b00
push 0x80004005
call fcn.00407b00
push 0x80004005
call fcn.00407b00
push 0x80004005
call fcn.00407b00
int3