Function at 0x40af53
Capabilities:
Check mutex on windows

Disassembly:
push 0x4c
mov eax, 0x47b2a8
call fcn.004542d2
xor ecx, ecx
mov ebx, ecx
mov byte [ebp - 0x17], cl
mov esi, ecx
mov byte [ebp - 0x16], cl
mov byte [ebp - 0x12], cl
mov byte [ebp - 0x13], cl
mov byte [ebp - 0x19], cl
mov byte [ebp - 0xf], cl
mov byte [ebp - 0xe], cl
mov byte [ebp - 0x15], cl
mov byte [ebp - 0x14], cl
mov byte [ebp - 0x1a], cl
mov byte [ebp - 0xd], cl
mov byte [ebp - 0x11], cl
mov byte [ebp - 0x1b], cl
mov byte [ebp - 0x10], cl
mov byte [ebp - 0x18], cl
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ebx
call fcn.0040aa2d
and dword [ebp - 4], ebx
lea ecx, [ebp - 0x40]
and dword [ebp - 0x30], ebx
call fcn.0040aa2d
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.0040aa2d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.0040aa2d
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.0040aa2d
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x38]
call fcn.0040aa2d
push 5
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x34]
call fcn.0040aa2d
mov byte [ebp - 4], 6
push ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0x58], eax
test eax, eax
js 0x40bae7
xor eax, eax
push eax
push eax
push eax
push 3
push 6
push eax
push eax
push 0xffffffffffffffff
push eax
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov esi, eax
test esi, esi
jne 0x40bae7
push 0x8003
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call fcn.00409143
inc ebx
call fcn.0045d40b
cmp dword [eax], 1
jle 0x40b532
call fcn.0045d411
mov edi, ebx
push str._reg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b06c
mov byte [ebp - 0xe], 1
mov byte [ebp - 0x16], 1
jmp 0x40b460
call fcn.0045d411
push str._unreg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b093
mov byte [ebp - 0xe], 1
mov byte [ebp - 0x12], 1
jmp 0x40b460
call fcn.0045d411
push str._start
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b0b6
mov byte [ebp - 0x13], 1
jmp 0x40b460
call fcn.0045d411
push str._debug
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b0dc
mov dword [ebp - 0x3c], 1
jmp 0x40b460
call fcn.0045d411
push str._debugfile
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b11d
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
push 2
pop eax
mov dword [ebp - 0x3c], eax
call fcn.0045d411
lea ecx, [ebp - 0x48]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b45b
call fcn.0045d411
push str._debugdbgout
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b142
push 4
pop eax
mov dword [ebp - 0x3c], eax
jmp 0x40b460
call fcn.0045d411
push str._nokeypress
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b166
mov byte [0x4a7389], al
jmp 0x40b460
call fcn.0045d411
push str._checkreg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b189
mov byte [ebp - 0x19], 1
jmp 0x40b460
call fcn.0045d411
push str._updater
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b1b3
mov byte [ebp - 0xf], 1
mov dword [ebp - 0x30], str._updater
jmp 0x40b460
call fcn.0045d411
push str._installer
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b1dd
mov byte [ebp - 0xe], 1
mov dword [ebp - 0x30], str._installer
jmp 0x40b460
call fcn.0045d411
push str._emupdater
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b200
mov byte [ebp - 0x15], 1
jmp 0x40b460
call fcn.0045d411
push str._applypatch
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b24f
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
push 0xa
push 0
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0045e616
add esp, 0xc
mov dword [0x4a745c], eax
test eax, eax
jne 0x40b460
mov bl, 1
jmp 0x40b471
call fcn.0045d411
push str._applyupdate
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b28d
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x17], al
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
lea ecx, [ebp - 0x40]
jmp 0x40b45b
call fcn.0045d411
push str._applycab
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b2c6
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x17], 1
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b285
call fcn.0045d411
push str._applydll
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b305
mov byte [ebp - 0x10], 1
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
lea ecx, [ebp - 0x38]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b45b
call fcn.0045d411
push str._offlinexml
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b344
mov byte [ebp - 0x18], 1
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
lea ecx, [ebp - 0x34]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b45b
call fcn.0045d411
push str._autoversion
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b38b
call fcn.0045d40b
inc ebx
cmp ebx, dword [eax]
jge 0x40b248
call fcn.0045d411
push 0xa
push 0
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0045e616
add esp, 0xc
mov dword [ebp - 0x44], eax
jmp 0x40b460
call fcn.0045d411
mov ecx, str._applydiff
push ecx
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b3f0
mov byte [ebp - 0xd], 1
mov byte [ebp - 0x11], al
call fcn.0045d40b
lea ecx, [ebx + 3]
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [eax]
jge 0x40b248
call fcn.0045d411
lea ecx, [ebp - 0x2c]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0040a5c2
call fcn.0045d411
lea ecx, [ebp - 0x28]
mov eax, dword [eax]
push dword [eax + ebx*4 + 8]
call fcn.0040a5c2
call fcn.0045d411
mov ebx, dword [ebp - 0x4c]
jmp 0x40b453
call fcn.0045d411
push str._creatediff
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045d493
pop ecx
pop ecx
test eax, eax
jne 0x40b460
mov byte [ebp - 0xd], 1
mov byte [ebp - 0x11], 1
call fcn.0045d40b
lea ecx, [ebx + 3]
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [eax]
jge 0x40b248
call fcn.0045d411
lea ecx, [ebp - 0x2c]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0040a5c2
call fcn.0045d411
lea ecx, [ebp - 0x28]
mov eax, dword [eax]
push dword [eax + ebx*4 + 8]
call fcn.0040a5c2
call fcn.0045d411
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax]
lea ecx, [ebp - 0x24]
push dword [eax + ebx*4]
call fcn.0040a5c2
inc ebx
call fcn.0045d40b
cmp ebx, dword [eax]
jl 0x40b043
mov bl, byte [ebp - 0x1b]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x40b482
push ecx
push dword [ebp - 0x48]
push eax
call fcn.0041e875
test bl, bl
je 0x40b4bc
cmp byte [ebp - 0xd], 0
je 0x40b4b4
call fcn.0045d411
cmp byte [ebp - 0x11], 0
mov edx, str._applydiff
mov ecx, str._creatediff
cmove ecx, edx
mov eax, dword [eax]
push ecx
push dword [eax]
push str.usage:__s__s_old_file_new_file_diff_file
call fcn.0041defb
add esp, 0xc
push 0x57
pop esi
jmp 0x40bae4
mov bl, byte [ebp - 0xe]
mov bh, byte [ebp - 0xf]
test bl, bl
je 0x40b4d9
test bh, bh
jne 0x40b4b4
push 5
mov dword [0x4a748c], 2
pop edi
jmp 0x40b4eb
mov eax, dword [0x4a748c]
test bh, bh
push 5
pop edi
cmovne eax, edi
mov dword [0x4a748c], eax
cmp byte [ebp - 0x15], 0
jne 0x40b4f7
cmp byte [ebp - 0xd], 0
je 0x40b53a
cmp byte [ebp - 0x19], 0
je 0x40b512
mov ecx, dword [0x4a73bc]
call fcn.0042622f
mov esi, eax
test esi, esi
je 0x40bae4
cmp byte [ebp - 0x15], 0
mov bl, byte [ebp - 0xd]
jne 0x40b58b
test bl, bl
jne 0x40b58b
call fcn.0041e802
test al, al
je 0x40b58b
mov esi, 0xb7
jmp 0x40bae4
mov bl, byte [ebp - 0xe]
push 5
mov bh, bl
pop edi
push str.GlobalCCleanerSetupMutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x4a7370], eax
test eax, eax
je 0x40b568
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40b568
mov byte [0x4a7365], 0
jmp 0x40b4f7
mov byte [0x4a7365], 1
test bl, bl
jne 0x40b4f7
test bh, bh
jne 0x40b4f7
push ecx
mov edx, edi
mov ecx, dword [0x4a73bc]
call fcn.00425b9a
pop ecx
jmp 0x40bae4
cmp byte [ebp - 0x12], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bh, byte [ebp - 0x16]
jne 0x40b5be
test bh, bh
jne 0x40b5be
cmp byte [ebp - 0x14], bh
jne 0x40b5be
cmp byte [ebp - 0x10], bh
jne 0x40b5be
cmp byte [ebp - 0x18], bh
jne 0x40b5be
cmp byte [ebp - 0x13], bh
jne 0x40b63d
test bl, bl
jne 0x40b69a
lea edx, [ebp - 0x1a]
xor ecx, ecx
call fcn.0041fbec
mov esi, eax
test esi, esi
jne 0x40bae4
cmp byte [ebp - 0x1a], al
jne 0x40b5e6
push 0x52
pop esi
push str.An_Administrator_or_LocalSystem_account_required_
call fcn.0041defb
jmp 0x40b585
cmp byte [ebp - 0x12], 0
je 0x40b612
mov ecx, dword [0x4a73bc]
call fcn.00425d36
mov esi, eax
call fcn.0042873a
push esi
push dword [0x4a73bc]
push str.Job___s__unregistered_with_status:_li
call fcn.0041defb
add esp, 0xc
test bh, bh
je 0x40b637
mov ecx, dword [0x4a73bc]
call fcn.00425168
mov esi, eax
push esi
push dword [0x4a73bc]
push str.Job___s__registered_with_status:_li
call fcn.0041defb
add esp, 0xc
cmp byte [ebp - 0x13], 0
je 0x40b692
mov eax, dword [0x4a736c]
test eax, eax
je 0x40b650
push eax
call edi
and dword [0x4a736c], 0
mov ecx, 0x4a7358
call fcn.0041e83a
mov esi, dword [0x4a73bc]
push ecx
push 6
pop ecx
call fcn.00428608
pop ecx
mov ecx, esi
test al, al
je 0x40b677
call fcn.00423f51
jmp 0x40b67c
call fcn.00423e25
mov esi, eax
push esi
push dword [0x4a73bc]
push str.Job___s__started_manually_with_status:_li
call fcn.0041defb
add esp, 0xc
test bl, bl
je 0x40b79d
mov bh, byte [ebp - 0x11]
mov ecx, str.apply
test bh, bh
mov eax, str.create
push str.diff
cmove eax, ecx
push eax
push str.Going_to__s__s_file
call fcn.0041defb
push dword [ebp - 0x2c]
push str.Old_file:__s
call fcn.0041defb
push dword [ebp - 0x28]
push str.New_file:__s
call fcn.0041defb
push dword [ebp - 0x24]
push str.Diff_file:__s
call fcn.0041defb
mov ecx, dword [ebp - 0x2c]
add esp, 0x24
call fcn.0041facf
test bh, bh
je 0x40b742
test al, al
jne 0x40b709
push dword [ebp - 0x2c]
push str.Old_file:__s_missing
call fcn.0041defb
pop ecx
jmp 0x40b585
mov ecx, dword [ebp - 0x28]
call fcn.0041facf
test al, al
jne 0x40b71f
push dword [ebp - 0x28]
push str.New_file:__s_missing
jmp 0x40b6fe
mov ecx, dword [ebp - 0x24]
call fcn.0041facf
push dword [ebp - 0x24]
test al, al
je 0x40b735
push str.File__s_already_exists
jmp 0x40b6fe
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
call fcn.0040f844
jmp 0x40b77e
test al, al
je 0x40b6f6
mov ecx, dword [ebp - 0x24]
call fcn.0041facf
test al, al
jne 0x40b75c
push dword [ebp - 0x24]
push str.Diff_file:__s_missing
jmp 0x40b6fe
mov ecx, dword [ebp - 0x28]
call fcn.0041facf
test al, al
je 0x40b76d
push dword [ebp - 0x28]
jmp 0x40b72e
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
push 0
push dword [ebp - 0x24]
call fcn.004101b2
pop ecx
pop ecx
mov ecx, eax
mov edx, str.success
test ecx, ecx
mov eax, str.failure
cmove eax, edx
push eax
push str.Done_with__s
call fcn.0041defb
pop ecx
pop ecx
cmp byte [ebp - 0x12], 0
jne 0x40bae4
cmp byte [ebp - 0x13], 0
jne 0x40bae4
test bl, bl
jne 0x40bae4
call fcn.0041ba23
mov esi, eax
test esi, esi
jne 0x40bae4
mov al, byte [ebp - 0x10]
test al, al
je 0x40b887
mov eax, dword [ebp - 0x38]
cmp dword [eax - 0xc], esi
je 0x40b4b4
push eax
lea ecx, [ebp - 0x50]
call fcn.0040bf35
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x40b80f
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40bae4
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
jmp 0x40bae4
mov ecx, dword [ebp - 0x38]
push 0
call fcn.00421b1e
mov esi, eax
pop ecx
test esi, esi
jne 0x40b7f3
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
mov dword [ebp - 0x20], ebx
test ebx, ebx
jne 0x40b856
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40bae7
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
jmp 0x40bae7
push str.ApplyEmUpdate
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40b832
mov ecx, eax
call fcn.00429058
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40b882
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
mov al, byte [ebp - 0x10]
jmp 0x40b88a
mov ebx, dword [ebp - 0x20]
cmp byte [ebp - 0x14], 0
je 0x40b8d8
cmp byte [0x4a7498], 0
jne 0x40b8a1
push 0x52
pop esi
jmp 0x40bae7
mov eax, dword [ebp - 0x40]
cmp dword [eax - 0xc], 0
jne 0x40b8ae
push 0x57
jmp 0x40b89b
cmp byte [ebp - 0x17], 0
je 0x40b8c4
mov edi, dword [ebp - 0x30]
mov ecx, eax
mov edx, dword [ebp - 0x44]
push edi
call fcn.004339d1
jmp 0x40b8d0
mov ecx, dword [ebp - 0x44]
mov edx, eax
push 0
call fcn.0042a13b
pop ecx
mov esi, eax
jmp 0x40bae7
test al, al
jne 0x40bae7
call fcn.0042699b
mov bl, byte [ebp - 0xe]
mov bh, byte [ebp - 0xf]
test bl, bl
jne 0x40b8fb
test bh, bh
jne 0x40b8fb
mov ecx, dword [0x4a7420]
jmp 0x40b909
xor ecx, ecx
and dword [0x4a7424], ecx
mov dword [0x4a7420], ecx
cmp byte [ebp - 0x18], 0
je 0x40b9b3
mov ecx, dword [ebp - 0x34]
call fcn.0041facf
test al, al
jne 0x40b938
push 3
pop esi
push esi
push dword [ebp - 0x34]
push str.Cannot_open_offline_XML_descriptor__s:__li
call fcn.0041defb
add esp, 0xc
jmp 0x40bae4
push 0x2f
push 0x5c
lea ecx, [ebp - 0x34]
call fcn.00409396
mov edi, 0x4a73f4
push str.file:__
mov ecx, edi
call fcn.0040a5c2
mov eax, dword [ebp - 0x34]
mov ecx, edi
push dword [eax - 0xc]
push eax
call fcn.0040bd07
push 0x2f
push dword [0x4a73f4]
call fcn.00454aca
pop ecx
pop ecx
test eax, eax
je 0x40ba03
sub eax, dword [0x4a73f4]
sar eax, 1
cmp eax, 0xffffffff
je 0x40ba03
push eax
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
call fcn.0040bbee
mov byte [ebp - 4], 8
mov ecx, 0x4a7418
push eax
call fcn.0040943e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
jmp 0x40ba03
call fcn.00434c95
mov esi, eax
test esi, esi
je 0x40b9d2
push esi
push str.Error_checking_internet_connection_status:_li
call fcn.0041defb
pop ecx
push 0x3c
pop edx
jmp 0x40b57a
call fcn.00421631
mov ecx, dword [0x4a73f0]
call fcn.0041d546
mov esi, eax
test esi, esi
je 0x40ba14
push esi
push str.Cannot_download_patch_descriptor_status:_li
call fcn.0041defb
pop ecx
mov ecx, dword [0x4a73bc]
push 0x1e
pop edx
call fcn.00425b9a
pop ecx
cmp esi, 0x4d5
je 0x40bac9
mov edi, dword [ebp - 0x30]
jmp 0x40ba55
cmp dword [0x4a7458], 0
jne 0x40ba2c
push str.No_patches_available
call fcn.0041defb
mov edi, dword [ebp - 0x30]
jmp 0x40ba54
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.00428b14
mov esi, eax
test esi, esi
je 0x40ba55
cmp esi, 0x4d5
je 0x40bac9
push esi
push str.Error_applying_patches_status:_li
call fcn.0041defb
pop ecx
pop ecx
cmp byte [0x4a7498], 0
jne 0x40ba65
push 0x52
jmp 0x40b4b6
mov ecx, dword [0x4a73f4]
call fcn.0041d963
mov esi, eax
test esi, esi
je 0x40ba92
push esi
push str.Cannot_download_update_descriptor_status:_li
call fcn.0041defb
pop ecx
mov ecx, dword [0x4a73bc]
push 0x1e
pop edx
call fcn.00425b9a
jmp 0x40bac8
cmp dword [0x4a7548], 0
jne 0x40baa7
push str.No_update_available
call fcn.0041defb
jmp 0x40bac8
mov ecx, edi
call fcn.004332ef
mov esi, eax
test esi, esi
je 0x40bac9
cmp esi, 0x4d5
je 0x40bac9
push esi
push str.Error_applying_patches_status:_li
call fcn.0041defb
pop ecx
pop ecx
cmp byte [0x4a7498], 0
je 0x40bae4
test bl, bl
jne 0x40bae4
test bh, bh
jne 0x40bae4
cmp byte [ebp - 0x15], bh
jne 0x40bae4
call fcn.0040aec1
mov ebx, dword [ebp - 0x20]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0x1f
push eax
push str.FreeSchedulerInterface
lea ecx, [ebp - 0x54]
call fcn.0041e3a4
mov byte [ebp - 4], 0xa
mov ecx, dword [0x4a62c4]
test ecx, ecx
je 0x40bb1a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [0x4a62c4], 0
and dword [ebp - 0x44], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x54]
call fcn.0041e418
test ebx, ebx
je 0x40bb35
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push esi
push str._tWinMain_final_result:__u
call fcn.0041defb
cmp dword [0x4a735c], 1
pop ecx
pop ecx
jne 0x40bb6d
cmp byte [0x4a7388], 0
jne 0x40bb6d
cmp byte [0x4a7389], 0
je 0x40bb6d
push str._nPress_any_key_to_exit_console..._n
call fcn.0040bec1
pop ecx
call fcn.0045e9a7
cmp dword [ebp - 0x58], 0
jl 0x40bb79
call dword [sym.imp.ole32.dll_CoUninitialize]
push 5
pop eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov eax, esi
call fcn.004542a0
ret 8