Function at 0x477b10
Capabilities:
Check if file exists
Delete file
Delete registry value
Get common file path
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x566e3b
mov eax, dword fs:[0]
push eax
sub esp, 0x830
mov eax, dword [0x5c9c4c]
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 - 0x82c], 0
call fcn.0040cd20
mov ecx, eax
test ecx, ecx
je 0x47876e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x83c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], vtable.mf_bind_t_class_CInstaller__class_CInstaller___void_.0
mov dword [ebp - 0x18], 0x477100
mov dword [ebp - 0x14], ebx
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 1
push eax
call fcn.0046a6b0
add esp, 4
mov byte [ebp - 4], 0
call fcn.0046e930
mov esi, eax
call fcn.0046e940
mov ecx, eax
call fcn.0046eae0
mov ecx, dword [esi]
push dword [eax]
push esi
call dword [ecx + 0x28]
push eax
push str.install_type:_d__install_version:_s
call fcn.00472a20
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 2
push eax
call fcn.0046a6b0
add esp, 0x10
mov byte [ebp - 4], 0
lea edi, [ebx + 4]
push 0
push edi
call fcn.0046e940
mov ecx, eax
call fcn.0046eaf0
push eax
call fcn.00482300
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 2
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 3
push eax
call fcn.0046a6b0
mov esi, dword [edi]
lea ecx, [ebp - 0x20]
add esp, 0x10
mov byte [ebp - 4], 0
call fcn.0042ac20
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0042b200
lea ecx, [ebp - 0x20]
call fcn.0042b560
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0
call fcn.0042ad30
push str.remove_all_pending_files
call fcn.00472a20
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 3
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
push eax
call fcn.0046a6b0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0
push 0xd
push eax
call fcn.004383e0
add esp, 0x10
cmp dword [eax + 0x14], 8
jb 0x477c9e
mov eax, dword [eax]
push str.ldsuninst
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x477ce9
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x477cdf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x478778
push edx
push ecx
call fcn.004a952e
add esp, 8
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x477d4c
push str.removelds.bat
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x477d4c
lea eax, [ebp - 0x230]
push eax
push str.Delete_temp_file:__s
call fcn.00472a20
add esp, 8
push str..tmp
push dword [edi]
call fcn.0040fd90
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 4
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 6
push eax
call fcn.0046a6b0
push dword [edi]
mov byte [ebp - 4], 0
push str.remove_all_.tmp_files_in__s
call fcn.00472a20
add esp, 0x14
mov eax, dword [edi]
mov byte [ebp - 4], 7
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x477da8
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x477dbe
call fcn.0040cd20
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x47877d
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x82c], 1
lea esi, [eax + 0x10]
mov eax, dword [edi]
mov dword [ebp - 0x830], esi
mov dword [ebp - 0x838], eax
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x834], edi
lea edx, [edi + 7]
test edx, edx
js 0x478787
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x477e15
push edx
lea ecx, [ebp - 0x830]
call fcn.0040b1b0
mov esi, dword [ebp - 0x830]
add edi, edi
push edi
push dword [ebp - 0x838]
push edi
push esi
call fcn.00479610
lea ecx, [edi + esi]
add esp, 0x10
test ecx, ecx
jne 0x477e41
call fcn.005240da
mov dword [eax], 0x16
call fcn.00523fb4
jmp 0x477e5f
movq xmm0, qword [str.update]
movq qword [ecx], xmm0
mov eax, dword [0x58a6bc]
mov dword [ecx + 8], eax
mov ax, word [0x58a6c0]
mov word [ecx + 0xc], ax
mov eax, dword [ebp - 0x834]
add eax, 7
cmp eax, dword [esi - 8]
jg 0x478787
xor ecx, ecx
mov dword [esi - 0xc], eax
push esi
mov word [esi + eax*2], cx
call fcn.0040f710
add esp, 4
mov dword [ebp - 0x82c], 0
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x477ea9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 4]
mov byte [ebp - 4], 8
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x477ec2
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x477ed8
call fcn.0040cd20
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x478791
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x82c], 2
lea esi, [eax + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x830], esi
mov dword [ebp - 0x834], eax
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x838], edi
lea edx, [edi + 7]
test edx, edx
js 0x47879b
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x477f30
push edx
lea ecx, [ebp - 0x830]
call fcn.0040b1b0
mov esi, dword [ebp - 0x830]
add edi, edi
push edi
push dword [ebp - 0x834]
push edi
push esi
call fcn.00479610
lea ecx, [edi + esi]
add esp, 0x10
test ecx, ecx
jne 0x477f5c
call fcn.005240da
mov dword [eax], 0x16
call fcn.00523fb4
jmp 0x477f7a
movq xmm0, qword [str.update]
movq qword [ecx], xmm0
mov eax, dword [0x58a6bc]
mov dword [ecx + 8], eax
mov ax, word [0x58a6c0]
mov word [ecx + 0xc], ax
mov eax, dword [ebp - 0x838]
add eax, 7
cmp eax, dword [esi - 8]
jg 0x478787
xor ecx, ecx
mov dword [esi - 0xc], eax
push esi
push str.Delete_directory_recursively:__s
mov word [esi + eax*2], cx
call fcn.00472a20
add esp, 8
mov dword [ebp - 0x82c], 0
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x477fc9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 5
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 9
push eax
call fcn.0046a6b0
add esp, 4
mov eax, dword [ebx + 4]
mov byte [ebp - 4], 0xa
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x47800a
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x478020
call fcn.0040cd20
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x4787a5
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x82c], 4
lea esi, [eax + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x830], esi
mov dword [ebp - 0x834], eax
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x838], edi
lea ecx, [edi + 0x15]
test ecx, ecx
js 0x4787af
mov eax, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub eax, ecx
or eax, edx
jge 0x478078
push ecx
lea ecx, [ebp - 0x830]
call fcn.0040b1b0
mov esi, dword [ebp - 0x830]
add edi, edi
push edi
push dword [ebp - 0x834]
push edi
push esi
call fcn.00479610
lea eax, [edi + esi]
add esp, 0x10
test eax, eax
jne 0x4780a4
call fcn.005240da
mov dword [eax], 0x16
call fcn.00523fb4
jmp 0x4780b4
push 0x2a
push str.ComputerZService.exe
push eax
call fcn.00507350
add esp, 0xc
mov eax, dword [ebp - 0x838]
add eax, 0x15
cmp eax, dword [esi - 8]
jg 0x478787
xor ecx, ecx
mov dword [esi - 0xc], eax
push esi
mov word [esi + eax*2], cx
call fcn.0042a560
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4780f1
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
call fcn.00475b00
mov edi, eax
and edi, 1
jne 0x478111
push 0xf
push str.copy_file_fail
lea ecx, [ebp - 0x83c]
call fcn.0042e600
cmp dword [ebx + 0xac], 0
je 0x478129
push str.break_off_copy_files
call fcn.00472a20
jmp 0x4786c9
lea ecx, [ebx + 0x98]
call fcn.00474200
test eax, eax
jne 0x478145
push str.down_patcher_fail
call fcn.00472a20
add esp, 4
push str.start_call_program
call fcn.00472a20
add esp, 4
cmp dword [ebx + 0x80], 0
jne 0x478175
mov eax, dword [ebx + 4]
push dword [eax - 0xc]
push eax
call fcn.0046e940
mov ecx, eax
call fcn.0046eaf0
mov ecx, eax
call fcn.0047a4a0
push dword [ebx + 4]
call fcn.00484350
add esp, 4
cmp dword [ebx + 0x7c], 0
jne 0x478217
cmp dword [ebx + 0x8c], 0
jne 0x478217
call fcn.004393d0
test eax, eax
je 0x478217
mov ecx, ebx
call fcn.004789d0
test eax, eax
jne 0x4781c1
push 0x11
push str.set_autorun_fail
lea ecx, [ebp - 0x83c]
xor edi, edi
call fcn.0042e600
jmp 0x478217
call fcn.0046e930
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
je 0x478217
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
lea eax, [ebp - 0x230]
push 0x57e10c
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x230]
push eax
push 0x57e108
push str.AutoStart2
push str.General
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x60
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xb
push eax
call fcn.0046a6b0
add esp, 4
mov byte [ebp - 4], 0
call fcn.0046e930
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
neg eax
sbb esi, esi
inc esi
call fcn.0046e940
mov ecx, eax
call fcn.0046fdb0
test eax, eax
je 0x4782d8
test esi, esi
je 0x478344
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
call fcn.0046e930
push 0x104
lea edx, [ebp - 0x230]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
push 0x57e10c
lea eax, [ebp - 0x230]
push eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathAppendW]
call eax
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp - 0x230]
push eax
push 0x57f25c
push 0x58a7f4
push str.three_end
call esi
push str.set_act.
call fcn.00472a20
add esp, 4
jmp 0x47834a
test esi, esi
jne 0x478344
push 0x208
lea eax, [ebp - 0x230]
push esi
push eax
call fcn.00506bc0
add esp, 0xc
call fcn.0046e930
push 0x104
lea edx, [ebp - 0x230]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
push 0x57e10c
lea eax, [ebp - 0x230]
push eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathAppendW]
call eax
lea eax, [ebp - 0x230]
push eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x58a7f4
push str.three_end
call esi
push str.clear_act.
call fcn.00472a20
add esp, 4
jmp 0x47834a
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, ebx
call fcn.00478cc0
test eax, eax
jne 0x478369
push 0x14
push str.write_path_reg_fail
lea ecx, [ebp - 0x83c]
xor edi, edi
call fcn.0042e600
mov ecx, dword [0x5d03a0]
test ecx, ecx
jne 0x4783cd
push 0x5c8198
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5d03a0], 0
jne 0x4783bc
push 0x34
call fcn.004a9ab9
add esp, 4
mov dword [ebp - 0x834], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x4783aa
mov ecx, eax
call fcn.0042e1e0
mov ecx, eax
jmp 0x4783ac
xor ecx, ecx
mov byte [ebp - 4], 0
xchg dword [ebp - 0x834], eax
mov dword [0x5d03a0], ecx
push 0x5c8198
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5d03a0]
call fcn.0042eb70
mov ecx, str.360safeadvtool
mov eax, dword [eax]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x478406
test dx, dx
je 0x478402
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x478406
add eax, 4
add ecx, 4
test dx, dx
jne 0x4783e0
xor eax, eax
jmp 0x47840b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x478556
mov dword [ebp - 0x82c], eax
lea eax, [ebp - 0x28]
push 0xf
push eax
call fcn.004383e0
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x47842f
mov eax, dword [eax]
push 4
lea ecx, [ebp - 0x82c]
push ecx
push 4
push str.navigation
push eax
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x478485
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x47847b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4787b9
push edx
push ecx
call fcn.004a952e
add esp, 8
lea eax, [ebp - 0x28]
mov dword [ebp - 0x82c], 3
push 0x10
push eax
call fcn.004383e0
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x4784a5
mov eax, dword [eax]
push 4
lea ecx, [ebp - 0x82c]
push ecx
push 4
push str.showtype
push eax
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x4784fb
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4784f1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4787be
push edx
push ecx
call fcn.004a952e
add esp, 8
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
lea eax, [ebp - 0x230]
push 0x57e10c
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x230]
push eax
push 0x57f25c
push str.MasterHeadline
push str.General
call esi
lea eax, [ebp - 0x230]
push eax
push 0x57f25c
push str.ShowMonitor
push str.General
call esi
cmp dword [ebx + 0x7c], 0
je 0x478565
cmp dword [ebx + 0x88], 0
je 0x47856c
mov ecx, ebx
call fcn.00479020
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x61
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xd
push eax
call fcn.0046a6b0
add esp, 4
mov byte [ebp - 4], 0
cmp dword [ebx + 0x7c], 0
jne 0x47863b
call fcn.0046e940
cmp dword [eax + 0x224], 0
jne 0x4785c7
call fcn.0046e940
mov ecx, eax
call fcn.0046fdb0
test eax, eax
jne 0x4785c7
mov ecx, ebx
call fcn.00475e90
push 0x800
lea eax, [ebp - 0x828]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
lea eax, [ebp - 0x828]
push 1
push 2
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x57cc28
lea eax, [ebp - 0x828]
push eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x828]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x478634
lea eax, [ebp - 0x828]
push eax
call fcn.00410110
lea eax, [ebp - 0x828]
push eax
push str.Delete_old_start_menu_directory_:__s
call fcn.00472a20
add esp, 0xc
mov ecx, ebx
call fcn.00475500
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.00506bc0
add esp, 0xc
lea eax, [ebp - 0x230]
push str.Utils_arctrl.dll
push dword [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x230]
push eax
call fcn.004a32a0
add esp, 4
test eax, eax
je 0x4786a0
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x4786a0
push str.SetArParm
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4786a0
push 0
push 1
call eax
mov dword [ebp - 0x20], vtable.mf_bind_t_1_class_CInstaller__class_CInstaller___void__int_.0
mov dword [ebp - 0x1c], 0x477110
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x63
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
call fcn.0046a6b0
mov byte [ebp - 4], 0
add esp, 4
push str.install_end.
call fcn.00472a20
add esp, 4
cmp dword [ebx + 0xac], 0
je 0x4786ed
push dword [ebx + 4]
call fcn.0040f650
add esp, 4
mov esi, dword [ebp - 0x83c]
mov dword [ebp - 0x24], vtable.mf_bind_t_2_class_CInstaller__class_CInstaller___void__int__wchar_t_const__.0
mov dword [ebp - 0x20], 0x4770e0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0xf
push eax
call fcn.0046a6b0
add esp, 4
mov dword [ebp - 0x24], vtable.mf_bind_t_2_class_CInstaller__class_CInstaller___void__int__wchar_t_const__.0
mov dword [ebp - 0x20], 0
add esi, 0xfffffff0
mov dword [ebp - 0x1c], 0
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x47874e
mov ecx, dword [esi]
push esi
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.004a9518
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.0040ad60
call fcn.00523fc4
push 0x80004005
call fcn.0040ad60
push 0x80070057
call fcn.0040ad60
push 0x80004005
call fcn.0040ad60
push 0x80070057
call fcn.0040ad60
push 0x80004005
call fcn.0040ad60
push 0x80070057
call fcn.0040ad60
call fcn.00523fc4
call fcn.00523fc4
int3