Function at 0x41087b
Capabilities:
Accept command line arguments
Check if file exists
Create thread
Enumerate files on windows
Get common file path
Get disk size
Get file size
Get file version info
Get program files directory
Query environment variable
Read .ini file
Set current directory
Set environment variable
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x14c28]
mov eax, 0x14c28
call fcn.00421b90
push 0xffffffffffffffff
push 0x439c73
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x44d948]
xor eax, ebp
mov dword [ebp + 0x14c24], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14c30]
xor ebx, ebx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x14c38]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], ebx
mov edi, 0x2001f
push edi
push str.SoftwareMicrosoftWindows_NTCurrentVersionAppCompatFlagsCompatibility_AssistantPersisted
push SysReAllocStringLen
lea ecx, [ebp - 0x34]
call fcn.00403318
mov esi, 0x206
cmp eax, ebx
je 0x41091b
push ebx
push ebx
push edi
push ebx
push ebx
push str.SoftwareMicrosoftWindows_NTCurrentVersionAppCompatFlagsCompatibility_AssistantPersisted
push SysReAllocStringLen
lea ecx, [ebp - 0x34]
call fcn.004032be
cmp eax, ebx
jne 0x410c29
xor eax, eax
push esi
mov word [ebp + 0x1476c], ax
lea eax, [ebp + 0x1476e]
push ebx
push eax
mov dword [ebp - 0x38], ebx
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x1476c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebx
push 0x80
push 4
push ebx
xor edi, edi
inc edi
push edi
push SysReAllocStringLen
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x410985
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0x1476c]
push eax
lea ecx, [ebp + 0x2a4]
call fcn.004062e4
mov byte [ebp - 4], 1
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp + 0x2a4]
mov dword [ebp - 0x28], 0x5b
call fcn.00404128
push edi
mov dword [ebp - 0x18], eax
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp + 0x2a4]
mov dword [ebp - 0x28], 0x5d
call fcn.00404128
push edi
mov dword [ebp - 0x44], eax
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp + 0x2a4]
mov dword [ebp - 0x28], 0x2e
call fcn.00404128
cmp dword [ebp - 0x18], 0xffffffff
je 0x410ab8
mov ecx, dword [ebp - 0x44]
cmp ecx, 0xffffffff
je 0x410ab8
cmp eax, 0xffffffff
je 0x410ab8
cmp dword [ebp - 0x18], ecx
jae 0x410ab8
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jne 0x410ab8
push dword [ebp - 0x18]
lea eax, [ebp + 0x26c]
push ebx
push eax
lea ecx, [ebp + 0x2a4]
call fcn.00406306
mov byte [ebp - 4], 2
push 0xffffffffffffffff
push dword [ebp - 0x28]
lea eax, [ebp + 0x250]
push eax
lea ecx, [ebp + 0x2a4]
call fcn.00406306
mov byte [ebp - 4], 3
lea eax, [ebp + 0x250]
push eax
lea eax, [ebp + 0x26c]
push eax
lea eax, [ebp + 0x2c0]
push eax
call fcn.00405fe6
add esp, 0xc
mov byte [ebp - 4], 4
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x2a4]
call fcn.0040563b
mov byte [ebp - 4], 3
push ebx
push edi
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp + 0x250]
call fcn.004048ea
mov byte [ebp - 4], 1
push ebx
push edi
lea ecx, [ebp + 0x26c]
call fcn.004048ea
xor eax, eax
push esi
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
mov eax, dword [ebp + 0x2a8]
add esp, 0xc
cmp dword [ebp + 0x2bc], 8
jae 0x410ae7
lea eax, [ebp + 0x2a8]
push eax
lea eax, [ebp + 0x1435c]
push eax
call fcn.00421be9
pop ecx
pop ecx
lea eax, [ebp + 0x1435c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov dword [ebp - 0x1c], eax
xor eax, eax
push 0x7fe
mov word [ebp + 0x10adc], ax
lea eax, [ebp + 0x10ade]
push ebx
push eax
call fcn.00420d30
push dword [ebp - 0x1c]
lea eax, [ebp + 0x10adc]
push dword [ebp - 0x38]
push str.SIGN.IE0_X__s
push eax
call fcn.00401000
push str.WinMain
call fcn.00406c58
add esp, 0x20
test eax, eax
jne 0x410b8e
push edi
push dword [ebp - 0x38]
lea eax, [ebp + 0x10adc]
push str._file_size
push eax
push str._XmpSetup_SIGN.IE
push ebx
push str.WinMain
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040b982
xor eax, eax
push 0x7fe
mov word [ebp + 0x102dc], ax
lea eax, [ebp + 0x102de]
push ebx
push eax
call fcn.00420d30
push dword [ebp - 0x1c]
lea eax, [ebp + 0x102dc]
push str.10C1A20
push str.SIGN.MEDIA_s__s
push eax
call fcn.00401000
add esp, 0x1c
push 4
lea eax, [ebp - 0x28]
push eax
push 4
push ebx
lea eax, [ebp + 0x1476c]
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x28], edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
lea eax, [ebp - 0x28]
push eax
push 4
push ebx
lea eax, [ebp + 0x10adc]
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x28], edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
lea eax, [ebp - 0x28]
push eax
push 4
push ebx
lea eax, [ebp + 0x102dc]
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x28], edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov byte [ebp - 4], bl
push ebx
push edi
lea ecx, [ebp + 0x2a4]
call fcn.004048ea
push dword [ebp - 0x34]
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.004032a3
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, str.WinMain
push edi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x410c96
push 1
push dword [ebp + 0x14c3c]
push str._nShow_
push dword [ebp - 0x58]
push str._XmpSetup_cmdline
push ebx
push edi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004011cb
mov ecx, eax
call fcn.0040b982
push 0x4412d8
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
push str._silent
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
push 0x4412e0
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
push 0x44271c
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
call fcn.0040de03
cmp eax, 1
je 0x410d68
push 0x442714
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
push 0x44270c
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d68
push 0x442704
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d5f
push str._update
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d5f
push 0x4426ec
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d5f
push 0x4426dc
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x410d5f
call fcn.0040773f
cmp eax, 1
je 0x410d5f
mov dword [ebp - 0x2c], ebx
jmp 0x410d6f
mov dword [ebp - 0x2c], 2
jmp 0x410d6f
mov dword [ebp - 0x2c], 1
push edi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x410da2
push 1
push dword [ebp - 0x2c]
push str._XmpSetup_Install_type
push ebx
push edi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004011cb
mov ecx, eax
call fcn.0040b982
push dword [ebp - 0x2c]
xor eax, eax
mov word [ebp + 0x14bf0], ax
lea edi, [ebp + 0x14bf2]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp + 0x14bf0]
push 0x43c6c8
push eax
call fcn.00401000
add esp, 0xc
lea eax, [ebp + 0x14bf0]
push eax
push str.INSTALL_TYPE
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x410e3c
cmp dword [ebp - 0x2c], 1
je 0x410e07
push 0x132
push 0x4412c4
push 0x44269c
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x410e35
mov esi, str.WinMain
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x410e35
push 3
push str._XMPSetup_IsUserAnAdmin_return_FALSE
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
xor eax, eax
jmp 0x41379b
xor eax, eax
push esi
mov word [ebp + 0x13154], ax
lea eax, [ebp + 0x13156]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x13154]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp + 0x13154]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edi, eax
push edi
lea ecx, [ebp + 0x250]
call fcn.004062e4
mov dword [ebp - 4], 5
xor eax, eax
push esi
mov word [ebp + 0x11f0c], ax
lea eax, [ebp + 0x11f0e]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x11f0c]
push edi
push eax
call fcn.00421be9
lea eax, [ebp + 0x11f0c]
push eax
call fcn.00421e74
add esp, 0x18
push 0x43e49c
lea ecx, [ebp + 0x2a4]
call fcn.004062e4
mov byte [ebp - 4], 6
lea eax, [ebp + 0x11f0c]
push eax
lea ecx, [ebp + 0x26c]
call fcn.004062e4
mov byte [ebp - 4], 7
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x128]
call fcn.004103ee
mov byte [ebp - 4], 8
push str.installsource
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x128]
call fcn.0040ea8a
mov byte [ebp - 4], 9
push dword [ebp - 0x4c]
call fcn.0041f168
pop ecx
test eax, eax
jbe 0x410f5b
push dword [ebp - 0x4c]
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov byte [ebp - 4], 0xa
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x2a4]
call fcn.0040563b
mov byte [ebp - 4], 9
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
jmp 0x411037
push str.XMPSETUP_KANKAN_.EXE
lea ecx, [ebp + 0x26c]
call fcn.00404638
test eax, eax
je 0x411027
push str.XMPSETUP3.EXE
lea ecx, [ebp + 0x26c]
call fcn.00404638
test eax, eax
je 0x411027
push str.XMPSETUP4.EXE
lea ecx, [ebp + 0x26c]
call fcn.00404638
test eax, eax
je 0x411027
or edi, 0xffffffff
push edi
push 0x440808
lea ecx, [ebp + 0x250]
call fcn.00404844
cmp eax, edi
je 0x411037
push edi
inc eax
push eax
lea eax, [ebp + 0x2c0]
push eax
lea ecx, [ebp + 0x250]
call fcn.00406306
mov byte [ebp - 4], 0xb
push edi
push ebx
push eax
lea ecx, [ebp + 0x2a4]
call fcn.0040563b
mov byte [ebp - 4], 9
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
push edi
push 0x440804
lea ecx, [ebp + 0x2a4]
call fcn.00404844
cmp eax, edi
je 0x411037
push eax
push ebx
lea eax, [ebp + 0x2c0]
push eax
lea ecx, [ebp + 0x2a4]
call fcn.00406306
mov byte [ebp - 4], 0xc
push edi
jmp 0x410f37
push str.kkweb
lea ecx, [ebp + 0x2a4]
call fcn.00405f18
mov edi, str.WinMain
push edi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411082
cmp dword [ebp + 0x2bc], 8
mov eax, dword [ebp + 0x2a8]
jae 0x41105c
lea eax, [ebp + 0x2a8]
push 1
push eax
push str._XmpSetup_InstallSource_
push ebx
push edi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push 0xfe
lea eax, [ebp + 0x14056]
push ebx
push eax
call fcn.00420d30
xor eax, eax
mov word [ebp + 0x14054], ax
add esp, 0xc
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x13154]
push eax
mov dword [ebp - 0x44], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jbe 0x411148
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004137de
mov esi, eax
pop ecx
cmp esi, ebx
je 0x41113e
push esi
push dword [ebp - 0x1c]
lea eax, [ebp + 0x13154]
push dword [ebp - 0x44]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x411137
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x43c9f0
push esi
mov dword [ebp - 0x1c], ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x411137
mov eax, dword [ebp - 0x3c]
movzx ecx, word [eax + 0xc]
push ecx
movzx ecx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push eax
lea eax, [ebp + 0x14054]
push str._d._d._d._d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
push esi
call fcn.0041e83c
pop ecx
mov edi, str.WinMain
mov esi, 0x206
push edi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x41117f
push 1
lea eax, [ebp + 0x14054]
push eax
push str._XmpSetup_Version_
push ebx
push edi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push 0xe58
call fcn.00421b23
pop ecx
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0xd
cmp eax, ebx
je 0x4111a3
mov ecx, eax
call fcn.004034b0
mov edi, eax
mov dword [ebp - 0x18], eax
jmp 0x4111a8
xor edi, edi
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 9
mov dword [edi], 0xa2a
mov dword [edi + 4], 3
call fcn.0040e2fd
mov dword [edi + 8], eax
xor eax, eax
cmp dword [ebp - 0x2c], ebx
push 0xc6
sete al
push ebx
mov dword [edi + 0xc], eax
xor eax, eax
mov word [ebp + 0x13d84], ax
lea eax, [ebp + 0x13d86]
push eax
call fcn.00420d30
lea eax, [ebp + 0x13d84]
push eax
call fcn.0040d420
lea eax, [ebp + 0x13d84]
push eax
lea eax, [edi + 0x638]
push eax
call fcn.00421be9
mov ecx, dword [ebp + 0x2a8]
add esp, 0x18
cmp dword [ebp + 0x2bc], 8
jae 0x41121e
lea ecx, [ebp + 0x2a8]
lea eax, [edi + 0xa48]
push ecx
push eax
call fcn.00421be9
cmp dword [ebp + 0x2bc], 8
mov eax, dword [ebp + 0x2a8]
pop ecx
pop ecx
jae 0x411242
lea eax, [ebp + 0x2a8]
push eax
lea eax, [edi + 0x20]
push eax
call fcn.00421be9
lea eax, [ebp + 0x14054]
push eax
lea eax, [edi + 0x840]
push eax
call fcn.00421be9
push 0xe58
call fcn.00421b23
add esp, 0x14
cmp eax, ebx
je 0x411289
mov esi, dword [ebp - 0x18]
mov ecx, 0x396
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov esi, 0x206
jmp 0x41128c
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 0xe
xor eax, eax
push esi
mov word [ebp + 0x12114], ax
lea eax, [ebp + 0x12116]
push ebx
push eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x13974], ax
lea eax, [ebp + 0x13976]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x12524], ax
lea eax, [ebp + 0x12526]
push ebx
push eax
call fcn.00420d30
add esp, 0x24
push 0x20019
mov eax, 0x800
push str.SOFTWAREThunder_NetworkXmp
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
call fcn.00403318
cmp eax, ebx
jne 0x4114a6
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x12524]
push eax
push str.InstallSource
lea ecx, [ebp - 0x34]
call fcn.00403391
test eax, eax
jne 0x41136d
lea eax, [ebp + 0x12524]
push eax
call fcn.0041f168
pop ecx
test eax, eax
jbe 0x411349
lea eax, [ebp + 0x12524]
jmp 0x41135e
cmp dword [ebp + 0x2bc], 8
mov eax, dword [ebp + 0x2a8]
jae 0x41135e
lea eax, [ebp + 0x2a8]
push eax
lea eax, [edi + 0xa48]
push eax
call fcn.00421be9
pop ecx
pop ecx
lea eax, [ebp - 0x28]
push eax
push str.lastuninstalltime
lea ecx, [ebp - 0x34]
call fcn.00403359
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x28]
push esi
mov dword [edi + 0x14], eax
xor eax, eax
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x1435c]
push eax
push str.path
lea ecx, [ebp - 0x34]
call fcn.00403391
test eax, eax
jne 0x4113d7
lea eax, [ebp + 0x1435c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x4113d7
mov dword [edi + 0x10], ebx
jmp 0x4113de
mov dword [edi + 0x10], 1
lea eax, [ebp - 0x38]
push eax
push str.firstinstalltime
lea ecx, [ebp - 0x34]
call fcn.00403359
test eax, eax
jne 0x4113f8
mov eax, dword [ebp - 0x38]
jmp 0x411412
lea eax, [ebp - 0x38]
push eax
push str.thefirstinstalltime
lea ecx, [ebp - 0x34]
call fcn.00403359
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x38]
mov dword [edi + 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x12114]
push eax
push str.firstinstallversion
lea ecx, [ebp - 0x34]
call fcn.00403391
test eax, eax
jne 0x411457
lea eax, [ebp + 0x12114]
push eax
call fcn.0041f168
pop ecx
test eax, eax
jbe 0x411457
lea eax, [ebp + 0x12114]
push eax
lea eax, [edi + 0x228]
push eax
call fcn.00421be9
pop ecx
pop ecx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x13974]
push eax
push str.firstinstallsource
lea ecx, [ebp - 0x34]
call fcn.00403391
cmp eax, ebx
jne 0x411585
lea eax, [ebp + 0x13974]
push eax
call fcn.0041f168
pop ecx
test eax, eax
jbe 0x411585
lea eax, [ebp + 0x13974]
push eax
lea eax, [edi + 0x430]
push eax
call fcn.00421be9
pop ecx
pop ecx
jmp 0x411585
lea eax, [ebp - 0x54]
push eax
mov dword [edi + 0x10], 1
call fcn.00420a13
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
lea eax, [ebp + 0x14054]
push eax
lea eax, [edi + 0x228]
push eax
call fcn.00421be9
push str.WinMain
call fcn.00406c58
add esp, 0x10
test eax, eax
jne 0x411513
push 1
lea eax, [ebp + 0x14054]
push eax
push str._XmpSetup__firstinstallversion
push ebx
push str.WinMain
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
cmp dword [ebp + 0x2bc], 8
mov eax, dword [ebp + 0x2a8]
jae 0x411528
lea eax, [ebp + 0x2a8]
push eax
lea eax, [edi + 0x430]
push eax
call fcn.00421be9
push str.WinMain
call fcn.00406c58
add esp, 0xc
test eax, eax
jne 0x411585
cmp dword [ebp + 0x2bc], 8
mov eax, dword [ebp + 0x2a8]
jae 0x41155b
lea eax, [ebp + 0x2a8]
push 1
push eax
push str._XmpSetup__firstinstallsource
push ebx
push str.WinMain
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp - 0xb8]
push eax
call fcn.00420a13
mov eax, dword [ebp - 0xb8]
pop ecx
lea ecx, [ebp - 0x34]
mov dword [edi + 0x1c], eax
call fcn.004032a3
lea eax, [ebp - 0x5c]
push eax
push ebx
push edi
push 0x40e110
push ebx
push ebx
mov dword [ebp - 0x5c], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x34]
call fcn.004032a3
mov byte [ebp - 4], 8
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x128]
call fcn.00408f57
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp + 0x26c]
call fcn.004048ea
mov byte [ebp - 4], 5
push ebx
push 1
lea ecx, [ebp + 0x2a4]
call fcn.004048ea
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp + 0x250]
call fcn.004048ea
push str.XmpSetup
mov edi, str.XmpSetup01572D6A_8C9A_484b_8B31_F2890BF1FB21
push edi
call dword [sym.imp.USER32.dll_FindWindowW]
cmp eax, ebx
je 0x411672
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [ebp - 0x2c]
call fcn.0040eead
mov esi, str.WinMain
push esi
call fcn.00406c58
pop ecx
pop ecx
test eax, eax
jne 0x41166a
push 1
push str._XmpSetup_There_is_another_xmpsetup_running_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
or eax, 0xffffffff
jmp 0x41379b
xor eax, eax
push esi
mov word [ebp + 0x11d04], ax
lea eax, [ebp + 0x11d06]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp + 0x11d04]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp + 0x11d04]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
cmp eax, 1
jne 0x41171e
cmp dword [ebp - 0x7c], ebx
ja 0x41171e
jb 0x4116d2
cmp dword [ebp - 0x80], 0x5f5e100
jae 0x41171e
mov esi, str.WinMain
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411700
push 1
push str._XmpSetup_There_is_no_enough_space_in_system_dir_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
push 0x4424bc
call fcn.0040f91a
pop ecx
push 0xfffffffffffffffe
pop ebx
push dword [ebp - 0x2c]
call fcn.0040eead
pop ecx
mov eax, ebx
jmp 0x41379b
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push str.WinMain
mov dword [ebp - 0x24], eax
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411788
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._lasterror
push dword [ebp - 0x24]
push str._XmpSetup_SetPriorityClass_result
push ebx
push str.WinMain
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004011cb
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040b982
mov eax, dword [ebp - 0x48]
push 0x2c
mov dword [0x44f200], eax
lea eax, [ebp - 0xac]
push ebx
push eax
call fcn.00420d30
mov eax, dword [ebp - 0x48]
add esp, 0xc
push 0x7f00
push ebx
mov dword [ebp - 0xb0], 0x30
mov dword [ebp - 0xac], 3
mov dword [ebp - 0xa8], 0x40fd62
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], eax
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x7f00
push ebx
mov dword [ebp - 0x98], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push ebx
mov dword [ebp - 0x94], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], edi
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
jne 0x411840
push 0x442488
call fcn.0040f91a
pop ecx
jmp 0x41170e
push ebx
push dword [ebp - 0x48]
mov eax, SysReAllocStringLen
push ebx
push ebx
push eax
push eax
push eax
push eax
push 0xcf0000
push 0x442474
push edi
push 0x300
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x44f204], eax
cmp eax, ebx
jne 0x411875
push 0x442464
jmp 0x411835
xor eax, eax
push esi
mov word [ebp + 0x11afc], ax
lea eax, [ebp + 0x11afe]
push ebx
push eax
call fcn.00420d30
push 0xa
push 0x104
lea eax, [ebp + 0x11afc]
push eax
push dword [0x44f200]
call fcn.00421a26
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
add esp, 0x1c
lea eax, [ebp + 0x11afc]
push eax
push str.XMPSETUPHANDLE
call edi
xor eax, eax
push esi
mov word [ebp + 0x118f4], ax
lea eax, [ebp + 0x118f6]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x1231c], ax
lea eax, [ebp + 0x1231e]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x112dc], ax
lea eax, [ebp + 0x112de]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x13564], ax
lea eax, [ebp + 0x13566]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push esi
mov word [ebp + 0x12d44], ax
lea eax, [ebp + 0x12d46]
push ebx
push eax
call fcn.00420d30
add esp, 0x3c
push 0x104
lea eax, [ebp + 0x118f4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp + 0x1231c]
push eax
lea eax, [ebp + 0x118f4]
push eax
call fcn.00403400
pop ecx
pop ecx
lea eax, [ebp + 0x1231c]
push eax
push 0x44242c
call edi
lea eax, [ebp + 0x1231c]
push eax
push 0x442428
mov esi, str._s_s
lea eax, [ebp + 0x12d44]
push esi
push eax
call fcn.00421612
add esp, 0x10
push ebx
push 0x26
lea eax, [ebp + 0x112dc]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, 1
lea eax, [ebp + 0x12d44]
push eax
jne 0x4119c8
push str.Thunder_NetworkXMP_
lea eax, [ebp + 0x112dc]
push eax
lea eax, [ebp + 0x13564]
push str._s_s_s
push eax
call fcn.00421612
add esp, 0x14
jmp 0x4119dd
push str.C:Program_FilesThunder_NetworkXMP_
lea eax, [ebp + 0x13564]
push esi
push eax
call fcn.00421612
add esp, 0x10
push 0xa
pop ecx
xor eax, eax
push 0x206
mov word [ebp + 0x12f4c], ax
lea eax, [ebp + 0x12f4e]
push ebx
mov esi, str._ReleaseInstallDir_
lea edi, [ebp + 0x14ba8]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x12f4c]
push eax
lea eax, [ebp + 0x14ba8]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0xf
pop esi
cmp eax, ebx
jbe 0x411a75
lea eax, [ebp + 0x12f4c]
push eax
lea ecx, [ebp - 0x78]
call fcn.004062e4
mov edi, eax
mov dword [ebp - 4], esi
lea eax, [ebp + 0x14ba8]
push eax
lea ecx, [ebp + 0x2c0]
mov dword [ebp - 0x14], 1
call fcn.004062e4
mov dword [ebp - 4], 0x10
push edi
mov ecx, eax
mov dword [ebp - 0x14], 3
call fcn.00404614
mov byte [ebp - 0xd], bl
test eax, eax
jne 0x411a79
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], esi
test byte [ebp - 0x14], 2
je 0x411a94
and dword [ebp - 0x14], 0xfffffffd
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0x14], 1
je 0x411aad
and dword [ebp - 0x14], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
mov esi, str.WinMain
cmp byte [ebp - 0xd], bl
je 0x411af6
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411ae0
push 1
push str._XmpSetup_no_DefaultInstallDir_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [ebp + 0x13564]
push eax
push 0x43c5cc
call edi
jmp 0x411afc
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0x104
lea eax, [ebp + 0x12f4c]
push eax
lea eax, [ebp + 0x14ba8]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411b66
push 1
lea eax, [ebp + 0x12f4c]
push eax
push 0x441808
lea eax, [ebp + 0x14ba8]
push eax
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x13564]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x411bfb
xor eax, eax
push 0x206
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
push str...XMP5_InstDir
lea eax, [ebp + 0x13564]
push eax
lea eax, [ebp + 0x14974]
push str._s_s
push eax
call fcn.00421612
add esp, 0x1c
lea eax, [ebp + 0x14974]
push eax
push str.ReleaseInstallDir
call edi
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411bfb
push 1
lea eax, [ebp + 0x14974]
push eax
push str._XmpSetup__ReleaseInstallDir_changed_to
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x12d44]
push eax
lea ecx, [ebp + 0x288]
call fcn.00407540
pop ecx
mov dword [ebp - 4], 0x11
mov eax, dword [ebp + 0x29c]
dec eax
push eax
lea ecx, [ebp + 0x288]
call fcn.00403e3f
cmp word [eax], 0x5c
jne 0x411c46
mov eax, dword [ebp + 0x29c]
dec eax
push eax
lea ecx, [ebp + 0x288]
call fcn.00403e3f
xor ecx, ecx
mov word [eax], cx
cmp dword [ebp + 0x2a0], 8
mov eax, dword [ebp + 0x28c]
jae 0x411c5b
lea eax, [ebp + 0x28c]
push eax
push 0x43c510
call edi
cmp dword [ebp + 0x2a0], 8
mov eax, dword [ebp + 0x28c]
jae 0x411c78
lea eax, [ebp + 0x28c]
push eax
push 0x43c5f0
call edi
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411ccc
push 1
sub esp, 0x1c
lea eax, [ebp + 0x288]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.00405c66
mov byte [ebp - 4], 0x12
push str._XmpSetup_userdata_path
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov byte [ebp - 4], 0x11
mov ecx, eax
call fcn.00405483
mov ecx, eax
call fcn.0040b982
cmp dword [ebp + 0x2a0], 8
mov eax, dword [ebp + 0x28c]
jae 0x411ce1
lea eax, [ebp + 0x28c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x411d82
xor eax, eax
push 0x206
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
mov eax, dword [ebp + 0x28c]
add esp, 0xc
cmp dword [ebp + 0x2a0], 8
jae 0x411d23
lea eax, [ebp + 0x28c]
push str...XMP5_UserData
push eax
lea eax, [ebp + 0x14974]
push str._s_s
push eax
call fcn.00421612
add esp, 0x10
lea eax, [ebp + 0x14974]
push eax
push str.ReleaseUserDataDir
call edi
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411d82
push 1
lea eax, [ebp + 0x14974]
push eax
push str._XmpSetup__ReleaseUserDataDir_changed_to
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
mov esi, str._windir_
lea edi, [ebp + 0x14c00]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x206
movsd dword es:[edi], dword [esi]
mov word [ebp + 0x12b3c], ax
lea eax, [ebp + 0x12b3e]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x12b3c]
push eax
lea eax, [ebp + 0x14c00]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
jbe 0x411e13
lea eax, [ebp + 0x12b3c]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov esi, eax
mov byte [ebp - 4], 0x13
or dword [ebp - 0x14], 4
lea eax, [ebp + 0x14c00]
push eax
lea ecx, [ebp - 0x78]
call fcn.004062e4
mov dword [ebp - 4], 0x14
or dword [ebp - 0x14], 8
push esi
mov ecx, eax
call fcn.00404614
mov byte [ebp - 0xd], bl
test eax, eax
jne 0x411e17
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], 0x13
test byte [ebp - 0x14], 8
je 0x411e33
and dword [ebp - 0x14], 0xfffffff7
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
mov dword [ebp - 4], 0x11
test byte [ebp - 0x14], 4
je 0x411e52
and dword [ebp - 0x14], 0xfffffffb
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov esi, str.WinMain
cmp byte [ebp - 0xd], bl
je 0x411e95
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411e85
push 1
push str._XmpSetup_no_windir_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
push str.C:windows
push str.windir
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0x104
lea eax, [ebp + 0x12b3c]
push eax
lea eax, [ebp + 0x14c00]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x411eff
push 1
lea eax, [ebp + 0x12b3c]
push eax
push 0x441808
lea eax, [ebp + 0x14c00]
push eax
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push 7
pop ecx
mov esi, str._LocalAppdata_
lea edi, [ebp + 0x14bd0]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x206
mov word [ebp + 0x1272c], ax
lea eax, [ebp + 0x1272e]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x1272c]
push eax
lea eax, [ebp + 0x14bd0]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
jbe 0x411f91
lea eax, [ebp + 0x1272c]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov esi, eax
mov byte [ebp - 4], 0x15
or dword [ebp - 0x14], 0x10
lea eax, [ebp + 0x14bd0]
push eax
lea ecx, [ebp - 0x78]
call fcn.004062e4
mov dword [ebp - 4], 0x16
or dword [ebp - 0x14], 0x20
push esi
mov ecx, eax
call fcn.00404614
mov byte [ebp - 0xd], bl
test eax, eax
jne 0x411f95
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], 0x15
test byte [ebp - 0x14], 0x20
je 0x411fb1
and dword [ebp - 0x14], 0xffffffdf
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
mov dword [ebp - 4], 0x11
test byte [ebp - 0x14], 0x10
je 0x411fd0
and dword [ebp - 0x14], 0xffffffef
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov esi, str.WinMain
cmp byte [ebp - 0xd], bl
je 0x412024
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412003
push 1
push str._XmpSetup_no_local_appdata_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
cmp dword [ebp + 0x2a0], 8
mov eax, dword [ebp + 0x28c]
jae 0x412018
lea eax, [ebp + 0x28c]
push eax
push str.LocalAppdata
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0x104
lea eax, [ebp + 0x1272c]
push eax
lea eax, [ebp + 0x14bd0]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x41208e
push 1
lea eax, [ebp + 0x1272c]
push eax
push 0x441808
lea eax, [ebp + 0x14bd0]
push eax
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
xor eax, eax
push 0x206
mov word [ebp + 0x14154], ax
lea eax, [ebp + 0x14156]
push ebx
push eax
call fcn.00420d30
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
add esp, 0xc
lea eax, [ebp + 0x14154]
push eax
push ebx
push ebx
push 0x2b
push ebx
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp + 0x14154]
push eax
call esi
test eax, eax
lea eax, [ebp + 0x14154]
push eax
jne 0x412171
push ebx
push ebx
push 0x26
push ebx
call edi
lea eax, [ebp + 0x14154]
push eax
call esi
test eax, eax
jne 0x412139
push 0x104
lea eax, [ebp + 0x1435c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp eax, ebx
jbe 0x412127
movzx eax, word [ebp + 0x1435c]
push eax
lea eax, [ebp + 0x14154]
push str._c:Program_Files_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x412139
push str.C:Program_Files_
lea eax, [ebp + 0x14154]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp + 0x14154]
push eax
call esi
cmp word [ebp + eax*2 + 0x14152], 0x5c
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
je 0x412161
push 0x43c9f0
lea eax, [ebp + 0x14154]
push eax
call esi
push str.Common_Files_
lea eax, [ebp + 0x14154]
push eax
call esi
jmp 0x412190
call esi
cmp word [ebp + eax*2 + 0x14152], 0x5c
je 0x412190
push 0x43c9f0
lea eax, [ebp + 0x14154]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0xa
pop ecx
mov esi, str._CommonProgramFiles_
lea edi, [ebp + 0x14b7c]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x206
mov word [ebp + 0x1335c], ax
lea eax, [ebp + 0x1335e]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00420d30
lea eax, [ebp + 0x14154]
push eax
call fcn.0041f168
add esp, 0x10
test eax, eax
jbe 0x4125e5
lea eax, [ebp + 0x14154]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
mov esi, str.WinMain
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x41221d
push 1
lea eax, [ebp + 0x14154]
push eax
push str._XmpSetup_set_common_path
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14154]
push eax
push str.CommonProgramFiles
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov esi, str.WinMain
push 0x104
lea eax, [ebp + 0x1335c]
push eax
lea eax, [ebp + 0x14b7c]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x41229e
push 1
lea eax, [ebp + 0x1335c]
push eax
push 0x441808
lea eax, [ebp + 0x14b7c]
push eax
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
mov esi, str._temp_
lea edi, [ebp + 0x14c14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x206
movsd dword es:[edi], dword [esi]
mov word [ebp + 0x13b7c], ax
lea eax, [ebp + 0x13b7e]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x13b7c]
push eax
lea eax, [ebp + 0x14c14]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp + 0x13b7c]
mov edi, 0x100
mov esi, 0x200
test eax, eax
jbe 0x41234a
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x19
or dword [ebp - 0x14], edi
lea eax, [ebp + 0x14c14]
push eax
lea ecx, [ebp - 0x78]
call fcn.004062e4
mov dword [ebp - 4], 0x1a
push dword [ebp - 0x24]
or dword [ebp - 0x14], esi
mov ecx, eax
call fcn.00404614
test eax, eax
je 0x41234a
lea eax, [ebp + 0x13b7c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov byte [ebp - 0xd], bl
test eax, eax
jne 0x41234e
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], 0x19
test dword [ebp - 0x14], esi
je 0x41236c
and dword [ebp - 0x14], 0xfffffdff
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
mov dword [ebp - 4], 0x11
test dword [ebp - 0x14], edi
je 0x41238d
and dword [ebp - 0x14], 0xfffffeff
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov esi, str.WinMain
cmp byte [ebp - 0xd], bl
je 0x4123e2
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4123c0
push 1
push str._XmpSetup_no_temp_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x13b7c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.C:Documents_and_SettingsAdministratorLocal_SettingsTemp
push str.temp
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0x104
lea eax, [ebp + 0x13b7c]
push eax
lea eax, [ebp + 0x14c14]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x41244c
push 1
lea eax, [ebp + 0x13b7c]
push eax
push 0x441808
lea eax, [ebp + 0x14c14]
push eax
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
xor eax, eax
mov edi, 0x206
push edi
mov word [ebp + 0x12934], ax
lea eax, [ebp + 0x12936]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push ebx
push 0x10
lea eax, [ebp + 0x12934]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, 1
jne 0x4124a0
lea eax, [ebp + 0x12934]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea eax, [ebp + 0x12934]
push eax
push str.DeskTop
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4124ef
push 1
lea eax, [ebp + 0x12934]
push eax
push 0x441808
push str.DeskTop
push str._XmpSetup_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 0x1b
push str.0.0.0.0
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov byte [ebp - 4], 0x1c
xor eax, eax
push edi
mov word [ebp + 0x13e4c], ax
lea eax, [ebp + 0x13e4e]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push edi
mov word [ebp + 0x48], ax
lea eax, [ebp + 0x4a]
push ebx
push eax
call fcn.00420d30
add esp, 0x18
push 0x20019
push str.SOFTWAREThunder_NetworkXmp
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x20]
call fcn.00403318
cmp eax, ebx
jne 0x4129bc
xor eax, eax
push edi
mov word [ebp + 0x14564], ax
lea eax, [ebp + 0x14566]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x14564]
push eax
push str.Path
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0x104
call fcn.00403391
lea eax, [ebp + 0x14564]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x412729
xor eax, eax
push edi
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1435c]
push eax
lea eax, [ebp + 0x14564]
push eax
call fcn.00403400
add esp, 0x14
test eax, eax
je 0x4126e9
lea eax, [ebp + 0x1435c]
jmp 0x41271d
push 0x104
lea eax, [ebp + 0x1335c]
push eax
lea eax, [ebp + 0x14b7c]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
jbe 0x41265b
lea eax, [ebp + 0x1335c]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov esi, eax
mov byte [ebp - 4], 0x17
or dword [ebp - 0x14], 0x40
lea eax, [ebp + 0x14b7c]
push eax
lea ecx, [ebp - 0x78]
call fcn.004062e4
mov dword [ebp - 4], 0x18
or dword [ebp - 0x14], 0x80
push esi
mov ecx, eax
call fcn.00404614
test eax, eax
je 0x41265b
lea eax, [ebp + 0x1335c]
push eax
call fcn.0041f168
pop ecx
mov byte [ebp - 0xd], bl
test eax, eax
ja 0x41265f
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], 0x17
test byte [ebp - 0x14], 0x80
je 0x41267e
and dword [ebp - 0x14], 0xffffff7f
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
mov dword [ebp - 4], 0x11
test byte [ebp - 0x14], 0x40
je 0x41269d
and dword [ebp - 0x14], 0xffffffbf
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
cmp byte [ebp - 0xd], bl
je 0x41222f
mov esi, str.WinMain
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4126d4
push 1
push str._XmpSetup_no_common_files_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
push str.C:Program_FilesCommon_Files
push str.CommonProgramFiles
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x412234
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x14564]
push eax
push str.version
lea ecx, [ebp - 0x20]
call fcn.00403391
test eax, eax
jne 0x412729
lea eax, [ebp + 0x14564]
push eax
call fcn.0041f168
pop ecx
cmp eax, 7
jb 0x412729
lea eax, [ebp + 0x14564]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.00405f18
xor eax, eax
push edi
mov word [ebp + 0x1476c], ax
lea eax, [ebp + 0x1476e]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x13e4c]
push eax
push str.InstDir
lea ecx, [ebp - 0x20]
call fcn.00403391
mov dword [ebp - 0x18], eax
push 0x104
lea eax, [ebp + 0x1476c]
push eax
lea eax, [ebp + 0x13e4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4127ae
push 1
lea eax, [ebp + 0x1476c]
push eax
push str.szOldFullInstDir
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4127fb
push 1
push dword [ebp - 0x18]
push str._hr_is
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryStringValue_lasterror
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401248
mov ecx, eax
call fcn.0040b982
cmp dword [ebp - 0x18], ebx
jne 0x412872
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412829
push 1
push str._XmpSetup_no_OldVersionInstDir_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x1476c]
push eax
push str.OldVersionInstDir
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412872
push 1
lea eax, [ebp + 0x1476c]
push eax
push str._XmpSetup__OldVersionInstDir
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x48]
push eax
push str.CoreDir
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0x104
call fcn.00403391
mov dword [ebp - 0x18], eax
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x14974]
push eax
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4128f8
push 1
lea eax, [ebp + 0x14974]
push eax
push str.szOldFullCoreDir
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412945
push 1
push dword [ebp - 0x18]
push str.hr_is
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryStringValue_lasterror
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401248
mov ecx, eax
call fcn.0040b982
cmp dword [ebp - 0x18], ebx
jne 0x4129bc
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412973
push 1
push str._XmpSetup_no_OldVersionCoreDir_and_set_it
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14974]
push eax
push str.OldVersionCoreDir
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4129bc
push 1
lea eax, [ebp + 0x14974]
push eax
push str._XmpSetup__OldVersionCoreDir
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412a08
push 1
sub esp, 0x1c
lea eax, [ebp + 0x2c0]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.00405c66
mov byte [ebp - 4], 0x1d
push str._XmpSetup__OLDXMPVERSION:
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov byte [ebp - 4], 0x1c
mov ecx, eax
call fcn.00405483
mov ecx, eax
call fcn.0040b982
cmp dword [ebp + 0x2d8], 8
mov eax, dword [ebp + 0x2c4]
jae 0x412a1d
lea eax, [ebp + 0x2c4]
push eax
push str.OLDXMPVERSION
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov byte [ebp - 4], 0x1b
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x20]
call fcn.004032a3
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 0x1e
xor eax, eax
push edi
mov word [ebp + 0x114e4], ax
lea eax, [ebp + 0x114e6]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x20019
push str.SOFTWAREThunder_NetworkXmp
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], 0x800
call fcn.00403318
cmp eax, ebx
jne 0x412abe
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x114e4]
push eax
push str.path
lea ecx, [ebp - 0x34]
call fcn.00403391
lea eax, [ebp + 0x114e4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x412abe
push 0x43ede0
jmp 0x412ac3
push 0x43ede4
push str.NEWINSTALL
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
xor eax, eax
push edi
mov word [ebp + 0x116ec], ax
lea eax, [ebp + 0x116ee]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x116ec]
push eax
push str._NEWINSTALL_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412b36
push 1
lea eax, [ebp + 0x116ec]
push eax
push str._XmpSetup__NEWINSTALL_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push 0x43ede4
push str.IS_LITE
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412b7b
push 1
push 0x43ede4
push str._XmpSetup_is_package_lite
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push str._smstartup
call fcn.0040f767
pop ecx
cmp eax, 1
je 0x412b9b
push 0x441df8
call fcn.0040f767
pop ecx
cmp eax, 1
jne 0x412bd4
push 0x43ede4
push str.START_UP
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412bd4
push 1
push str._XmpSetup_is_start_up_1
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040b982
call fcn.0040e2fd
cmp eax, 1
jne 0x412e70
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 0x1f
push 0x2001f
push str.SOFTWAREThunder_NetworkXmp
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x40]
call fcn.00403318
cmp eax, ebx
jne 0x412ce2
xor eax, eax
push edi
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x1435c]
push eax
push str.PackageName
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x1c], 0x104
call fcn.00403391
cmp eax, ebx
jne 0x412ce2
cmp dword [ebp - 0x1c], ebx
jbe 0x412ce2
lea eax, [ebp + 0x1435c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
mov dword [ebp - 0x24], eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
xor eax, eax
push edi
mov word [ebp + 0x1476c], ax
lea eax, [ebp + 0x1476e]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x1476c]
push eax
push str._temp_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push dword [ebp - 0x24]
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp + 0x1476c]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov byte [ebp - 4], 0x20
lea eax, [ebp + 0x2c0]
push eax
call fcn.0040ed8e
pop ecx
mov byte [ebp - 4], 0x1f
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x14974]
push eax
push str._temp_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412d4a
push 1
lea eax, [ebp + 0x14974]
push eax
push str.sztmpPath_is
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push 0x104
lea eax, [ebp + 0x14974]
push eax
lea eax, [ebp + 0x13e4c]
push eax
call fcn.00421011
lea eax, [ebp + 0x13e4c]
push str.XMPSetup
push eax
call fcn.00421bbb
add esp, 0x14
lea eax, [ebp]
push eax
lea eax, [ebp + 0x13e4c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x1c], eax
test byte [ebp], 0x10
je 0x412e46
cmp word [ebp + 0x2c], 0x2e
je 0x412e46
push 0x104
lea eax, [ebp + 0x14974]
push eax
lea eax, [ebp + 0x14564]
push eax
call fcn.00421011
lea eax, [ebp + 0x14564]
push 0x43c9f0
push eax
call fcn.00421bbb
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x14564]
push eax
call fcn.00421bbb
push esi
call fcn.00406c58
add esp, 0x20
test eax, eax
jne 0x412e11
push 1
lea eax, [ebp + 0x14564]
push eax
push str.delete_file_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14564]
push eax
lea ecx, [ebp + 0x2c0]
call fcn.004062e4
mov byte [ebp - 4], 0x21
lea eax, [ebp + 0x2c0]
push eax
call fcn.0040ed8e
pop ecx
mov byte [ebp - 4], 0x1f
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
lea eax, [ebp]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x412d8a
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x40]
call fcn.004032a3
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 0x22
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x20019
push str.SoftwareThunder_NetworkGameXLGameBox
push SysReAllocStringLen
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x24], 0x800
call fcn.00403318
cmp eax, ebx
jne 0x412f31
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x14974]
push eax
push str.Path
lea ecx, [ebp - 0x54]
call fcn.00403391
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412f08
push 1
lea eax, [ebp + 0x14974]
push eax
push str._XmpSetup_Full_GameBox_Path:
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14974]
push eax
call fcn.0041f168
pop ecx
test eax, eax
jbe 0x412f31
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x412f31
mov dword [ebp - 0x1c], 1
xor eax, eax
push edi
mov word [ebp + 0x1476c], ax
lea eax, [ebp + 0x1476e]
push ebx
push eax
mov dword [ebp - 0x3c], ebx
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x1476c]
push eax
push str._OldVersionCoreDir_xar_appminibox.xar
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x412f9c
push 1
lea eax, [ebp + 0x1476c]
push eax
push str._XmpSetup_Old_GameBox_Path:
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x412fb4
mov dword [ebp - 0x3c], 1
push ebx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], ebx
call fcn.00407540
mov byte [ebp - 4], 0x23
mov dword [esp], str.XLGameBoxProgramXLGameBox.exe
push eax
lea eax, [ebp + 0x2c0]
push eax
call fcn.00406973
add esp, 0xc
mov byte [ebp - 4], 0x25
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.004048ea
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x413030
cmp dword [ebp + 0x2d8], 8
mov eax, dword [ebp + 0x2c4]
jae 0x41300a
lea eax, [ebp + 0x2c4]
push 1
push eax
push str._XmpSetup_New_GameBox_Path:
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
cmp dword [ebp + 0x2d8], 8
mov eax, dword [ebp + 0x2c4]
jae 0x413045
lea eax, [ebp + 0x2c4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x413057
mov dword [ebp - 0x18], 1
cmp dword [ebp - 0x1c], ebx
jne 0x413077
cmp dword [ebp - 0x3c], ebx
jne 0x413077
cmp dword [ebp - 0x18], ebx
jne 0x413077
push 0x43ede4
push str.XS_XLGB_Install
call fcn.0040d72a
pop ecx
pop ecx
mov byte [ebp - 4], 0x22
push ebx
push 1
lea ecx, [ebp + 0x2c0]
call fcn.004048ea
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x54]
call fcn.004032a3
xor eax, eax
push edi
mov word [ebp + 0x1376c], ax
lea eax, [ebp + 0x1376e]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1376c]
push eax
call fcn.00410475
add esp, 0x10
cmp eax, 1
jne 0x413766
lea eax, [ebp + 0x1376c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor eax, eax
push 0xfffe
mov word [ebp + 0x2dc], ax
lea eax, [ebp + 0x2de]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x8000
lea eax, [ebp + 0x2dc]
push eax
push str.Path
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [ebp + 0x1376c]
push eax
lea eax, [ebp + 0x2dc]
push eax
push str._s__s
push 0x8000
push eax
call fcn.00420a64
add esp, 0x14
lea eax, [ebp + 0x2dc]
push eax
push str.Path
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
xor eax, eax
push edi
mov word [ebp + 0x1476c], ax
lea eax, [ebp + 0x1476e]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push edi
mov word [ebp + 0x13e4c], ax
lea eax, [ebp + 0x13e4e]
push ebx
push eax
call fcn.00420d30
add esp, 0x18
push 0x104
lea eax, [ebp + 0x13e4c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
push edi
mov word [ebp + 0x48], ax
lea eax, [ebp + 0x4a]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x13e4c]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.00421be9
add esp, 0x14
push str...XmpSetupXar.ini
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp + 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41361f
mov dword [ebp - 0x18], str..zlib1.dll
mov dword [ebp - 0x1c], 9
push 0x104
lea eax, [ebp + 0x13e4c]
push eax
lea eax, [ebp + 0x1476c]
push eax
call fcn.00421011
add esp, 0xc
push str.........debugProgram
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push dword [ebp - 0x18]
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x413244
push 1
lea eax, [ebp + 0x1476c]
push eax
push str._XmpSetup_pre_load_dll_path
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x1476c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push esi
mov dword [ebp - 0x24], eax
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4132a1
push 1
lea eax, [ebp + 0x1476c]
push eax
push str.__path
push dword [ebp - 0x24]
push str._XmpSetup_after_load_dll_hModule_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401441
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
add dword [ebp - 0x18], 0x208
dec dword [ebp - 0x1c]
jne 0x4131d0
xor eax, eax
push edi
mov word [ebp + 0x14564], ax
lea eax, [ebp + 0x14566]
push ebx
push eax
call fcn.00420d30
xor eax, eax
push edi
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
add esp, 0x18
push 0x104
lea eax, [ebp + 0x1435c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1435c]
push eax
lea eax, [ebp + 0x14974]
push eax
call fcn.00421be9
add esp, 0x14
push str...XmpSetupXar.ini
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4133d1
push 0x104
lea eax, [ebp + 0x1435c]
push eax
lea eax, [ebp + 0x14564]
push eax
call fcn.00421011
add esp, 0xc
push str...SetupUI_
lea eax, [ebp + 0x14564]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.SetupReal.dll
lea eax, [ebp + 0x14564]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4133bf
push 1
lea eax, [ebp + 0x14564]
push eax
push str.Try_Load_SetupReal.dll_full_path
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14564]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x44f208], eax
cmp dword [0x44f208], ebx
jne 0x4134ab
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1376c]
push eax
lea eax, [ebp + 0x14974]
push eax
call fcn.00421be9
add esp, 0x14
push str..SetupReal.dll
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x413453
push 1
lea eax, [ebp + 0x14974]
push eax
push str._XmpSetup_Try_Load_SetupReal.dll_full_path
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x44f208], eax
cmp eax, ebx
je 0x4136db
cmp eax, 0x10000000
jne 0x4134ab
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4134ab
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._XmpSetup_Load_SetupReal.dll_returns_0x10000000_and_lasterror_
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040b982
push str.StartUI
push dword [0x44f208]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.EndUI
push dword [0x44f208]
mov dword [0x44f20c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x44f210], eax
cmp dword [0x44f20c], ebx
je 0x413712
xor eax, eax
push edi
mov word [ebp + 0x1435c], ax
lea eax, [ebp + 0x1435e]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
push 0x104
lea eax, [ebp + 0x1435c]
push eax
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
push edi
mov word [ebp + 0x14564], ax
lea eax, [ebp + 0x14566]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1435c]
push eax
lea eax, [ebp + 0x14564]
push eax
call fcn.00421be9
add esp, 0x14
push str...XmpSetupXar.ini
lea eax, [ebp + 0x14564]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
xor eax, eax
push edi
mov word [ebp + 0x13974], ax
lea eax, [ebp + 0x13976]
push ebx
push eax
call fcn.00420d30
add esp, 0xc
lea eax, [ebp + 0x14564]
push eax
push 0x104
lea eax, [ebp + 0x13974]
push eax
push str.........code_srcXmpSetup
push str.Default
push 0x441a28
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x441224
lea eax, [ebp + 0x14564]
push eax
call edi
lea eax, [ebp + 0x13974]
push eax
lea eax, [ebp + 0x14564]
push eax
call edi
lea edi, [ebp + 0x14564]
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4135d0
lea edi, [ebp + 0x1376c]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x413601
push 1
push edi
push str.XmpSetup:_Skin_Dir:
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
push dword [ebp - 0x58]
push dword [0x44f204]
push edi
call dword [0x44f20c]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
add esp, 0xc
jmp 0x413733
mov dword [ebp - 0x3c], 0x44f214
mov dword [ebp - 0x18], str..zlib1.dll
mov dword [ebp - 0x1c], ebx
xor eax, eax
push edi
mov word [ebp + 0x14974], ax
lea eax, [ebp + 0x14976]
push ebx
push eax
call fcn.00420d30
lea eax, [ebp + 0x1376c]
push eax
lea eax, [ebp + 0x14974]
push eax
call fcn.00421be9
add esp, 0x14
push dword [ebp - 0x18]
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x4136a4
push 1
lea eax, [ebp + 0x14974]
push eax
push 0x4419f4
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.004014be
mov ecx, eax
call fcn.0040b982
lea eax, [ebp + 0x14974]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
je 0x4136db
mov ecx, dword [ebp - 0x3c]
add dword [ebp - 0x3c], 4
mov dword [ecx], eax
mov eax, 0x208
add dword [ebp - 0x1c], eax
add dword [ebp - 0x18], eax
cmp dword [ebp - 0x1c], 0x1248
jb 0x413630
jmp 0x4132b1
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x413712
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._XmpSetup_pre_load_dll_failed__GetLastError
push ebx
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040b982
push 0x4419b0
jmp 0x41376b
lea eax, [ebp - 0xd4]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0xd4]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push ebx
push ebx
lea eax, [ebp - 0xd4]
push eax
call esi
test eax, eax
jne 0x413719
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x34]
call fcn.004032a3
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp + 0x288]
call fcn.004048ea
jmp 0x410e35
push 0x44199c
call fcn.0040f91a
push dword [ebp - 0x2c]
call fcn.0040eead
pop ecx
pop ecx
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x34]
call fcn.004032a3
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp + 0x288]
call fcn.004048ea
push 0xfffffffffffffffd
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x14c24]
xor ecx, ebp
call fcn.0041effe
add ebp, 0x14c28
leave
ret 0x10