Function at 0x473380
Capabilities:
Check mutex on windows
Check os version
Get session user name
Get token membership

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cfe50
mov eax, dword fs:[0]
push eax
mov eax, 0x1db8
call fcn.004ed3f0
mov eax, dword [0x640844]
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 eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
push str.SHCore
mov dword [ebp - 0x1dbc], eax
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x1d98], ebx
mov dword [ebp - 0x1dc0], 0
call fcn.00438170
test eax, eax
je 0x4733f6
push str.SetProcessDpiAwareness
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4733f6
push 1
call eax
push ebx
lea ecx, [ebp - 0x70c]
call fcn.00489430
push str._silent
lea ecx, [ebp - 0x27c]
call fcn.00489430
push 0
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x70c]
call fcn.00489db0
cmp eax, 0xffffffff
lea ecx, [ebp - 0x27c]
setne byte [ebp - 0x1d9a]
call fcn.00419a70
push str._selfupdate
lea ecx, [ebp - 0x27c]
call fcn.00489430
push 0
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x70c]
call fcn.00489db0
mov edi, eax
lea ecx, [ebp - 0x27c]
cmp edi, 0xffffffff
setne byte [ebp - 0x1da5]
call fcn.00419a70
push str.E713B767_8C16_4231_89DD_CF5277C9E3FE
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov ebx, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, eax
test esi, esi
je 0x4734b0
cmp edi, 0xffffffff
je 0x473548
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.E713B767_8C16_4231_89DD_CF5277C9E3FE
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
jne 0x47355e
push 0x5e1d0c
lea ecx, [ebp - 0x33c]
call fcn.004892c0
push 0x5e1d0c
lea ecx, [ebp - 0x2dc]
call fcn.004892c0
push str.mtxerr
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0x33c]
push eax
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x27c]
push eax
push 0xffffffffffffffff
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.00419a70
mov dword [ebp - 0x1d84], 0x80070006
jmp 0x474f8c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x1d84], 0
jmp 0x474f8c
lea ecx, [ebp - 0x1d7c]
call fcn.004535a0
cmp dword [ebp - 0x1b98], 2
jne 0x4735c2
cmp byte [ebp - 0x1d7a], 0
jne 0x4735c2
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
lea eax, [ebp - 0x1d80]
push eax
call fcn.0046bc70
mov edx, dword [ebp - 0x1d80]
add esp, 4
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4735b3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x1d84], 0
jmp 0x474f40
push str.Crash_Dump_Mode
lea ecx, [ebp - 0x2dc]
call fcn.004892c0
push 0x5df610
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0x1db4]
push eax
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.0048c7d0
add esp, 0xc
lea ecx, [ebp - 0x27c]
mov bl, al
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
test bl, bl
je 0x473654
lea ecx, [ebp - 0x2dc]
call fcn.0044e660
lea eax, [ebp - 0x2dc]
push eax
call fcn.0044eb80
add esp, 4
test al, al
jne 0x473649
push 0x5e19d4
lea ecx, [ebp - 0x2dc]
call fcn.0044f200
lea ecx, [ebp - 0x2dc]
call fcn.0044e680
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x1db0]
mov dword [ebp - 0x1db0], 8
push eax
mov dword [ebp - 0x1dac], 0x8621
call fcn.00472fc0
push str.RICHED20.DLL
call fcn.00438170
push 0
push dword [ebp - 0x1dbc]
mov ecx, 0x6473b8
mov dword [ebp - 0x1dc0], eax
push 0
call fcn.0046bb50
call fcn.00427f00
push 0x5e19dc
call fcn.00438170
mov edi, eax
test edi, edi
je 0x4736f3
push 0x5e19f4
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4736ec
push 1
push 2
push 0x15
call eax
test eax, eax
jns 0x4736ec
push str.Failed_to_disable_IE_navigation_sounds_n
call fcn.00438280
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x1db8], eax
mov byte [ebp - 0x1d99], 1
call fcn.0044e660
cmp dword [ebp - 0x1d08], 0
jne 0x47373b
lea eax, [ebp - 0x470]
push 1
push eax
call fcn.0045bf50
add esp, 8
jmp 0x47374d
lea eax, [ebp - 0x1d18]
push eax
lea ecx, [ebp - 0x470]
call fcn.0044e6d0
cmp dword [ebp - 0x1b98], 2
jne 0x473787
lea edi, [ebp - 0x39c]
push str.DivXSetupUninstall.log
mov ecx, edi
call fcn.0044e550
push edi
lea ecx, [ebp - 0x470]
call fcn.0044e700
mov ecx, edi
mov dword [ebp - 0x1d84], 0
call fcn.0044e680
jmp 0x4737b6
lea edi, [ebp - 0x3fc]
push str.DivXSetup.log
mov ecx, edi
call fcn.0044e550
push edi
lea ecx, [ebp - 0x470]
call fcn.0044e700
mov ecx, edi
call fcn.0044e680
mov dword [ebp - 0x1d84], 0
lea ecx, [ebp - 0x470]
call fcn.0044e870
cmp dword [ebp - 0x1d04], 0x10
lea ecx, [ebp - 0x1d18]
mov dword [ebp - 0x1d08], 0
cmovae ecx, dword [ebp - 0x1d18]
push eax
mov byte [ecx], 0
lea ecx, [ebp - 0x1d18]
call fcn.00489bf0
lea ecx, [ebp - 0xc00]
call fcn.0044b560
lea ecx, [ebp - 0xc00]
call fcn.0044bde0
movzx eax, byte [ebp - 0xbf5]
xor ecx, ecx
cmp dword [ebp - 0x1b98], ecx
cmovne eax, ecx
lea ecx, [ebp - 0x27c]
mov byte [ebp - 0xbf5], al
lea eax, [ebp - 0xb94]
push eax
call fcn.00489120
lea eax, [ebp - 0x27c]
push eax
call fcn.00494490
mov ecx, eax
call fcn.00494640
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x530]
call fcn.00489610
cmp dword [ebp - 0x1b98], 2
jne 0x473980
push str.Locale
lea ecx, [ebp - 0x2dc]
call fcn.004892c0
push 0x5df610
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0x530]
push eax
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.0048c550
add esp, 0xc
lea ecx, [ebp - 0x27c]
mov bl, al
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
test bl, bl
je 0x4738e3
lea eax, [ebp - 0x530]
push eax
call fcn.00494490
mov ecx, eax
call fcn.00494710
lea eax, [ebp - 0x530]
push eax
call fcn.00494490
mov ecx, eax
call fcn.00494640
lea ecx, [ebp - 0x33c]
call fcn.0044e660
lea eax, [ebp - 0x33c]
push eax
call fcn.0044e950
add esp, 4
lea ecx, [ebp - 0x3fc]
push str.manifest.dxp
call fcn.0044e550
lea eax, [ebp - 0x3fc]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0044e700
lea ecx, [ebp - 0x3fc]
call fcn.0044e680
lea eax, [ebp - 0x33c]
push eax
call fcn.0044f1e0
add esp, 4
test al, al
je 0x473a50
lea ecx, [ebp - 0x2dc]
call fcn.00489610
lea eax, [ebp - 0x2dc]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0044ee60
lea eax, [ebp - 0x2dc]
push eax
lea ecx, [ebp - 0x27c]
call fcn.00489120
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
jmp 0x473a62
cmp dword [ebp - 0x1d68], 0
je 0x4738e3
lea eax, [ebp - 0x1d78]
push eax
call fcn.00494490
mov ecx, eax
call fcn.00494710
test al, al
jne 0x4738e3
push 0x5e1d98
lea ecx, [ebp - 0x33c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x2dc]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x27c]
call fcn.00489120
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x33c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.00419a70
lea ecx, [ebp - 0x530]
mov dword [ebp - 0x1d84], 0xffffffff
call fcn.00419a70
lea ecx, [ebp - 0xc00]
call fcn.00442380
lea ecx, [ebp - 0x470]
call fcn.0044e680
jmp 0x474e57
lea eax, [ebp - 0xad4]
push eax
lea ecx, [ebp - 0x27c]
call fcn.00489120
lea ecx, [ebp - 0x33c]
call fcn.0044e680
push dword [ebp - 0x1d79]
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x1da4]
push eax
call fcn.004a04d0
add esp, 0xc
lea ecx, [ebp - 0x27c]
call fcn.00419a70
cmp byte [0x6402b4], 0
push 0x54
sete byte [ebp - 0x1d80]
call fcn.004ece2f
mov edi, eax
add esp, 4
mov dword [ebp - 0x1d8c], edi
test edi, edi
je 0x473afc
push dword [ebp - 0x1d80]
lea eax, [ebp - 0x1d18]
mov dword [edi + 4], 1
lea ecx, [edi + 0xc]
mov dword [edi + 8], 1
push eax
mov dword [edi], vtable.std::_Ref_count_obj2_class_EventLog_.0
call fcn.004a0570
mov ecx, dword [ebp - 0x1da4]
lea eax, [edi + 0xc]
mov dword [ebp - 0x1d80], eax
lock inc dword [edi + 4]
mov dword [ebp - 0x1d90], eax
jmp 0x473b23
mov ecx, dword [ebp - 0x1da4]
xor edi, edi
mov dword [ebp - 0x1d8c], edi
mov eax, 0xc
mov dword [ebp - 0x1d90], 0xc
mov dword [ebp - 0x1d80], 0xc
mov dword [ebp - 0x1d94], eax
lea edx, [ebp - 0x1db0]
mov dword [ebp - 0x1db0], eax
mov dword [ebp - 0x1dac], edi
mov eax, dword [ecx]
push edx
call dword [eax + 0x64]
mov ecx, dword [ebp - 0x1dac]
or ebx, 0xffffffff
mov dword [ebp - 0x1db4], ecx
test ecx, ecx
je 0x473b75
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x473b75
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x1db4]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x473b75
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [0x6402b4], 0
je 0x473b8e
mov ecx, dword [ebp - 0x1d94]
push 0x6402b0
call fcn.004a0740
push dword [ebp - 0x218]
lea ecx, [ebp - 0x590]
call fcn.00489430
cmp dword [ebp - 0x580], 0
jne 0x473baf
mov ecx, str._empty_
jmp 0x473bc3
cmp dword [ebp - 0x57c], 0x10
lea ecx, [ebp - 0x590]
cmovae ecx, dword [ebp - 0x590]
mov edx, dword [ebp - 0x1d90]
push ecx
push str.Command_line:__s_n_n
push edx
mov eax, dword [edx]
call dword [eax + 8]
add esp, 0xc
lea eax, [ebp - 0xbf4]
lea ecx, [ebp - 0x3fc]
push eax
call fcn.00489120
cmp dword [ebp - 0x3ec], 0
jne 0x473bfa
mov edx, 0x5de8c4
jmp 0x473c2b
xor eax, eax
lea ecx, [ebp - 0x33c]
or eax, 4
mov dword [ebp - 0x1d84], eax
lea eax, [ebp - 0xbf4]
push eax
call fcn.00489120
cmp dword [ebp - 0x328], 0x10
lea edx, [ebp - 0x33c]
cmovae edx, dword [ebp - 0x33c]
mov ecx, dword [ebp - 0x1d90]
push edx
push str.BundleId_t:__s_n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1d84]
add esp, 0xc
test al, 4
je 0x473c5e
and eax, 0xfffffffb
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x1d84], eax
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
push 0x5de8c4
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x2dc]
push eax
lea ecx, [ebp - 0xc00]
call fcn.0044bb60
cmp dword [eax + 0x10], 0
jne 0x473c9f
mov edx, 0x5de8c4
jmp 0x473cd9
push 0x5de8c4
lea ecx, [ebp - 0x3fc]
call fcn.004892c0
or dword [ebp - 0x1d84], 0x18
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0xc00]
call fcn.0044bb60
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x473cd9
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1d90]
push edx
push str.SetupURL_base__t:__s_n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1d84]
add esp, 0xc
test al, 0x10
je 0x473d12
and eax, 0xffffffef
lea ecx, [ebp - 0x39c]
mov dword [ebp - 0x1d84], eax
call fcn.00419a70
mov eax, dword [ebp - 0x1d84]
test al, 8
je 0x473d21
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
cmp dword [ebp - 0x3ec], 0
jne 0x473d6d
mov eax, dword [ebp - 0x1d80]
push 0x5de8c4
push str.DistID_t:__s_n
push eax
mov eax, dword [eax]
call dword [eax + 8]
add esp, 0xc
jmp 0x473dd1
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x33c]
call fcn.00489120
cmp dword [ebp - 0x328], 0x10
lea eax, [ebp - 0x33c]
cmovae eax, dword [ebp - 0x33c]
push eax
mov eax, dword [ebp - 0x1d80]
push str.DistID_t:__s_n
push eax
mov eax, dword [eax]
call dword [eax + 8]
add esp, 0xc
lea ecx, [ebp - 0x33c]
call fcn.00419a70
mov eax, dword [ebp - 0x1d90]
mov dword [ebp - 0x1d90], eax
mov eax, dword [ebp - 0x1d94]
mov dword [ebp - 0x1d8c], edi
mov dword [ebp - 0x1d94], eax
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
mov eax, dword [ebp - 0x1b98]
test eax, eax
jne 0x473ded
mov edx, 0x5e0ca0
jmp 0x473dfd
cmp eax, 1
mov edx, str.update
mov ecx, str.unistall
cmovne edx, ecx
mov ecx, dword [ebp - 0x1d90]
push edx
push str.SetupMode_t:__s_n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push 0x202
lea eax, [ebp - 0x214]
mov dword [ebp - 0x1dc4], 0x100
push 0
push eax
call fcn.004ef230
add esp, 0x18
lea eax, [ebp - 0x1dc4]
push eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
je 0x473e8d
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp - 0x33c]
call fcn.00489430
cmp dword [ebp - 0x328], 0x10
lea ecx, [ebp - 0x33c]
mov edx, dword [ebp - 0x1d90]
cmovae ecx, dword [ebp - 0x33c]
push ecx
push str.UserName_t:__s_n_n
mov eax, dword [edx]
push edx
call dword [eax + 8]
add esp, 0xc
lea ecx, [ebp - 0x33c]
call fcn.00419a70
lea eax, [edi + 4]
mov dword [ebp - 0x218], eax
lock inc dword [eax]
mov ecx, dword [ebp - 0x1d90]
push str.Verifying_Windows_version..._n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push 0x11c
lea eax, [ebp - 0x6ac]
push 0
push eax
call fcn.004ef230
mov edi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
add esp, 0x14
mov dword [ebp - 0x6ac], 0x11c
mov dword [ebp - 0x6a8], 5
mov dword [ebp - 0x6a4], 1
push 3
push 2
push 0
push 0
mov dword [ebp - 0x598], 2
call edi
push 3
push 1
push edx
push eax
call edi
push 3
push 0x20
push edx
push eax
call edi
push 3
push 0x10
push edx
push eax
call edi
push edx
push eax
push 0x33
lea eax, [ebp - 0x6ac]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
push 0x118
mov edi, eax
lea eax, [ebp - 0x6a8]
push 0
push eax
call fcn.004ef230
add esp, 0xc
mov dword [ebp - 0x6ac], 0x11c
lea eax, [ebp - 0x6ac]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ecx, dword [ebp - 0x1d90]
lea edx, [ebp - 0x698]
push edx
push dword [ebp - 0x6a0]
push dword [ebp - 0x6a4]
mov eax, dword [ecx]
push dword [ebp - 0x6a8]
push str.Detected_Windows_version__d._d_Build__d__s_n
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x218]
add esp, 0x18
test edi, edi
mov eax, ebx
sete byte [ebp - 0x1d85]
lock xadd dword [ecx], eax
mov edi, dword [ebp - 0x1d8c]
jne 0x473fb0
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, ebx
lock xadd dword [edi + 8], eax
jne 0x473fb0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp byte [ebp - 0x1d85], 0
je 0x474102
push str.bados
lea ecx, [ebp - 0x2dc]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x27c]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x2dc]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
call fcn.0041a4a0
mov ecx, eax
test ecx, ecx
je 0x474fbb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1d80]
push 0x90
mov dword [ebp - 0x1d80], eax
call fcn.0041aa70
lea eax, [edi + 4]
lock inc dword [eax]
mov eax, dword [ebp - 0x1d94]
push ecx
mov dword [ebp - 0x21c], eax
mov ecx, esp
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x218], edi
push eax
call fcn.004683b0
lea eax, [ebp - 0x21c]
push eax
call fcn.0046b640
mov ecx, dword [ebp - 0x218]
add esp, 8
test ecx, ecx
je 0x4740c3
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x4740c3
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x4740c3
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x1d90]
push 0x80004005
push str.exiting_with_error_0x_08x_n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, dword [ebp - 0x1d80]
add esp, 0xc
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x474dcf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x474dcf
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x21c], 0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x21c]
mov word [ebp - 0x218], 0x500
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x474cb7
lea eax, [ebp - 0x1d8c]
mov dword [ebp - 0x1d8c], 0
push eax
push dword [ebp - 0x1d80]
push 0
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
push dword [ebp - 0x1d80]
neg eax
sbb eax, eax
and dword [ebp - 0x1d8c], eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
cmp dword [ebp - 0x1d8c], 0
je 0x474cb7
cmp dword [ebp - 0x1b98], 2
je 0x474444
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x33c]
call fcn.00489120
lea eax, [ebp - 0x33c]
push eax
lea ecx, [ebp - 0x2dc]
call fcn.00489120
cmp dword [ebp - 0x1b98], 1
jne 0x4741cf
lea ecx, [ebp - 0x33c]
mov eax, 0x5e127c
jmp 0x4741da
lea ecx, [ebp - 0x2dc]
mov eax, 0x5de8c4
push eax
call fcn.00442790
push dword [ebp - 0x1d79]
lea eax, [ebp - 0x894]
sub esp, 0x60
mov ecx, esp
push eax
call fcn.00489120
sub esp, 0x60
lea eax, [ebp - 0x2dc]
mov ecx, esp
push eax
call fcn.00489120
sub esp, 0x60
lea eax, [ebp - 0x33c]
mov ecx, esp
push eax
call fcn.00489120
lea eax, [ebp - 0x1da4]
push eax
call fcn.0046ad60
add esp, 0x128
mov dword [ebp - 0x1d84], eax
test eax, eax
je 0x4742b2
push str.mnfst
lea ecx, [ebp - 0x39c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x27c]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x39c]
call fcn.00419a70
jmp 0x474408
lea ecx, [ebp - 0x410]
call fcn.0049e2e0
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ecx]
call dword [eax + 0xb8]
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0x410]
call fcn.0049e4f0
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x4742ee
mov edx, dword [edx]
mov eax, dword [ebp - 0x1d90]
push edx
push str.Manifest_version__s_n
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
add esp, 0xc
lea ecx, [ebp - 0x39c]
call fcn.00419a70
cmp byte [ebp - 0x1da5], 0
jne 0x474423
cmp dword [ebp - 0x1b98], 1
je 0x47433e
cmp byte [ebp - 0x1d9a], 0
jne 0x474423
cmp byte [ebp - 0xbf6], 0
jne 0x474423
lea eax, [edi + 4]
lock inc dword [eax]
cmp byte [ebp - 0x1d79], 0
mov eax, dword [ebp - 0x1d94]
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], edi
je 0x474389
lea eax, [ebp - 0xc00]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x1da4]
push eax
call fcn.0046a370
add esp, 0xc
test al, al
je 0x4743b8
mov byte [ebp - 0x1d85], 1
jmp 0x4743bf
lea eax, [ebp - 0x1d98]
push eax
lea eax, [ebp - 0xc00]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x1da4]
push eax
call fcn.0046a680
add esp, 0x10
mov byte [ebp - 0x1d85], 1
test al, al
jne 0x4743bf
mov byte [ebp - 0x1d85], 0
mov ecx, dword [ebp - 0x218]
test ecx, ecx
je 0x4743ea
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x4743ea
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x4743ea
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x1d85], 0
je 0x474423
lea ecx, [ebp - 0x410]
mov dword [ebp - 0x1d84], 0
call fcn.0041b060
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.00419a70
jmp 0x474dd9
lea ecx, [ebp - 0x410]
call fcn.0041b060
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.00419a70
cmp byte [ebp - 0x1d79], 0
je 0x474506
lea eax, [ebp - 0xc00]
push eax
sub esp, 8
lea eax, [ebp - 0x1da4]
mov ecx, esp
push eax
call fcn.00468730
call fcn.0046c1d0
add esp, 0xc
test eax, eax
je 0x474506
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
push 0x4f6
lea ecx, [ebp - 0x1d80]
call fcn.0041aa70
lea eax, [edi + 4]
lock inc dword [eax]
mov eax, dword [ebp - 0x1d94]
push ecx
mov dword [ebp - 0x21c], eax
mov ecx, esp
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x218], edi
push eax
call fcn.004683b0
lea eax, [ebp - 0x21c]
push eax
call fcn.0046b640
mov ecx, dword [ebp - 0x218]
add esp, 8
test ecx, ecx
je 0x474dc4
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x474dc4
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x474dc4
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x474dc4
cmp dword [ebp - 0x1ca8], 0
je 0x474526
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x1cb8]
push edx
mov eax, dword [ecx]
call dword [eax + 0x5c]
jmp 0x4745aa
lea ecx, [ebp - 0x2dc]
call fcn.00489610
push str.InstallDir
lea ecx, [ebp - 0x3fc]
call fcn.004892c0
push 0x5df610
lea ecx, [ebp - 0x39c]
call fcn.004892c0
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
call fcn.0048c550
add esp, 0xc
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
cmp dword [ebp - 0x2cc], 0
je 0x47459f
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x2dc]
push edx
mov eax, dword [ecx]
call dword [eax + 0x5c]
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
cmp dword [ebp - 0x1b98], 2
jne 0x4745fd
cmp dword [ebp - 0x1c48], 0
je 0x4745d0
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x1c58]
push edx
mov eax, dword [ecx]
call dword [eax + 0x6c]
jmp 0x4745fd
push 0x5e1270
lea ecx, [ebp - 0x39c]
call fcn.004892c0
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x39c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x6c]
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x4d0]
call fcn.00489610
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x4d0]
push edx
mov eax, dword [ecx]
call dword [eax + 0x60]
cmp dword [ebp - 0x4c0], 0
jne 0x4746e3
lea ecx, [ebp - 0x33c]
call fcn.0044e660
lea eax, [ebp - 0x33c]
push eax
call fcn.0044ed90
add esp, 4
test al, al
je 0x47476d
push 0x5e0ea4
lea ecx, [ebp - 0x39c]
call fcn.0044e550
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0044e700
lea ecx, [ebp - 0x39c]
call fcn.0044e680
lea ecx, [ebp - 0x33c]
call fcn.0044e870
push eax
lea ecx, [ebp - 0x39c]
call fcn.004892c0
mov ecx, dword [ebp - 0x1da4]
lea edx, [ebp - 0x39c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x5c]
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.0044e870
push eax
lea ecx, [ebp - 0x39c]
call fcn.004892c0
push eax
lea ecx, [ebp - 0x4d0]
call fcn.0044e6d0
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.0044e680
cmp dword [ebp - 0x4bc], 0x10
lea ecx, [ebp - 0x4d0]
mov edx, dword [ebp - 0x1d94]
cmovae ecx, dword [ebp - 0x4d0]
push ecx
push str.Default_install_dir:__s_n
mov eax, dword [edx]
push edx
call dword [eax + 8]
add esp, 0xc
push dword [ebp - 0x1db8]
call dword [sym.imp.USER32.dll_SetCursor]
lea eax, [ebp - 0x1da4]
mov byte [ebp - 0x1d99], 0
push eax
lea eax, [ebp - 0xc00]
push eax
lea eax, [ebp - 0x1d7c]
push eax
push dword [ebp - 0x1dbc]
lea ecx, [ebp - 0x1b88]
call fcn.00453c30
lea ecx, [ebp - 0x1b88]
mov dword [ebp - 0x1d84], 0
call fcn.00464ad0
cmp eax, 6
jne 0x4748cc
push str.unex2
jmp 0x474905
push str.unexp1
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x39c]
call fcn.00489120
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebp - 0x1d84], eax
lea eax, [ebp - 0x2dc]
push eax
call fcn.0045e040
add esp, 8
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
cmp dword [ebp - 0x2c8], 0x10
lea eax, [ebp - 0x2dc]
cmovae eax, dword [ebp - 0x2dc]
push eax
push dword [ebp - 0x1d84]
lea eax, [ebp - 0x1d80]
push str.Failed_with_error__0x_08x_:_n_n_s
push eax
call fcn.0043a360
lea eax, [edi + 4]
lock inc dword [eax]
mov eax, dword [ebp - 0x1d94]
add esp, 0xc
mov dword [ebp - 0x21c], eax
mov ecx, esp
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x218], edi
push eax
call fcn.004683b0
lea eax, [ebp - 0x21c]
push eax
call fcn.0046b640
mov ecx, dword [ebp - 0x218]
add esp, 8
test ecx, ecx
je 0x47489b
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x47489b
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x47489b
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x1d80]
call fcn.00419960
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
lea ecx, [ebp - 0x33c]
call fcn.0044e680
lea ecx, [ebp - 0x4d0]
call fcn.00419a70
jmp 0x474dd9
cmp byte [ebp - 0x1d9a], 0
je 0x4749e6
lea eax, [ebp - 0x1b88]
push eax
call fcn.0046f710
add esp, 4
test al, al
je 0x474900
lea eax, [ebp - 0x1b88]
push eax
call fcn.00469f90
add esp, 4
jmp 0x474c3d
push str.slnt_init
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x39c]
call fcn.00489120
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x1d8c]
call fcn.00441c50
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
push 0x66
lea ecx, [ebp - 0x1d8c]
call fcn.0041aa70
push 0xa3
lea ecx, [ebp - 0x1d80]
call fcn.0041aa70
push 0x10
push dword [ebp - 0x1d8c]
push dword [ebp - 0x1d80]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x1d80]
call fcn.00419960
lea ecx, [ebp - 0x1d8c]
call fcn.00419960
mov dword [ebp - 0x1d84], 0x80004005
jmp 0x474c9c
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [ebp - 0x1b5c]
and dword [ebp - 0x1b60], 0xfffffbff
test ecx, ecx
cmove ecx, eax
mov eax, dword [ebp - 0x1b30]
mov dword [ebp - 0x1b44], eax
mov eax, dword [ebp - 0x1b2c]
mov dword [ebp - 0x1b4c], eax
mov eax, dword [ebp - 0x1b74]
mov dword [ebp - 0x1b5c], ecx
test eax, eax
jne 0x474a45
call fcn.004d6e68
mov dword [ebp - 0x1b74], eax
test eax, eax
jne 0x474a45
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x474af9
push 0
push 0
push eax
call fcn.004d6f6a
lea eax, [ebp - 0x1b88]
mov dword [ebp - 0x1b80], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x640030
mov dword [ebp - 0x1b7c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x640048]
mov dword [ebp - 0x1b78], eax
lea eax, [ebp - 0x1b80]
push 0x640030
mov dword [0x640048], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebp - 0x1b64]
push eax
call fcn.004731f0
mov ecx, dword [ebp - 0x1b30]
mov dword [ebp - 0x1d98], eax
mov dword [ebp - 0x1b4c], 0
mov dword [ebp - 0x1b44], 0
test ecx, ecx
je 0x474adc
push ecx
call fcn.004f250c
mov eax, dword [ebp - 0x1d98]
add esp, 4
mov dword [ebp - 0x1b30], 0
mov dword [ebp - 0x1b2c], 0
mov dword [ebp - 0x1b28], 0
cmp eax, 0xffffffff
jne 0x474c3d
push 0x5e1ee8
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x39c]
call fcn.00489120
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebp - 0x1d84], eax
lea eax, [ebp - 0x2dc]
push eax
call fcn.0045e040
add esp, 8
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
cmp dword [ebp - 0x2c8], 0x10
lea eax, [ebp - 0x2dc]
cmovae eax, dword [ebp - 0x2dc]
push eax
push dword [ebp - 0x1d84]
lea eax, [ebp - 0x1d80]
push str.Failed_with_error__0x_08x_:_n_n_s
push eax
call fcn.0043a360
lea eax, [edi + 4]
lock inc dword [eax]
mov eax, dword [ebp - 0x1d94]
add esp, 0xc
mov dword [ebp - 0x21c], eax
mov ecx, esp
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x218], edi
push eax
call fcn.004683b0
lea eax, [ebp - 0x21c]
push eax
call fcn.0046b640
mov ecx, dword [ebp - 0x218]
add esp, 8
test ecx, ecx
je 0x474c27
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x474c27
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x474c27
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x1d80]
call fcn.00419960
lea ecx, [ebp - 0x2dc]
call fcn.00419a70
mov ecx, dword [ebp - 0x1d94]
push dword [ebp - 0x1d84]
push str.Exiting_setup_with_return_code_0x_08x_n
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x1da0]
add esp, 0xc
mov dword [ebp - 0x1da4], 0
mov dword [ebp - 0x1d98], ecx
mov dword [ebp - 0x1da0], 0
test ecx, ecx
je 0x474c9c
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x474c9c
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x1d98]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x474c9c
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x1b88]
call fcn.00455490
lea ecx, [ebp - 0x4d0]
call fcn.00419a70
jmp 0x474dd9
push 0x5e1e48
lea ecx, [ebp - 0x27c]
call fcn.004892c0
lea eax, [ebp - 0xb34]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00489120
lea eax, [ebp - 0xbf4]
push eax
lea ecx, [ebp - 0x39c]
call fcn.00489120
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x39c]
push eax
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x1b98]
call fcn.00471be0
add esp, 0x10
lea ecx, [ebp - 0x39c]
call fcn.00419a70
lea ecx, [ebp - 0x3fc]
call fcn.00419a70
lea ecx, [ebp - 0x27c]
call fcn.00419a70
lea ecx, [ebp - 0x1d80]
call fcn.00441c50
push 0x96
lea ecx, [ebp - 0x1d80]
call fcn.0041aa70
lea eax, [edi + 4]
lock inc dword [eax]
mov eax, dword [ebp - 0x1d94]
push ecx
mov dword [ebp - 0x21c], eax
mov ecx, esp
lea eax, [ebp - 0x1d80]
mov dword [ebp - 0x218], edi
push eax
call fcn.004683b0
lea eax, [ebp - 0x21c]
push eax
call fcn.0046b640
mov ecx, dword [ebp - 0x218]
add esp, 8
test ecx, ecx
je 0x474dab
mov eax, ebx
lock xadd dword [ecx + 4], eax
jne 0x474dab
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x218]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x474dab
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x1d90]
push 0x80004005
push str.exiting_with_error_0x_08x_n
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
add esp, 0xc
lea ecx, [ebp - 0x1d80]
call fcn.00419960
mov dword [ebp - 0x1d84], 0x80004005
lea ecx, [ebp - 0x590]
call fcn.00419a70
mov eax, ebx
lea ecx, [edi + 4]
lock xadd dword [ecx], eax
jne 0x474e05
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, ebx
lock xadd dword [edi + 8], eax
jne 0x474e05
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov edi, dword [ebp - 0x1da0]
test edi, edi
je 0x474e2d
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x474e2d
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x474e2d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea ecx, [ebp - 0x530]
call fcn.00419a70
lea ecx, [ebp - 0xc00]
call fcn.00442380
lea ecx, [ebp - 0x470]
call fcn.0044e680
cmp byte [ebp - 0x1d99], 0
je 0x474e63
push dword [ebp - 0x1db8]
call dword [sym.imp.USER32.dll_SetCursor]
push dword [ebp - 0x1dc0]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ebx, dword [0x64704c]
add ebx, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [0x6473f0]
test edi, edi
je 0x474ed1
cmp dword [edi + 4], 0
jle 0x474e9f
mov eax, dword [edi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov edi, dword [0x6473f0]
test edi, edi
je 0x474ed1
mov eax, dword [edi]
test eax, eax
je 0x474eb8
push eax
call fcn.004f250c
add esp, 4
mov dword [edi], 0
push 0xc
push edi
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.004ece5f
add esp, 8
push ebx
mov dword [0x6473f0], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [0x6473ec]
test edi, edi
je 0x474f2a
mov eax, dword [edi]
test eax, eax
je 0x474f01
push eax
call fcn.004f250c
add esp, 4
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x474f18
push eax
call fcn.004f250c
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
mov dword [edi + 8], 0
call fcn.004ece5f
add esp, 8
mov ecx, 0x6473b8
call fcn.0046ef20
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ebx, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [ebp - 0x1b94]
call fcn.004272c0
lea ecx, [ebp - 0x1bf8]
call fcn.00419a70
lea ecx, [ebp - 0x1c58]
call fcn.00419a70
lea ecx, [ebp - 0x1cb8]
call fcn.00419a70
lea ecx, [ebp - 0x1d18]
call fcn.00419a70
lea ecx, [ebp - 0x1d78]
call fcn.00419a70
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x70c]
call fcn.00419a70
mov eax, dword [ebp - 0x1d84]
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.004ed0cc
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.0041a0e0
int3