Function at 0x40b07b
Capabilities:
Check mutex on windows

Disassembly:
push 0x4c
mov eax, 0x47cb2a
call fcn.00456992
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.0040aaed
and dword [ebp - 4], ebx
lea ecx, [ebp - 0x40]
and dword [ebp - 0x30], ebx
call fcn.0040aaed
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.0040aaed
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.0040aaed
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.0040aaed
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x38]
call fcn.0040aaed
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x34]
call fcn.0040aaed
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 0x40bc03
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 0x40bc03
push 0x8003
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call 0x409223
inc ebx
call fcn.0045f94b
cmp dword [eax], 1
jle 0x40b651
call fcn.0045f951
mov edi, ebx
push str._reg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b192
mov byte [ebp - 0xe], 1
mov byte [ebp - 0x16], 1
jmp 0x40b586
call fcn.0045f951
push str._unreg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b1b9
mov byte [ebp - 0xe], 1
mov byte [ebp - 0x12], 1
jmp 0x40b586
call fcn.0045f951
push str._start
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b1dc
mov byte [ebp - 0x13], 1
jmp 0x40b586
call fcn.0045f951
push str._debug
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b202
mov dword [ebp - 0x3c], 1
jmp 0x40b586
call fcn.0045f951
push str._debugfile
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b243
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
push 2
pop eax
mov dword [ebp - 0x3c], eax
call fcn.0045f951
lea ecx, [ebp - 0x48]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b581
call fcn.0045f951
push str._debugdbgout
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b268
push 4
pop eax
mov dword [ebp - 0x3c], eax
jmp 0x40b586
call fcn.0045f951
push str._nokeypress
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b28c
mov byte [0x4c2451], al
jmp 0x40b586
call fcn.0045f951
push str._checkreg
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b2af
mov byte [ebp - 0x19], 1
jmp 0x40b586
call fcn.0045f951
push str._updater
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b2d9
mov byte [ebp - 0xf], 1
mov dword [ebp - 0x30], str._updater
jmp 0x40b586
call fcn.0045f951
push str._installer
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b303
mov byte [ebp - 0xe], 1
mov dword [ebp - 0x30], str._installer
jmp 0x40b586
call fcn.0045f951
push str._emupdater
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b326
mov byte [ebp - 0x15], 1
jmp 0x40b586
call fcn.0045f951
push str._applypatch
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b375
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
push 0xa
push 0
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.00460b56
add esp, 0xc
mov dword [0x4c2534], eax
test eax, eax
jne 0x40b586
mov bl, 1
jmp 0x40b597
call fcn.0045f951
push str._applyupdate
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b3b3
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x17], al
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
lea ecx, [ebp - 0x40]
jmp 0x40b581
call fcn.0045f951
push str._applycab
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b3ec
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x17], 1
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b3ab
call fcn.0045f951
push str._applydll
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b42b
mov byte [ebp - 0x10], 1
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
lea ecx, [ebp - 0x38]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b581
call fcn.0045f951
push str._offlinexml
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b46a
mov byte [ebp - 0x18], 1
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
lea ecx, [ebp - 0x34]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
jmp 0x40b581
call fcn.0045f951
push str._autoversion
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b4b1
call fcn.0045f94b
inc ebx
cmp ebx, dword [eax]
jge 0x40b36e
call fcn.0045f951
push 0xa
push 0
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.00460b56
add esp, 0xc
mov dword [ebp - 0x44], eax
jmp 0x40b586
call fcn.0045f951
mov ecx, str._applydiff
push ecx
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b516
mov byte [ebp - 0xd], 1
mov byte [ebp - 0x11], al
call fcn.0045f94b
lea ecx, [ebx + 3]
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [eax]
jge 0x40b36e
call fcn.0045f951
lea ecx, [ebp - 0x2c]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0040a676
call fcn.0045f951
lea ecx, [ebp - 0x28]
mov eax, dword [eax]
push dword [eax + ebx*4 + 8]
call fcn.0040a676
call fcn.0045f951
mov ebx, dword [ebp - 0x4c]
jmp 0x40b579
call fcn.0045f951
push str._creatediff
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.0045f9d3
pop ecx
pop ecx
test eax, eax
jne 0x40b586
mov byte [ebp - 0xd], 1
mov byte [ebp - 0x11], 1
call fcn.0045f94b
lea ecx, [ebx + 3]
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [eax]
jge 0x40b36e
call fcn.0045f951
lea ecx, [ebp - 0x2c]
mov eax, dword [eax]
push dword [eax + edi*4 + 4]
call fcn.0040a676
call fcn.0045f951
lea ecx, [ebp - 0x28]
mov eax, dword [eax]
push dword [eax + ebx*4 + 8]
call fcn.0040a676
call fcn.0045f951
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax]
lea ecx, [ebp - 0x24]
push dword [eax + ebx*4]
call fcn.0040a676
inc ebx
call fcn.0045f94b
cmp ebx, dword [eax]
jl 0x40b169
mov bl, byte [ebp - 0x1b]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x40b5a8
push ecx
push dword [ebp - 0x48]
push eax
call fcn.0041eba1
test bl, bl
je 0x40b5e2
cmp byte [ebp - 0xd], 0
je 0x40b5da
call fcn.0045f951
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.0041e1d8
add esp, 0xc
push 0x57
pop esi
jmp 0x40bc00
mov bl, byte [ebp - 0xe]
mov bh, byte [ebp - 0xf]
test bl, bl
je 0x40b5fc
test bh, bh
jne 0x40b5da
mov dword [0x4c2564], 2
jmp 0x40b60a
test bh, bh
je 0x40b60a
mov dword [0x4c2564], 5
cmp byte [ebp - 0x15], 0
jne 0x40b616
cmp byte [ebp - 0xd], 0
je 0x40b656
cmp byte [ebp - 0x19], 0
je 0x40b631
mov ecx, dword [0x4c2488]
call fcn.004268d7
mov esi, eax
test esi, esi
je 0x40bc00
cmp byte [ebp - 0x15], 0
mov bl, byte [ebp - 0xd]
jne 0x40b6a8
test bl, bl
jne 0x40b6a8
call fcn.0041eb2e
test al, al
je 0x40b6a8
mov esi, 0xb7
jmp 0x40bc00
mov bl, byte [ebp - 0xe]
mov bh, bl
push str.GlobalCCleanerSetupMutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x4c2438], eax
test eax, eax
je 0x40b684
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40b684
mov byte [0x4c242d], 0
jmp 0x40b616
mov byte [0x4c242d], 1
test bl, bl
jne 0x40b616
test bh, bh
jne 0x40b616
push ecx
push 5
mov ecx, dword [0x4c2488]
pop edx
call fcn.00426207
pop ecx
jmp 0x40bc00
cmp byte [ebp - 0x12], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bh, byte [ebp - 0x16]
jne 0x40b6db
test bh, bh
jne 0x40b6db
cmp byte [ebp - 0x14], bh
jne 0x40b6db
cmp byte [ebp - 0x10], bh
jne 0x40b6db
cmp byte [ebp - 0x18], bh
jne 0x40b6db
cmp byte [ebp - 0x13], bh
jne 0x40b75a
test bl, bl
jne 0x40b7b7
lea edx, [ebp - 0x1a]
xor ecx, ecx
call fcn.0041ffc9
mov esi, eax
test esi, esi
jne 0x40bc00
cmp byte [ebp - 0x1a], al
jne 0x40b703
push 0x52
pop esi
push str.An_Administrator_or_LocalSystem_account_required_
call fcn.0041e1d8
jmp 0x40b6a2
cmp byte [ebp - 0x12], 0
je 0x40b72f
mov ecx, dword [0x4c2488]
call fcn.0042640b
mov esi, eax
call fcn.00428d82
push esi
push dword [0x4c2488]
push str.Job___s__unregistered_with_status:_li
call fcn.0041e1d8
add esp, 0xc
test bh, bh
je 0x40b754
mov ecx, dword [0x4c2488]
call fcn.0042580a
mov esi, eax
push esi
push dword [0x4c2488]
push str.Job___s__registered_with_status:_li
call fcn.0041e1d8
add esp, 0xc
cmp byte [ebp - 0x13], 0
je 0x40b7af
mov eax, dword [0x4c2434]
test eax, eax
je 0x40b76d
push eax
call edi
and dword [0x4c2434], 0
mov ecx, 0x4c2420
call fcn.0041eb66
mov esi, dword [0x4c2488]
push ecx
push 6
pop ecx
call fcn.00428c50
pop ecx
mov ecx, esi
test al, al
je 0x40b794
call fcn.0042466c
jmp 0x40b799
call fcn.00424548
mov esi, eax
push esi
push dword [0x4c2488]
push str.Job___s__started_manually_with_status:_li
call fcn.0041e1d8
add esp, 0xc
test bl, bl
je 0x40b8ba
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.0041e1d8
push dword [ebp - 0x2c]
push str.Old_file:__s
call fcn.0041e1d8
push dword [ebp - 0x28]
push str.New_file:__s
call fcn.0041e1d8
push dword [ebp - 0x24]
push str.Diff_file:__s
call fcn.0041e1d8
mov ecx, dword [ebp - 0x2c]
add esp, 0x24
call fcn.0041feac
test bh, bh
je 0x40b85f
test al, al
jne 0x40b826
push dword [ebp - 0x2c]
push str.Old_file:__s_missing
call fcn.0041e1d8
pop ecx
jmp 0x40b6a2
mov ecx, dword [ebp - 0x28]
call fcn.0041feac
test al, al
jne 0x40b83c
push dword [ebp - 0x28]
push str.New_file:__s_missing
jmp 0x40b81b
mov ecx, dword [ebp - 0x24]
call fcn.0041feac
push dword [ebp - 0x24]
test al, al
je 0x40b852
push str.File__s_already_exists
jmp 0x40b81b
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
call fcn.0040f91b
jmp 0x40b89b
test al, al
je 0x40b813
mov ecx, dword [ebp - 0x24]
call fcn.0041feac
test al, al
jne 0x40b879
push dword [ebp - 0x24]
push str.Diff_file:__s_missing
jmp 0x40b81b
mov ecx, dword [ebp - 0x28]
call fcn.0041feac
test al, al
je 0x40b88a
push dword [ebp - 0x28]
jmp 0x40b84b
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
push 0
push dword [ebp - 0x24]
call fcn.00410283
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.0041e1d8
pop ecx
pop ecx
cmp byte [ebp - 0x12], 0
jne 0x40bc00
cmp byte [ebp - 0x13], 0
jne 0x40bc00
test bl, bl
jne 0x40bc00
call fcn.0041bc3b
mov esi, eax
test esi, esi
jne 0x40bc00
mov al, byte [ebp - 0x10]
test al, al
je 0x40b9a4
mov eax, dword [ebp - 0x38]
cmp dword [eax - 0xc], esi
je 0x40b5da
push eax
lea ecx, [ebp - 0x50]
call fcn.0040c04f
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x40b92c
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40bc00
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
jmp 0x40bc00
mov ecx, dword [ebp - 0x38]
push 0
call fcn.00421f7f
mov esi, eax
pop ecx
test esi, esi
jne 0x40b910
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
mov dword [ebp - 0x20], ebx
test ebx, ebx
jne 0x40b973
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40bc03
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
jmp 0x40bc03
push str.ApplyEmUpdate
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40b94f
mov ecx, eax
call fcn.004296a0
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x50], 0xffffffff
je 0x40b99f
push dword [ebp - 0x50]
call edi
or dword [ebp - 0x50], 0xffffffff
mov al, byte [ebp - 0x10]
jmp 0x40b9a7
mov ebx, dword [ebp - 0x20]
cmp byte [ebp - 0x14], 0
je 0x40b9f5
cmp byte [0x4c2570], 0
jne 0x40b9be
push 0x52
pop esi
jmp 0x40bc03
mov eax, dword [ebp - 0x40]
cmp dword [eax - 0xc], 0
jne 0x40b9cb
push 0x57
jmp 0x40b9b8
cmp byte [ebp - 0x17], 0
je 0x40b9e1
mov edi, dword [ebp - 0x30]
mov ecx, eax
mov edx, dword [ebp - 0x44]
push edi
call fcn.00434333
jmp 0x40b9ed
mov ecx, dword [ebp - 0x44]
mov edx, eax
push 0
call fcn.0042a783
pop ecx
mov esi, eax
jmp 0x40bc03
test al, al
jne 0x40bc03
call fcn.0042701d
mov bl, byte [ebp - 0xe]
mov bh, byte [ebp - 0xf]
test bl, bl
jne 0x40ba18
test bh, bh
jne 0x40ba18
mov ecx, dword [0x4c24f8]
jmp 0x40ba26
xor ecx, ecx
and dword [0x4c24fc], ecx
mov dword [0x4c24f8], ecx
cmp byte [ebp - 0x18], 0
je 0x40bad0
mov ecx, dword [ebp - 0x34]
call fcn.0041feac
test al, al
jne 0x40ba55
push 3
pop esi
push esi
push dword [ebp - 0x34]
push str.Cannot_open_offline_XML_descriptor__s:__li
call fcn.0041e1d8
add esp, 0xc
jmp 0x40bc00
push 0x2f
push 0x5c
lea ecx, [ebp - 0x34]
call fcn.00409476
mov edi, 0x4c24cc
push str.file:__
mov ecx, edi
call fcn.0040a676
mov eax, dword [ebp - 0x34]
mov ecx, edi
push dword [eax - 0xc]
push eax
call fcn.0040be21
push 0x2f
push dword [0x4c24cc]
call fcn.00456ff3
pop ecx
pop ecx
test eax, eax
je 0x40bb1f
sub eax, dword [0x4c24cc]
sar eax, 1
cmp eax, 0xffffffff
je 0x40bb1f
push eax
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
call fcn.0040bd08
mov byte [ebp - 4], 8
mov ecx, 0x4c24f0
push eax
call fcn.0040951e
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
jmp 0x40bb1f
call fcn.004355f1
mov esi, eax
test esi, esi
je 0x40baee
push esi
push str.Error_checking_internet_connection_status:_li
call fcn.0041e1d8
pop ecx
push 0x3c
jmp 0x40b696
call fcn.00421a92
mov ecx, dword [0x4c24c8]
call fcn.0041d81c
mov esi, eax
test esi, esi
je 0x40bb30
push esi
push str.Cannot_download_patch_descriptor_status:_li
call fcn.0041e1d8
pop ecx
mov ecx, dword [0x4c2488]
push 0x1e
pop edx
call fcn.00426207
pop ecx
cmp esi, 0x4d5
je 0x40bbe5
mov edi, dword [ebp - 0x30]
jmp 0x40bb71
cmp dword [0x4c2530], 0
jne 0x40bb48
push str.No_patches_available
call fcn.0041e1d8
mov edi, dword [ebp - 0x30]
jmp 0x40bb70
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.0042915c
mov esi, eax
test esi, esi
je 0x40bb71
cmp esi, 0x4d5
je 0x40bbe5
push esi
push str.Error_applying_patches_status:_li
call fcn.0041e1d8
pop ecx
pop ecx
cmp byte [0x4c2570], 0
jne 0x40bb81
push 0x52
jmp 0x40b5dc
mov ecx, dword [0x4c24cc]
call fcn.0041dc39
mov esi, eax
test esi, esi
je 0x40bbae
push esi
push str.Cannot_download_update_descriptor_status:_li
call fcn.0041e1d8
pop ecx
mov ecx, dword [0x4c2488]
push 0x1e
pop edx
call fcn.00426207
jmp 0x40bbe4
cmp dword [0x4c2620], 0
jne 0x40bbc3
push str.No_update_available
call fcn.0041e1d8
jmp 0x40bbe4
mov ecx, edi
call fcn.00433c69
mov esi, eax
test esi, esi
je 0x40bbe5
cmp esi, 0x4d5
je 0x40bbe5
push esi
push str.Error_applying_patches_status:_li
call fcn.0041e1d8
pop ecx
pop ecx
cmp byte [0x4c2570], 0
je 0x40bc00
test bl, bl
jne 0x40bc00
test bh, bh
jne 0x40bc00
cmp byte [ebp - 0x15], bh
jne 0x40bc00
call fcn.0040afe9
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.0041e6cc
mov byte [ebp - 4], 0xa
mov ecx, dword [0x4c1394]
test ecx, ecx
je 0x40bc36
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [0x4c1394], 0
and dword [ebp - 0x44], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x54]
call fcn.0041e740
test ebx, ebx
je 0x40bc51
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push esi
push str._tWinMain_final_result:__u
call fcn.0041e1d8
cmp dword [0x4c2424], 1
pop ecx
pop ecx
jne 0x40bc89
cmp byte [0x4c2450], 0
jne 0x40bc89
cmp byte [0x4c2451], 0
je 0x40bc89
push str._nPress_any_key_to_exit_console..._n
call fcn.0040bfdb
pop ecx
call fcn.00460ee7
cmp dword [ebp - 0x58], 0
jl 0x40bc95
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
mov eax, esi
call fcn.00456960
ret 8