Function at 0x40ceb0
Capabilities:
Accept command line arguments
Check if file exists
Check mutex on windows
Create process on windows
Delete file
Get common file path
Get file version info
Get program files directory
Move file
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4470d3
mov eax, dword fs:[0]
push eax
mov eax, 0x2ce8
call fcn.004144f0
mov eax, dword [0x463068]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push 0
call fcn.00402ef0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x2a80]
call fcn.0040e1c0
mov dword [ebp - 4], 0
push 0
push str._noregister
lea ecx, [ebp - 0x2a80]
call fcn.0040e090
cmp eax, 0xffffffff
je 0x40cf26
mov dword [0x46603c], 1
push 0
push str._path
lea ecx, [ebp - 0x2a80]
call fcn.0040e090
cmp eax, 0xffffffff
je 0x40cf47
mov dword [0x466038], 1
cmp dword [0x466038], 0
je 0x40cfbf
push 0xffffffffffffffff
push 0x22
lea ecx, [ebp - 0x2a80]
call fcn.0040dfb0
mov esi, eax
push 0
push 0x22
lea ecx, [ebp - 0x2a80]
call fcn.0040e020
sub esi, eax
sub esi, 1
push esi
push 0
push 0x22
lea ecx, [ebp - 0x2a80]
call fcn.0040e020
add eax, 1
push eax
lea eax, [ebp - 0x2cf4]
push eax
lea ecx, [ebp - 0x2a80]
call fcn.0040df60
mov dword [ebp - 0x2c58], eax
mov ecx, dword [ebp - 0x2c58]
push ecx
mov ecx, 0x46611c
call fcn.0040e130
lea ecx, [ebp - 0x2cf4]
call fcn.0040be30
jmp 0x40cffb
push 0x208
push 0
lea edx, [ebp - 0x1258]
push edx
call fcn.0042b330
add esp, 0xc
lea eax, [ebp - 0x1258]
push eax
push 1
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea ecx, [ebp - 0x1258]
push ecx
mov ecx, 0x46611c
call fcn.0040e110
push 0x208
push 0
lea edx, [ebp - 0x1050]
push edx
call fcn.0042b330
add esp, 0xc
lea eax, [ebp - 0x1050]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.GlobalOutsideCoreSetup
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x2c54], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40d081
mov ecx, dword [ebp - 0x2c54]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x2c50], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a80]
call fcn.0040be30
mov eax, dword [ebp - 0x2c50]
jmp 0x40de9d
push 0x208
push 0
lea edx, [ebp - 0xa38]
push edx
call fcn.0042b330
add esp, 0xc
lea eax, [ebp - 0x1050]
push eax
lea ecx, [ebp - 0xa38]
push ecx
call fcn.0040f2b0
add esp, 8
push str.SetupInfo.xml
lea edx, [ebp - 0xa38]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x45c7fc
push 0x104
lea eax, [ebp - 0xa38]
push eax
call fcn.00411490
add esp, 0xc
test eax, eax
jne 0x40d103
mov dword [ebp - 0x2c78], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a80]
call fcn.0040be30
mov eax, dword [ebp - 0x2c78]
jmp 0x40de9d
call fcn.00411460
mov dword [ebp - 0x2bec], eax
push 0xc8
lea ecx, [ebp - 0x2bc0]
call fcn.00402c00
lea ecx, [ebp - 0x2bc0]
call fcn.00409b50
mov byte [ebp - 4], 1
push 0
push 0x74
lea ecx, [ebp - 0xa38]
push ecx
lea edx, [ebp - 0x2cdc]
push edx
lea ecx, [ebp - 0x2bc0]
call fcn.00409d20
push 4
lea ecx, [ebp - 0x2a64]
call fcn.00402c00
push str.SETUP
lea eax, [ebp - 0x2a64]
push eax
lea ecx, [ebp - 0x2bc0]
call fcn.00409940
push 4
lea ecx, [ebp - 0x2a60]
call fcn.00402c00
push 0x45c828
lea ecx, [ebp - 0x2a60]
push ecx
push str.GlobalDefinition
lea edx, [ebp - 0x2c80]
push edx
lea ecx, [ebp - 0x2a64]
call fcn.00409940
mov ecx, eax
call fcn.00409940
lea ecx, [ebp - 0x2a60]
call fcn.00409910
test eax, eax
je 0x40d4aa
push str.Definition
lea eax, [ebp - 0x2c84]
push eax
lea ecx, [ebp - 0x2a60]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
mov dword [ebp - 0x2bcc], eax
cmp dword [ebp - 0x2bcc], 0
jne 0x40d1f4
mov dword [ebp - 0x2bf8], 0
jmp 0x40d2ac
mov ecx, dword [ebp - 0x2bcc]
mov dword [ebp - 0x2be8], ecx
mov edx, dword [ebp - 0x2be8]
add edx, 1
mov dword [ebp - 0x2c68], edx
mov eax, dword [ebp - 0x2be8]
mov cl, byte [eax]
mov byte [ebp - 0x2bd1], cl
add dword [ebp - 0x2be8], 1
cmp byte [ebp - 0x2bd1], 0
jne 0x40d20f
mov edx, dword [ebp - 0x2be8]
sub edx, dword [ebp - 0x2c68]
mov dword [ebp - 0x2c74], edx
mov eax, dword [ebp - 0x2c74]
add eax, 1
mov dword [ebp - 0x2bc8], eax
cmp dword [ebp - 0x2bc8], 0x3fffffff
jle 0x40d266
mov dword [ebp - 0x2bf4], 0
jmp 0x40d2a0
mov eax, dword [ebp - 0x2bc8]
shl eax, 1
call fcn.00413e80
mov dword [ebp - 0x2c70], esp
mov ecx, dword [ebp - 0x2bec]
push ecx
mov edx, dword [ebp - 0x2bc8]
push edx
mov eax, dword [ebp - 0x2bcc]
push eax
mov ecx, dword [ebp - 0x2c70]
push ecx
call fcn.00411410
mov dword [ebp - 0x2bf4], eax
mov edx, dword [ebp - 0x2bf4]
mov dword [ebp - 0x2bf8], edx
mov eax, dword [ebp - 0x2bf8]
push eax
lea ecx, [ebp - 0x2ae0]
call fcn.0040e1c0
mov byte [ebp - 4], 2
push 0x208
push 0
lea ecx, [ebp - 0x830]
push ecx
call fcn.0042b330
add esp, 0xc
mov ecx, 0x46611c
call fcn.0040bde0
push eax
lea edx, [ebp - 0x830]
push edx
call fcn.0040f2b0
add esp, 8
push str.MoreFolder
lea eax, [ebp - 0x2c88]
push eax
lea ecx, [ebp - 0x2a60]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
mov dword [ebp - 0x2bcc], eax
cmp dword [ebp - 0x2bcc], 0
jne 0x40d32e
mov dword [ebp - 0x2c00], 0
jmp 0x40d3e6
mov ecx, dword [ebp - 0x2bcc]
mov dword [ebp - 0x2bd8], ecx
mov edx, dword [ebp - 0x2bd8]
add edx, 1
mov dword [ebp - 0x2c6c], edx
mov eax, dword [ebp - 0x2bd8]
mov cl, byte [eax]
mov byte [ebp - 0x2bd2], cl
add dword [ebp - 0x2bd8], 1
cmp byte [ebp - 0x2bd2], 0
jne 0x40d349
mov edx, dword [ebp - 0x2bd8]
sub edx, dword [ebp - 0x2c6c]
mov dword [ebp - 0x2c64], edx
mov eax, dword [ebp - 0x2c64]
add eax, 1
mov dword [ebp - 0x2bc8], eax
cmp dword [ebp - 0x2bc8], 0x3fffffff
jle 0x40d3a0
mov dword [ebp - 0x2bfc], 0
jmp 0x40d3da
mov eax, dword [ebp - 0x2bc8]
shl eax, 1
call fcn.00413e80
mov dword [ebp - 0x2c60], esp
mov ecx, dword [ebp - 0x2bec]
push ecx
mov edx, dword [ebp - 0x2bc8]
push edx
mov eax, dword [ebp - 0x2bcc]
push eax
mov ecx, dword [ebp - 0x2c60]
push ecx
call fcn.00411410
mov dword [ebp - 0x2bfc], eax
mov edx, dword [ebp - 0x2bfc]
mov dword [ebp - 0x2c00], edx
mov eax, dword [ebp - 0x2c00]
push eax
lea ecx, [ebp - 0x2af8]
call fcn.0040e1c0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2af8]
call fcn.0040bde0
push eax
lea ecx, [ebp - 0x830]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x830]
push edx
lea ecx, [ebp - 0x2cd0]
call fcn.0040e1c0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x2cd0]
push eax
call fcn.00411590
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2cd0]
call fcn.0040be30
lea ecx, [ebp - 0x830]
push ecx
lea edx, [ebp - 0x2ae0]
push edx
mov ecx, 0x466134
call fcn.0040df10
mov ecx, eax
call fcn.0040e110
push str.PathDef
lea eax, [ebp - 0x2c8c]
push eax
lea ecx, [ebp - 0x2a60]
call fcn.00409a60
mov ecx, dword [eax]
mov dword [ebp - 0x2a60], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2af8]
call fcn.0040be30
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2ae0]
call fcn.0040be30
jmp 0x40d1a5
push 4
lea ecx, [ebp - 0x2a5c]
call fcn.00402c00
push 0x45c850
lea edx, [ebp - 0x2a5c]
push edx
lea ecx, [ebp - 0x2a64]
call fcn.00409940
mov dword [ebp - 0x2c5c], 0
mov dword [ebp - 0x2c10], 0
lea ecx, [ebp - 0x2a5c]
call fcn.00409910
test eax, eax
je 0x40de6c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x45c854
lea eax, [ebp - 0x2c90]
push eax
lea ecx, [ebp - 0x2a5c]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
push eax
call fcn.00432fe2
add esp, 4
mov dword [ebp - 0x2c10], eax
push str.TYPE
lea ecx, [ebp - 0x2c94]
push ecx
lea ecx, [ebp - 0x2a5c]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
push eax
call fcn.00432fe2
add esp, 4
mov dword [ebp - 0x2c5c], eax
push 0x208
push 0
lea edx, [ebp - 0x420]
push edx
call fcn.0042b330
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x628]
push eax
call fcn.0042b330
add esp, 0xc
mov ecx, 0x46611c
call fcn.0040bde0
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.0040f2b0
add esp, 8
push str.NAME
lea edx, [ebp - 0x2c98]
push edx
lea ecx, [ebp - 0x2a5c]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
mov dword [ebp - 0x2bcc], eax
cmp dword [ebp - 0x2bcc], 0
jne 0x40d5d9
mov dword [ebp - 0x2c08], 0
jmp 0x40d691
mov eax, dword [ebp - 0x2bcc]
mov dword [ebp - 0x2bdc], eax
mov ecx, dword [ebp - 0x2bdc]
add ecx, 1
mov dword [ebp - 0x2c40], ecx
mov edx, dword [ebp - 0x2bdc]
mov al, byte [edx]
mov byte [ebp - 0x2bd3], al
add dword [ebp - 0x2bdc], 1
cmp byte [ebp - 0x2bd3], 0
jne 0x40d5f4
mov ecx, dword [ebp - 0x2bdc]
sub ecx, dword [ebp - 0x2c40]
mov dword [ebp - 0x2c7c], ecx
mov edx, dword [ebp - 0x2c7c]
add edx, 1
mov dword [ebp - 0x2bc8], edx
cmp dword [ebp - 0x2bc8], 0x3fffffff
jle 0x40d64b
mov dword [ebp - 0x2c04], 0
jmp 0x40d685
mov eax, dword [ebp - 0x2bc8]
shl eax, 1
call fcn.00413e80
mov dword [ebp - 0x2c28], esp
mov eax, dword [ebp - 0x2bec]
push eax
mov ecx, dword [ebp - 0x2bc8]
push ecx
mov edx, dword [ebp - 0x2bcc]
push edx
mov eax, dword [ebp - 0x2c28]
push eax
call fcn.00411410
mov dword [ebp - 0x2c04], eax
mov ecx, dword [ebp - 0x2c04]
mov dword [ebp - 0x2c08], ecx
mov edx, dword [ebp - 0x2c08]
push edx
lea ecx, [ebp - 0x2a98]
call fcn.0040e1c0
mov byte [ebp - 4], 5
push 0x45c868
lea eax, [ebp - 0x2ca0]
push eax
lea ecx, [ebp - 0x2a5c]
call fcn.004099d0
mov ecx, eax
call fcn.004098d0
mov dword [ebp - 0x2bcc], eax
cmp dword [ebp - 0x2bcc], 0
jne 0x40d6e3
mov dword [ebp - 0x2c14], 0
jmp 0x40d79b
mov ecx, dword [ebp - 0x2bcc]
mov dword [ebp - 0x2be0], ecx
mov edx, dword [ebp - 0x2be0]
add edx, 1
mov dword [ebp - 0x2c2c], edx
mov eax, dword [ebp - 0x2be0]
mov cl, byte [eax]
mov byte [ebp - 0x2bd4], cl
add dword [ebp - 0x2be0], 1
cmp byte [ebp - 0x2bd4], 0
jne 0x40d6fe
mov edx, dword [ebp - 0x2be0]
sub edx, dword [ebp - 0x2c2c]
mov dword [ebp - 0x2c30], edx
mov eax, dword [ebp - 0x2c30]
add eax, 1
mov dword [ebp - 0x2bc8], eax
cmp dword [ebp - 0x2bc8], 0x3fffffff
jle 0x40d755
mov dword [ebp - 0x2c18], 0
jmp 0x40d78f
mov eax, dword [ebp - 0x2bc8]
shl eax, 1
call fcn.00413e80
mov dword [ebp - 0x2c34], esp
mov ecx, dword [ebp - 0x2bec]
push ecx
mov edx, dword [ebp - 0x2bc8]
push edx
mov eax, dword [ebp - 0x2bcc]
push eax
mov ecx, dword [ebp - 0x2c34]
push ecx
call fcn.00411410
mov dword [ebp - 0x2c18], eax
mov edx, dword [ebp - 0x2c18]
mov dword [ebp - 0x2c14], edx
mov eax, dword [ebp - 0x2c14]
push eax
lea ecx, [ebp - 0x2ab0]
call fcn.0040e1c0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2ab0]
push ecx
mov ecx, 0x466134
call fcn.0040df10
mov ecx, eax
call fcn.0040bde0
push eax
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x2a98]
call fcn.0040bde0
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x628]
push edx
call fcn.0040f2b0
add esp, 8
push 0x45c86c
lea eax, [ebp - 0x628]
push eax
call fcn.004052a0
add esp, 8
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40d838
lea edx, [ebp - 0x628]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 1
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea edx, [ebp - 0x628]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40d881
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x40d881
push 4
push 0
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push str.EXEDATA
mov edx, dword [ebp - 0x2c10]
push edx
lea eax, [ebp - 0x420]
push eax
call fcn.00411490
add esp, 0xc
test eax, eax
jne 0x40d8f9
mov dword [ebp - 0x2c38], 1
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2ab0]
call fcn.0040be30
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a98]
call fcn.0040be30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2bc0]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a80]
call fcn.0040be30
mov eax, dword [ebp - 0x2c38]
jmp 0x40de9d
push str.CORE.exe
lea ecx, [ebp - 0x2a98]
push ecx
call fcn.0040f2d0
add esp, 8
movzx edx, al
test edx, edx
jne 0x40d933
push str.CU.exe
lea eax, [ebp - 0x2a98]
push eax
call fcn.0040f2d0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x40da04
push 0x208
push 0
lea edx, [ebp - 0xe48]
push edx
call fcn.0042b330
add esp, 0xc
mov ecx, 0x46611c
call fcn.0040bde0
push eax
lea eax, [ebp - 0xe48]
push eax
call fcn.0040f2b0
add esp, 8
push str.DSOC
lea ecx, [ebp - 0xe48]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0xe48]
push edx
lea ecx, [ebp - 0x2cb8]
call fcn.0040e1c0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x2cb8]
push eax
call fcn.00411590
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2cb8]
call fcn.0040be30
push 0x800
push 0
lea ecx, [ebp - 0x2a58]
push ecx
call fcn.0042b330
add esp, 0xc
lea edx, [ebp - 0xe48]
push edx
lea eax, [ebp - 0x420]
push eax
push str._s__noregister__path___s_
push 0x400
lea ecx, [ebp - 0x2a58]
push ecx
call fcn.0040ce50
add esp, 0x14
lea edx, [ebp - 0x2a58]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 1
lea eax, [ebp - 0x2a58]
push eax
call fcn.004116c0
add esp, 8
push str.UPDATECORE.exe
lea ecx, [ebp - 0x2a98]
push ecx
call fcn.0040f2d0
add esp, 8
movzx edx, al
test edx, edx
je 0x40de2a
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.0042b330
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0xc40]
push ecx
call fcn.0042b330
add esp, 0xc
call fcn.00402ee0
test eax, eax
je 0x40da6f
lea edx, [ebp - 0xc40]
push edx
push 1
push 0
push 0x2a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
jmp 0x40da84
lea eax, [ebp - 0xc40]
push eax
push 1
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea ecx, [ebp - 0xc40]
push ecx
lea edx, [ebp - 0x218]
push edx
call fcn.0040f2b0
add esp, 8
push str.DSOCCOMMONCOREDGCore32.dll
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40dae5
lea edx, [ebp - 0xc40]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.0040f2b0
add esp, 8
push str.huatusoftcommoncoreDGCore32.dll
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40de2a
mov dword [ebp - 0x2be4], 0
push 0x457b52
lea ecx, [ebp - 0x2ac8]
call fcn.004032d0
mov byte [ebp - 4], 8
mov dword [ebp - 0x2a68], 0x34
push 0
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0x2bf0], eax
cmp dword [ebp - 0x2bf0], 0
je 0x40de1b
mov dword [ebp - 0x2bd0], 0
cmp dword [ebp - 0x2bd0], 0
jne 0x40db7a
mov ecx, dword [ebp - 0x2bf0]
push ecx
call fcn.00413983
add esp, 4
mov dword [ebp - 0x2c3c], eax
mov edx, dword [ebp - 0x2c3c]
mov dword [ebp - 0x2bd0], edx
jmp 0x40db4e
mov eax, dword [ebp - 0x2bd0]
push eax
mov ecx, dword [ebp - 0x2bf0]
push ecx
push 0
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x40dd2f
lea eax, [ebp - 0x2a68]
push eax
lea ecx, [ebp - 0x2bc4]
push ecx
push 0x45c990
mov edx, dword [ebp - 0x2bd0]
push edx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40dd2f
mov eax, dword [ebp - 0x2bc4]
mov ecx, dword [eax + 0xc]
and ecx, 0xffff
movzx edx, cx
push edx
mov eax, dword [ebp - 0x2bc4]
mov ecx, dword [eax + 0xc]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
push edx
mov eax, dword [ebp - 0x2bc4]
mov ecx, dword [eax + 8]
and ecx, 0xffff
movzx edx, cx
push edx
mov eax, dword [ebp - 0x2bc4]
mov ecx, dword [eax + 8]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
push edx
push str._d._d._d._d
mov eax, dword [ebp - 0x2bf0]
push eax
mov ecx, dword [ebp - 0x2bd0]
push ecx
call fcn.00401280
add esp, 0x1c
mov edx, dword [ebp - 0x2bd0]
push edx
lea ecx, [ebp - 0x2ac8]
call fcn.004113f0
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 0x2bd0]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x2bc4]
mov eax, dword [edx + 8]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
mov dword [ebp - 0x2c0c], ecx
mov edx, dword [ebp - 0x2bc4]
mov eax, dword [edx + 8]
and eax, 0xffff
movzx ecx, ax
mov dword [ebp - 0x2c24], ecx
mov edx, dword [ebp - 0x2bc4]
mov eax, dword [edx + 0xc]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
mov dword [ebp - 0x2c20], ecx
mov edx, dword [ebp - 0x2bc4]
mov eax, dword [edx + 0xc]
and eax, 0xffff
movzx ecx, ax
mov dword [ebp - 0x2c44], ecx
cmp dword [ebp - 0x2c0c], 5
jge 0x40dcd7
mov dword [ebp - 0x2be4], 1
jmp 0x40dd2f
cmp dword [ebp - 0x2c0c], 5
jne 0x40dd2f
cmp dword [ebp - 0x2c24], 0
jge 0x40dcf5
mov dword [ebp - 0x2be4], 1
jmp 0x40dd2f
cmp dword [ebp - 0x2c24], 0
jne 0x40dd2f
cmp dword [ebp - 0x2c20], 1
jge 0x40dd13
mov dword [ebp - 0x2be4], 1
jmp 0x40dd2f
cmp dword [ebp - 0x2c20], 1
jne 0x40dd2f
cmp dword [ebp - 0x2c44], 5
jge 0x40dd2f
mov dword [ebp - 0x2be4], 1
mov edx, dword [ebp - 0x2bd0]
mov dword [ebp - 0x2c1c], edx
push 1
mov eax, dword [ebp - 0x2c1c]
push eax
call fcn.00413975
add esp, 8
cmp dword [ebp - 0x2c1c], 0
jne 0x40dd61
mov dword [ebp - 0x2c48], 0
jmp 0x40dd77
mov dword [ebp - 0x2bd0], 0x8123
mov ecx, dword [ebp - 0x2bd0]
mov dword [ebp - 0x2c48], ecx
cmp dword [ebp - 0x2be4], 0
je 0x40de1b
push 0x800
push 0
lea edx, [ebp - 0x2258]
push edx
call fcn.0042b330
add esp, 0xc
push 0x3ff
lea eax, [ebp - 0x2258]
push eax
push 0x65
push 0
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x800
push 0
lea ecx, [ebp - 0x1a58]
push ecx
call fcn.0042b330
add esp, 0xc
push 0x3ff
lea edx, [ebp - 0x1a58]
push edx
push 0x66
push 0
call dword [sym.imp.USER32.dll_LoadStringW]
push 0
lea eax, [ebp - 0x2258]
push eax
lea ecx, [ebp - 0x1a58]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 1
push 0
push 0
lea eax, [ebp - 0x420]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2ac8]
call fcn.00403200
push 0x45c9ac
lea ecx, [ebp - 0x2c9c]
push ecx
lea ecx, [ebp - 0x2a5c]
call fcn.00409a60
mov edx, dword [eax]
mov dword [ebp - 0x2a5c], edx
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2ab0]
call fcn.0040be30
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a98]
call fcn.0040be30
jmp 0x40d4e2
mov dword [ebp - 0x2c4c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2bc0]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a80]
call fcn.0040be30
mov eax, dword [ebp - 0x2c4c]
lea esp, [ebp - 0x2cfc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041349a
mov esp, ebp
pop ebp
ret