Function at 0x43b470
Capabilities:
Link many functions at runtime
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x510489
mov eax, dword fs:[0]
push eax
sub esp, 0xaa0
mov eax, dword [0x55b524]
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]
mov dword [ebp - 0xa88], ebx
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c132
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xa84], edi
push 0x208
lea eax, [ebp - 0x420]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.00491810
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push dword [0x562ed4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x52578c
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
call fcn.00416420
mov esi, eax
cmp dword [esi], 0
jne 0x43b596
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esi], eax
test eax, eax
je 0x43b70c
push 0x51e20c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x51e218
push dword [esi]
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x51e224
push dword [esi]
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x51e234
push dword [esi]
mov dword [esi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x51e244
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 0x43b596
call eax
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x43b70c
cmp dword [esi + 4], 0
je 0x43b70c
cmp dword [esi + 0xc], 0
je 0x43b70c
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00491810
add esp, 0xc
lea eax, [ebp - 0x628]
push 0x104
push eax
push dword [0x562ed4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c13c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa80], eax
mov byte [ebp - 4], 1
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c146
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa74], eax
lea eax, [ebp - 0x628]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0xa74]
call fcn.00404770
test al, al
jne 0x43b665
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b643
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xa74]
call fcn.00405b60
lea eax, [ebp - 0xa80]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0xa74]
push eax
call fcn.00415470
mov edx, dword [ebp - 0xa74]
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 0x43b6a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov esi, esp
mov dword [ebp - 0xa94], esp
call fcn.004166c0
push eax
mov ecx, esi
call fcn.00404440
mov eax, dword [ebp - 0xa80]
push ecx
add eax, 0xfffffff0
mov byte [ebp - 4], 4
mov esi, esp
mov dword [ebp - 0xa78], eax
push eax
mov dword [ebp - 0xa7c], esi
call fcn.004048b0
add esp, 4
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 1
call fcn.004e8a40
mov edx, dword [ebp - 0xa78]
add esp, 8
mov byte [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b70c
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 - 0xa40], 0x43a7c0
mov dword [ebp - 0xa3c], ebx
lea eax, [ebp - 0xa44]
mov byte [ebp - 4], 5
push eax
call fcn.004312d0
add esp, 4
mov byte [ebp - 4], 0
call fcn.00433440
mov esi, eax
call fcn.004334c0
mov ecx, eax
call fcn.00433630
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.00436780
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 0
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 6
push eax
call fcn.004312d0
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebx + 4]
mov dword [ebp - 0xa94], esi
push esi
call fcn.004334c0
mov ecx, eax
call fcn.00433640
push eax
call fcn.00446670
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 2
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 7
push eax
call fcn.004312d0
mov esi, dword [esi]
lea ecx, [ebp - 0xa48]
add esp, 0xc
mov byte [ebp - 4], 0
call fcn.00446e00
push esi
lea ecx, [ebp - 0xa48]
mov byte [ebp - 4], 8
call fcn.004473e0
lea ecx, [ebp - 0xa48]
call fcn.004476f0
lea ecx, [ebp - 0xa48]
mov byte [ebp - 4], 0
call fcn.00446f10
push str.remove_all_pending_files
call fcn.00436780
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 3
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 9
push eax
call fcn.004312d0
push str..tmp
push dword [ebx + 4]
lea esi, [ebx + 4]
mov byte [ebp - 4], 0
call fcn.00405870
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 4
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0xa
push eax
call fcn.004312d0
push dword [esi]
mov byte [ebp - 4], 0
push str.remove_all_.tmp_files_in__s
call fcn.00436780
push str.update
lea eax, [ebp - 0xa78]
push esi
push eax
call fcn.004200c0
push dword [eax]
mov byte [ebp - 4], 0xb
call fcn.00404f20
mov edx, dword [ebp - 0xa78]
add esp, 0x2c
mov byte [ebp - 4], 0
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b904
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.update
lea eax, [ebp - 0xa78]
push esi
push eax
call fcn.004200c0
push dword [eax]
mov byte [ebp - 4], 0xc
push str.Delete_directory_recursively:__s
call fcn.00436780
mov edx, dword [ebp - 0xa78]
add esp, 0x14
mov byte [ebp - 4], 0
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b94b
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 5
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0xd
push eax
call fcn.004312d0
add esp, 4
mov byte [ebp - 4], 0
mov ecx, ebx
call fcn.00439870
and eax, 1
mov dword [ebp - 0xa78], eax
jne 0x43b9b0
push 0xf
push str.copy_file_fail
lea ecx, [ebp - 0xa84]
call fcn.004142e0
mov edi, dword [ebp - 0xa84]
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 0x55
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0xe
push eax
call fcn.004312d0
push dword [esi]
mov byte [ebp - 4], 0
call fcn.00448dc0
add esp, 8
cmp dword [0x55a388], 0
je 0x43bad4
push str.ntdll.dll
mov dword [ebp - 0xa90], 0
mov dword [ebp - 0xa70], 0
mov dword [ebp - 0xa74], 0
mov dword [ebp - 0xa80], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0xa7c], eax
test eax, eax
je 0x43baca
push str.RtlGetNtVersionNumbers
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43ba7e
lea ecx, [ebp - 0xa74]
push ecx
lea ecx, [ebp - 0xa70]
push ecx
lea ecx, [ebp - 0xa90]
push ecx
call eax
movzx eax, word [ebp - 0xa74]
mov dword [ebp - 0xa74], eax
mov dword [ebp - 0xa80], 1
push dword [ebp - 0xa7c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0xa80], 0
je 0x43baca
mov eax, dword [ebp - 0xa90]
cmp eax, 6
jne 0x43baa9
cmp dword [ebp - 0xa70], 4
je 0x43baae
jmp 0x43baca
cmp eax, 0xa
jb 0x43baca
mov eax, dword [0x563094]
mov ecx, 1
cmp dword [ebp - 0xa74], 0x55f0
cmovae eax, ecx
mov dword [0x563094], eax
mov dword [0x55a388], 0
cmp dword [0x563094], 0
je 0x43bc92
push str.win_11
call fcn.00436780
add esp, 4
mov dword [ebp - 0xa58], 0
xor eax, eax
mov dword [ebp - 0xa54], 7
lea ecx, [ebp - 0xa68]
mov word [ebp - 0xa68], ax
push 0x15
push str.BiscuitZipExtPkg.msix
call fcn.00410a10
mov edx, dword [esi]
xor eax, eax
mov ecx, edx
mov byte [ebp - 4], 0xf
mov dword [ebp - 0xa40], 0
mov dword [ebp - 0xa3c], 7
mov word [ebp - 0xa50], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43bb45
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xa50]
call fcn.00410a10
push 0x208
lea eax, [ebp - 0xa38]
mov byte [ebp - 4], 0x10
push 0
push eax
call fcn.00491810
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0xa50]
add esp, 0xc
cmp dword [ebp - 0xa3c], 8
cmovae eax, dword [ebp - 0xa50]
push str.RegSparsePkg.exe
push eax
lea eax, [ebp - 0xa38]
push eax
call esi
push 0x208
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.00491810
add esp, 0xc
lea ecx, [ebp - 0xa68]
cmp dword [ebp - 0xa54], 8
lea eax, [ebp - 0xa50]
cmovae ecx, dword [ebp - 0xa68]
cmp dword [ebp - 0xa3c], 8
push ecx
cmovae eax, dword [ebp - 0xa50]
push eax
lea eax, [ebp - 0x830]
push eax
call esi
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c150
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa70], eax
cmp dword [ebp - 0xa3c], 8
lea ecx, [ebp - 0x830]
push ecx
lea eax, [ebp - 0xa50]
mov byte [ebp - 4], 0x11
cmovae eax, dword [ebp - 0xa50]
push eax
lea eax, [ebp - 0xa70]
push str._r___inst_dir__s____msix_path__s_
push eax
call fcn.004082b0
mov esi, dword [ebp - 0xa70]
lea eax, [ebp - 0xa38]
add esp, 0x10
push 0xffffffffffffffff
push 0
push 1
push 0
push 0
push esi
push eax
call fcn.004326c0
mov byte [ebp - 4], 0x10
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43bc77
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xa50]
call fcn.0040cf10
lea ecx, [ebp - 0xa68]
call fcn.0040cf10
lea esi, [ebx + 4]
jmp 0x43bcab
push dword [esi]
call fcn.0043c7b0
call fcn.0043ce00
push str.not_win_11
call fcn.00436780
add esp, 8
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 0x5a
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0x12
push eax
call fcn.004312d0
push str.install_Ext_Link
mov byte [ebp - 4], 0
call fcn.00436780
add esp, 8
call fcn.00433440
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
and al, 1
je 0x43bd20
push str.install_Ext_Link_Set_Default
call fcn.00436780
add esp, 4
push dword [esi]
call fcn.004e7490
call fcn.004e6780
call fcn.004e7950
jmp 0x43bd2d
push str.install_Ext_Link_not_Set_Default
call fcn.00436780
add esp, 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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], ebx
mov dword [ebp - 0xa3c], 0x60
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0x13
push eax
call fcn.004312d0
add esp, 4
mov byte [ebp - 4], 0
call fcn.0041b720
mov ecx, eax
call fcn.00418b60
mov dword [ebp - 0xa7c], eax
call fcn.0041b720
mov ecx, eax
call fcn.00418d30
mov ebx, eax
call fcn.0041b720
mov ecx, eax
call fcn.00418e20
mov esi, eax
call fcn.0041b720
mov ecx, eax
call fcn.00418f20
push 0
push eax
push esi
push ebx
mov ebx, dword [ebp - 0xa94]
push dword [ebp - 0xa7c]
push ecx
mov eax, dword [ebx]
mov esi, esp
sub eax, 0x10
mov dword [ebp - 0xa7c], esi
push eax
call fcn.004048b0
add esp, 4
lea ecx, [ebp - 0xaac]
add eax, 0x10
mov dword [esi], eax
call fcn.004345f0
lea ecx, [ebp - 0xaac]
mov byte [ebp - 4], 0x14
call fcn.004351f0
mov esi, dword [ebp - 0xa88]
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], esi
mov dword [ebp - 0xa3c], 0x61
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0x15
push eax
call fcn.004312d0
add esp, 4
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xaac]
call fcn.00434aa0
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 - 0xa44], 0x43a7d0
mov dword [ebp - 0xa40], esi
mov dword [ebp - 0xa3c], 0x62
lea eax, [ebp - 0xa48]
mov byte [ebp - 4], 0x16
push eax
call fcn.004312d0
push 0x208
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 0x14
push 0
push eax
call fcn.00491810
add esp, 0x10
lea eax, [ebp - 0x218]
push str.BiscuitZip.exe
push dword [ebx]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push ecx
mov dword [ebp - 0xa70], esp
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c15a
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0xa70]
add eax, 0x10
mov dword [ecx], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 0x17
push eax
call fcn.00404770
test al, al
jne 0x43bf02
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43bee0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0xa70]
push eax
call fcn.00405b60
lea ecx, [ebp - 0xa69]
mov byte [ebp - 4], 0x14
call fcn.004394a0
push str.BiscuitZip64.exe
push dword [ebx]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push ecx
mov dword [ebp - 0xa70], esp
call fcn.004164b0
mov ecx, eax
test ecx, ecx
je 0x43c164
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0xa70]
add eax, 0x10
mov dword [ecx], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 0x18
push eax
call fcn.00404770
test al, al
jne 0x43bf92
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43bf70
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0xa70]
push eax
call fcn.00405b60
lea ecx, [ebp - 0xa69]
mov byte [ebp - 4], 0x14
call fcn.004394a0
mov ecx, esi
call fcn.0043c990
test eax, eax
jne 0x43bfca
push 0x14
push str.write_path_reg_fail
lea ecx, [ebp - 0xa84]
mov dword [ebp - 0xa78], eax
call fcn.004142e0
mov edi, dword [ebp - 0xa84]
push str.regestry_application
call fcn.00436780
add esp, 4
push dword [ebx]
call fcn.004e7490
call fcn.004e6a80
push 0
push 0
push 0
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov ecx, esi
call fcn.0043d0e0
push 4
lea eax, [ebp - 0xa88]
mov dword [ebp - 0xa88], 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 0x43c030
push str.Ban_Check_Certificate_suc
jmp 0x43c035
push str.Ban_Check_Certificate_fail
call fcn.00436780
add esp, 4
push str.install_end.
call fcn.00436780
mov eax, dword [ebp - 0xa78]
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 - 0xa48], 0x43a7a0
mov dword [ebp - 0xa44], esi
mov dword [ebp - 0xa40], eax
mov dword [ebp - 0xa3c], edi
lea eax, [ebp - 0xa4c]
mov byte [ebp - 4], 0x19
push eax
call fcn.004312d0
push str.real_install_end.
mov byte [ebp - 4], 0x14
call fcn.00436780
lea ebx, [esi + 0x78]
mov dword [ebp - method._BaseModule::CAutoLocker.virtual_0], vtable._BaseModule::CAutoLocker.0
add esp, 0xc
mov dword [ebp - 0xa88], ebx
test ebx, ebx
je 0x43c0b0
mov eax, dword [ebx]
push ebx
call dword [eax]
mov ecx, dword [esi + 0x68]
mov byte [ebp - 4], 0x1a
test ecx, ecx
je 0x43c0c1
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
push str.set_install_finish_event
call fcn.00436780
add esp, 4
push dword [esi + 0x94]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov byte [ebp - 4], 0x1b
test ebx, ebx
je 0x43c0e8
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
lea ecx, [ebp - 0xaac]
call fcn.004347d0
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x43c112
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.00462c38
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.00404750
push 0x80004005
call fcn.00404750
push 0x80004005
call fcn.00404750
push 0x80004005
call fcn.00404750
push 0x80004005
call fcn.00404750
push 0x80004005
call fcn.00404750
int3