Function at 0x41b060
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Manipulate boot configuration

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x454d1d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x54dc
call fcn.00432ed0
mov eax, dword [0x46c3ac]
mov dword [esp + 0x54d8], eax
push ebx
push esi
push edi
mov edx, ecx
mov dword [esp + 0x10], edx
xor eax, eax
xor ebx, ebx
mov word [esp + 0xe68], bx
mov ecx, 0x81
lea edi, [esp + 0xe6a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x1278], bx
mov ecx, 0x81
lea edi, [esp + 0x127a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0xa58], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0xa5a]
rep stosd dword es:[edi], eax
mov dword [edx + 0x24], ebx
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x28c]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp esi, eax
mov dword [esp + 0x14], ebx
je 0x41b183
jmp 0x41b110
mov edi, dword [esi + 0x1c]
lea ecx, [esp + 0xe68]
push ecx
push str.ItemSelect
mov ecx, edi
call fcn.0041e490
cmp eax, ebx
je 0x41b167
lea edx, [esp + 0xe68]
push str.false
push edx
call fcn.00432272
add esp, 8
test eax, eax
je 0x41b167
push str.ItemCabNum
mov ecx, edi
call fcn.0041e570
cmp eax, ebx
je 0x41b167
push eax
call fcn.004339fe
mov ecx, dword [esp + 0x18]
add esp, 4
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [0x46d488]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x28c]
mov edx, dword [eax + 0xc]
add eax, 4
add esi, 0x20
cmp esi, edx
jne 0x41b110
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x4c8], edx
mov eax, dword [0x46d488]
mov ecx, dword [eax + 8]
mov cx, word [ecx + 0x4c8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x1c]
movzx edx, cx
shl edx, 0x10
or edx, 1
push edx
push ebx
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x20]
call fcn.00404370
lea ecx, [esp + 0x20]
mov dword [esp + 0x54f4], ebx
call fcn.00413da0
xor eax, eax
mov word [esp + 0x3910], bx
mov ecx, 0x81
lea edi, [esp + 0x3912]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x3f28], bx
mov ecx, 0x81
lea edi, [esp + 0x3f2a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x648], bx
mov ecx, 0x81
lea edi, [esp + 0x64a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x1688], bx
mov ecx, 0x81
lea edi, [esp + 0x168a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x4d10], bx
xor eax, eax
mov ecx, 0xf9
lea edi, [esp + 0x4d12]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
stosw word es:[edi], ax
call fcn.0041ae90
mov edx, dword [0x46d488]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 0x28c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp ecx, eax
mov dword [esp + 0x28], ecx
je 0x41c74f
mov esi, dword [ecx + 0x1c]
mov edi, dword [esp + 0x10]
lea edx, [esp + 0xe68]
push edx
push str.ItemSelect
mov ecx, esi
mov dword [edi], esi
call fcn.0041e490
cmp eax, ebx
je 0x41c725
lea eax, [esp + 0xe68]
push str.false
push eax
call fcn.00432272
add esp, 8
test eax, eax
je 0x41c725
lea ecx, [esp + 0x3910]
push ecx
push str.ItemName
mov ecx, esi
call fcn.0041e490
cmp eax, ebx
je 0x41c725
mov ecx, esi
call fcn.0041f180
cmp eax, ebx
je 0x41c725
lea edx, [esp + 0x648]
push edx
push str.ItemExeUser
mov ecx, esi
call fcn.0041e490
cmp eax, ebx
je 0x41c725
lea eax, [esp + 0x3f28]
push eax
push str.ItemSoftPath
mov ecx, esi
call fcn.0041e490
cmp eax, ebx
je 0x41c725
mov ecx, dword [0x46d488]
call fcn.0040c720
add eax, 0x278
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x168c]
push ecx
call fcn.004323fb
lea edx, [esp + 0x3f30]
push edx
lea eax, [esp + 0x1694]
push eax
call fcn.004323d1
lea ecx, [esp + 0x1698]
push str.delboot.ini
push ecx
call fcn.004323d1
add esp, 0x18
lea edx, [esp + 0x1688]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41c837
lea eax, [esp + 0xa58]
push eax
push str.ItemUserMbVer
mov ecx, esi
call fcn.0041e490
lea ecx, [esp + 0x1278]
push ecx
push str.ItemSoft
mov ecx, esi
call fcn.0041e490
push str.ItemIsKillExe
mov ecx, esi
call fcn.0041e570
lea edx, [esp + 0x648]
push str.true
push edx
mov edi, eax
call fcn.00432272
add esp, 8
cmp edi, ebx
je 0x41b42f
test eax, eax
jne 0x41b43e
push str.true
push edi
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b422
push 0x45ac38
mov ecx, esi
call fcn.0041e570
cmp eax, ebx
je 0x41b433
mov ecx, dword [0x46d488]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040c470
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
call fcn.0041f180
jmp 0x41b43e
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], 1
jmp 0x41b43e
test eax, eax
jne 0x41b43e
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], 1
mov ecx, esi
call fcn.0041e990
cmp eax, ebx
je 0x41c725
lea ecx, [esp + 0x1278]
push str.wnime
push ecx
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b5a8
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b710
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b710
push str.ItemOldInstallPath
mov ecx, esi
call fcn.0041e570
push str.ItemMbToolExe
mov ecx, esi
mov ebx, eax
call fcn.0041e570
test ebx, ebx
mov dword [esp + 0x1c], eax
je 0x41b710
test eax, eax
je 0x41b710
mov word [esp + 0x30f0], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x30f2]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x30f0]
push ebx
push edx
stosw word es:[edi], ax
call fcn.004323d1
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x30fc]
push ecx
call fcn.004323d1
add esp, 0x10
lea edx, [esp + 0x30f0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41b710
xor eax, eax
mov word [esp + 0x1ca0], 0
mov ecx, 0x81
lea edi, [esp + 0x1ca2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x1ca0]
push 0x45ac34
push eax
call fcn.004323d1
lea ecx, [esp + 0x30f8]
push ecx
lea edx, [esp + 0x1cac]
push edx
call fcn.004323d1
lea eax, [esp + 0x1cb0]
push str.__ExportUserMb
push eax
call fcn.004323d1
mov ecx, dword [0x46d488]
add esp, 0x18
push 0
push str.ck_W
call fcn.0040c860
lea ecx, [esp + 0x1ca0]
push ecx
jmp 0x41b6fe
lea edx, [esp + 0x1278]
push str.wnwg
push edx
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b710
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b710
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41b710
push str.ItemOldInstallPath
mov ecx, esi
call fcn.0041e570
push str.ItemMbToolExe
mov ecx, esi
mov ebx, eax
call fcn.0041e570
test ebx, ebx
mov dword [esp + 0x1c], eax
je 0x41b710
test eax, eax
je 0x41b710
xor eax, eax
mov word [esp + 0x1890], 0
mov ecx, 0x81
lea edi, [esp + 0x1892]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x1890]
push ebx
push eax
call fcn.004323d1
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x189c]
push edx
call fcn.004323d1
add esp, 0x10
lea eax, [esp + 0x1890]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41b710
mov word [esp + 0x20b0], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x20b2]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x20b0]
push 0x45ac34
push ecx
stosw word es:[edi], ax
call fcn.004323d1
lea edx, [esp + 0x1898]
push edx
lea eax, [esp + 0x20bc]
push eax
call fcn.004323d1
lea ecx, [esp + 0x20c0]
push str.__ExportUserMb
push ecx
call fcn.004323d1
mov ecx, dword [0x46d488]
add esp, 0x18
push 0
push 0x45abb4
call fcn.0040c860
lea edx, [esp + 0x20b0]
push edx
mov ecx, dword [0x46d488]
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
mov edi, dword [esp + 0x10]
push esi
mov ecx, edi
call fcn.0041aa10
test eax, eax
je 0x41c8cd
lea eax, [esp + 0x1278]
push str.wnime
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41bd1c
mov ecx, dword [0x46d488]
call fcn.0040c720
add eax, 0x278
mov eax, dword [eax]
push str.wnime
push eax
mov ecx, edi
call fcn.00418c50
push str.ItemSaveUserCfg
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
je 0x41b786
push esi
mov ecx, edi
call fcn.0041a4c0
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
je 0x41b7ac
push esi
mov ecx, edi
call fcn.0041a6d0
xor eax, eax
xor ebx, ebx
mov word [esp + 0x850], bx
mov ecx, 0x81
lea edi, [esp + 0x852]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x440], bx
mov ecx, 0x81
lea edi, [esp + 0x442]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x238], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x23a]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
call fcn.00403f60
push eax
lea ecx, [esp + 0x23c]
push ecx
call fcn.004323fb
lea edx, [esp + 0x240]
push edx
lea eax, [esp + 0x44c]
push eax
call fcn.004323fb
lea ecx, [esp + 0x450]
push str.wnimemb_
push ecx
call fcn.004323d1
lea edx, [esp + 0x250]
push edx
lea eax, [esp + 0x86c]
push eax
call fcn.004323fb
lea ecx, [esp + 0x870]
push str.wnimembTmp_
push ecx
call fcn.004323d1
add esp, 0x28
lea ecx, [esp + 0x14]
call fcn.00404370
lea edx, [esp + 0x648]
push str.true
push edx
mov byte [esp + 0x54fc], 1
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41bae5
lea eax, [esp + 0x238]
push str.wnimembTmp_
push eax
call fcn.004323d1
lea ecx, [esp + 0x240]
push str.UserMB.ini
push ecx
call fcn.004323d1
add esp, 0x10
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41ba58
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
je 0x41bd00
mov word [esp + 0x3500], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x3502]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x27c
call fcn.0040bc30
push eax
lea edx, [esp + 0x3504]
push edx
call fcn.004323d1
lea eax, [esp + 0x3508]
push str.wnimeWnMbTool.exe
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x3500]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41b9f2
mov word [esp + 0x32f8], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x32fa]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x32f8]
push 0x45ac34
push edx
stosw word es:[edi], ax
call fcn.004323d1
lea eax, [esp + 0x3508]
push eax
lea ecx, [esp + 0x3304]
push ecx
call fcn.004323d1
lea edx, [esp + 0x3308]
push str.__ImportUserMb_1
push edx
call fcn.004323d1
mov ecx, dword [0x46d488]
add esp, 0x18
push ebx
push 0x45aaf0
call fcn.0040c860
mov ecx, dword [0x46d488]
lea eax, [esp + 0x32f8]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
lea ecx, [esp + 0x238]
push ecx
lea edx, [esp + 0xa5c]
push edx
push str.UserMbVer
push str.Struct
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push ecx
lea eax, [esp + 0x444]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00403a80
push ecx
lea edx, [esp + 0x858]
mov ecx, esp
mov dword [esp + 0x34], esp
mov byte [esp + 0x54fc], 2
push edx
call fcn.00403a80
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x54fc], 1
call fcn.00419fc0
jmp 0x41bd00
lea eax, [esp + 0x850]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41ba84
lea ecx, [esp + 0x850]
push ecx
mov ecx, dword [0x46d488]
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
lea edx, [esp + 0x238]
push edx
lea eax, [esp + 0xa5c]
push eax
push str.UserMbVer
push str.Struct
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [esp + 0x850]
push ecx
lea ecx, [esp + 0x18]
call fcn.00403160
push ecx
lea edx, [esp + 0x444]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00403a80
push ecx
lea eax, [esp + 0x858]
mov ecx, esp
mov dword [esp + 0x24], esp
mov byte [esp + 0x54fc], 3
push eax
jmp 0x41ba3d
lea ecx, [esp + 0x238]
push str.wnimemb_
push ecx
call fcn.004323d1
add esp, 8
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41bc76
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41bcb7
mov ecx, dword [esp + 0x10]
push esi
call fcn.0041a6d0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea edx, [esp + 0x440]
push edx
call ebx
test eax, eax
jne 0x41bb76
mov ecx, dword [0x46d488]
lea eax, [esp + 0x440]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
lea ecx, [esp + 0x440]
push ecx
lea ecx, [esp + 0x18]
call fcn.00403160
mov word [esp + 0x26c8], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x26ca]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea edx, [esp + 0x26cc]
push edx
call fcn.004323d1
lea eax, [esp + 0x26d0]
push str.wnimeWnMBTool.exe
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x26c8]
push ecx
call ebx
test eax, eax
je 0x41bcbd
mov word [esp + 0x2ee8], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x2eea]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x2ee8]
push 0x45ac34
push edx
stosw word es:[edi], ax
call fcn.004323d1
lea eax, [esp + 0x26d0]
push eax
lea ecx, [esp + 0x2ef4]
push ecx
call fcn.004323d1
lea edx, [esp + 0x2ef8]
push str.__ImportUserMb
push edx
call fcn.004323d1
mov ecx, dword [0x46d488]
add esp, 0x18
push 0
push 0x45aaf0
call fcn.0040c860
mov ecx, dword [0x46d488]
lea eax, [esp + 0x2ee8]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
jmp 0x41bcbd
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [esp + 0x440]
push ecx
call ebx
test eax, eax
jne 0x41bca4
mov ecx, dword [0x46d488]
lea edx, [esp + 0x440]
push edx
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0x440]
push eax
lea ecx, [esp + 0x18]
call fcn.00403160
jmp 0x41bcbd
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [esp + 0x238]
push ecx
call ebx
test eax, eax
je 0x41bd00
lea edx, [esp + 0x238]
push str.UserMB.ini
push edx
call fcn.004323d1
add esp, 8
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0xa5c]
push ecx
push str.UserMbVer
push str.Struct
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.00418d90
push esi
mov ecx, edi
call fcn.00419800
lea ecx, [esp + 0x14]
jmp 0x41c564
lea edx, [esp + 0x1278]
push str.wnwg
push edx
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41c575
mov ecx, dword [0x46d488]
call fcn.0040c720
add eax, 0x278
mov eax, dword [eax]
push str.wnwg
push eax
mov ecx, edi
call fcn.00418c50
push str.ItemSaveUserCfg
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
je 0x41bd83
push esi
mov ecx, edi
call fcn.0041a4c0
jmp 0x41bf85
mov ecx, dword [0x46d488]
call fcn.0040c720
add eax, 0x2a8
push eax
lea eax, [esp + 0x2adc]
push eax
call fcn.004323fb
mov ecx, dword [0x46d488]
add esp, 8
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea ecx, [esp + 0x370c]
push ecx
call fcn.004323fb
mov ecx, dword [0x46d488]
add esp, 8
call fcn.0040c720
mov ecx, eax
add ecx, 0x27c
call fcn.0040bc30
push eax
lea edx, [esp + 0x433c]
push edx
call fcn.004323fb
lea eax, [esp + 0x2ae0]
push str.wnwgconfigResConfig.ini
push eax
call fcn.004323d1
lea ecx, [esp + 0x3718]
push str.wnwgconfigResConfig.ini
push ecx
call fcn.004323d1
lea edx, [esp + 0x4350]
push str.wnwgconfigResConfig.ini
push edx
call fcn.004323d1
lea eax, [esp + 0x668]
push str.true
push eax
call fcn.00432272
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x28
test eax, eax
jne 0x41beea
lea ecx, [esp + 0x3708]
push ecx
call ebx
test eax, eax
jne 0x41bf85
lea edx, [esp + 0x2ad8]
push edx
call ebx
test eax, eax
je 0x41bf85
mov ecx, dword [0x46d488]
call fcn.0040c720
mov ecx, eax
add ecx, 0x27c
call fcn.0040bc30
push eax
lea eax, [esp + 0xc64]
push eax
call fcn.004323fb
lea ecx, [esp + 0xc68]
push str.wnwgconfig_
push ecx
call fcn.004323d1
add esp, 0x10
lea edx, [esp + 0xc60]
push edx
call ebx
test eax, eax
jne 0x41bed3
mov ecx, dword [0x46d488]
lea eax, [esp + 0xc60]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
push 0
lea ecx, [esp + 0x433c]
push ecx
lea edx, [esp + 0x2ae0]
push edx
jmp 0x41bf7f
lea eax, [esp + 0x3708]
push eax
call ebx
test eax, eax
jne 0x41bf85
lea ecx, [esp + 0x2ad8]
push ecx
call ebx
test eax, eax
je 0x41bf85
mov ecx, dword [0x46d488]
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea edx, [esp + 0xc64]
push edx
call fcn.004323fb
lea eax, [esp + 0xc68]
push str.wnwgconfig_
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0xc60]
push ecx
call ebx
test eax, eax
jne 0x41bf6d
mov ecx, dword [0x46d488]
lea edx, [esp + 0xc60]
push edx
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
push 0
lea eax, [esp + 0x370c]
push eax
lea ecx, [esp + 0x2ae0]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
mov ebx, eax
push str.true
push ebx
call fcn.00432272
add esp, 8
test eax, eax
je 0x41bfad
push esi
mov ecx, edi
call fcn.0041a6d0
xor edx, edx
xor eax, eax
mov word [esp + 0x1070], dx
mov ecx, 0x81
lea edi, [esp + 0x1072]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x30], dx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x32]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x648]
push str.true
push edx
stosw word es:[edi], ax
call fcn.00432272
mov ecx, dword [0x46d488]
add esp, 8
test eax, eax
jne 0x41c016
call fcn.0040c720
mov ecx, eax
add ecx, 0x27c
call fcn.0040bc30
push eax
lea eax, [esp + 0x34]
push eax
jmp 0x41c02e
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004323fb
add esp, 8
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x1074]
push eax
call fcn.004323fb
lea ecx, [esp + 0x1078]
push str.wnwgusr_mb_
push ecx
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x18]
call fcn.00404370
lea edx, [esp + 0x648]
push str.true
push edx
mov byte [esp + 0x54fc], 4
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41c2bc
push str.false
push str.ItemIsRun
mov ecx, esi
call fcn.0041e950
lea eax, [esp + 0x30]
push str.wnwgusr_mb_
push eax
call fcn.004323d1
lea ecx, [esp + 0x38]
push str.UserMB.ini
push ecx
call fcn.004323d1
push str.true
push ebx
call fcn.00432272
add esp, 0x18
test eax, eax
jne 0x41c1dc
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
xor ebx, ebx
mov word [esp + 0x22b8], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x22ba]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x27c
call fcn.0040bc30
push eax
lea edx, [esp + 0x22bc]
push edx
call fcn.004323d1
lea eax, [esp + 0x22c0]
push str.wnwgwnMBManager.exe
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x22b8]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41c1ca
mov word [esp + 0x24c0], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x24c2]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x24c0]
push 0x45ac34
push edx
stosw word es:[edi], ax
call fcn.004323d1
lea eax, [esp + 0x22c0]
push eax
lea ecx, [esp + 0x24cc]
push ecx
call fcn.004323d1
lea edx, [esp + 0x24d0]
push str.__ImportUserMb_1
push edx
call fcn.004323d1
mov ecx, dword [0x46d488]
add esp, 0x18
push ebx
push 0x45a9cc
call fcn.0040c860
mov ecx, dword [0x46d488]
lea eax, [esp + 0x24c0]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xa5c]
push edx
jmp 0x41c53d
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xa5c]
push ecx
push str.UserMbVer
push str.Struct
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor ebx, ebx
mov word [esp + 0x28d0], bx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x28d2]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea edx, [esp + 0x28d4]
push edx
call fcn.004323d1
lea eax, [esp + 0x28d8]
push str.wnwgwnMBManager.exe
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x28d0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41c54d
xor eax, eax
mov word [esp + 0x4130], bx
mov ecx, 0x81
lea edi, [esp + 0x4132]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x28d0]
push edx
stosw word es:[edi], ax
lea eax, [esp + 0x4134]
push str.__s__InitBuildFile_1
push eax
call fcn.004322a4
add esp, 0xc
lea ecx, [esp + 0x4130]
push ecx
mov ecx, dword [0x46d488]
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
jmp 0x41c54d
lea edx, [esp + 0x30]
push str.wnwgusr_mb_
push edx
call fcn.004323d1
add esp, 8
push str.ItemSaveUserMb
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41c438
push str.ItemModifyUserMbVer
mov ecx, esi
call fcn.0041e570
push str.true
push eax
call fcn.00432272
add esp, 8
test eax, eax
jne 0x41c318
mov ecx, dword [esp + 0x10]
push esi
call fcn.0041a6d0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x1070]
push eax
call ebx
test eax, eax
jne 0x41c33b
push eax
lea ecx, [esp + 0x1074]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov word [esp + 0x1480], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x1482]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea edx, [esp + 0x1484]
push edx
call fcn.004323d1
lea eax, [esp + 0x1488]
push str.wnwgwnMBManager.exe
push eax
call fcn.004323d1
add esp, 0x10
lea ecx, [esp + 0x1480]
push ecx
call ebx
test eax, eax
je 0x41c513
xor edx, edx
xor eax, eax
mov word [esp + 0x4720], dx
mov ecx, 0x81
lea edi, [esp + 0x4722]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x3b18], dx
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x3b1a]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x1480]
push edx
stosw word es:[edi], ax
lea eax, [esp + 0x4724]
push str.__s__InitBuildFile
push eax
call fcn.004322a4
lea ecx, [esp + 0x148c]
push ecx
lea edx, [esp + 0x3b28]
push str.__s__ImportUserMb
push edx
call fcn.004322a4
mov ecx, dword [0x46d488]
add esp, 0x18
lea eax, [esp + 0x4720]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
lea ecx, [esp + 0x3b18]
push ecx
jmp 0x41c501
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea edx, [esp + 0x1070]
push edx
call ebx
test eax, eax
jne 0x41c45b
push eax
lea eax, [esp + 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov word [esp + 0x2ce0], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x2ce2]
rep stosd dword es:[edi], eax
mov ecx, dword [0x46d488]
stosw word es:[edi], ax
call fcn.0040c720
mov ecx, eax
add ecx, 0x278
call fcn.0040bc30
push eax
lea ecx, [esp + 0x2ce4]
push ecx
call fcn.004323d1
lea edx, [esp + 0x2ce8]
push str.wnwgwnMBManager.exe
push edx
call fcn.004323d1
add esp, 0x10
lea eax, [esp + 0x2ce0]
push eax
call ebx
test eax, eax
je 0x41c513
mov word [esp + 0x3d20], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x3d22]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x2ce0]
push ecx
lea edx, [esp + 0x3d24]
push str.__s__InitBuildFile
push edx
stosw word es:[edi], ax
call fcn.004322a4
add esp, 0xc
lea eax, [esp + 0x3d20]
push eax
mov ecx, dword [0x46d488]
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
lea ecx, [esp + 0x30]
push ecx
call ebx
test eax, eax
je 0x41c54d
lea edx, [esp + 0x30]
push str.UserMB.ini
push edx
call fcn.004323d1
add esp, 8
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xa5c]
push ecx
push str.UserMbVer
push str.Struct
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.00418f40
push esi
mov ecx, edi
call fcn.00419800
lea ecx, [esp + 0x18]
mov byte [esp + 0x54f4], 0
call fcn.00403f30
mov edi, dword [esp + 0x10]
push esi
mov ecx, edi
call fcn.004191b0
lea edx, [esp + 0x1278]
push str.wnwg
push edx
call fcn.00432272
add esp, 8
xor ebx, ebx
test eax, eax
jne 0x41c665
mov word [esp + 0x1a98], bx
mov ecx, 0x81
lea edi, [esp + 0x1a9a]
rep stosd dword es:[edi], eax
push str.ItemInstallPath
mov ecx, esi
stosw word es:[edi], ax
call fcn.0041e570
push eax
lea eax, [esp + 0x1a9c]
push eax
call fcn.004323d1
lea ecx, [esp + 0x1aa0]
push str.wnwgwnMBManager.exe
push ecx
call fcn.004323d1
add esp, 0x10
lea edx, [esp + 0x1a98]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41c665
xor eax, eax
mov word [esp + 0x1ea8], bx
mov ecx, 0x81
lea edi, [esp + 0x1eaa]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x1ea8]
push 0x45ac34
push eax
call fcn.004323d1
lea ecx, [esp + 0x1aa0]
push ecx
lea edx, [esp + 0x1eb4]
push edx
call fcn.004323d1
lea eax, [esp + 0x1eb8]
push str.__RestoreOldVersion_0
push eax
call fcn.004323d1
add esp, 0x18
lea ecx, [esp + 0x1ea8]
push ecx
mov ecx, dword [0x46d488]
call fcn.0040c710
mov ecx, eax
call fcn.0040b8c0
push str.ItemImeName
mov ecx, esi
call fcn.0041e700
test eax, eax
je 0x41c6c1
lea ecx, [esp + 0x24]
call fcn.00404370
lea edx, [esp + 0x648]
push str.true
push edx
mov byte [esp + 0x54fc], 5
call fcn.00432272
add esp, 8
test eax, eax
lea ecx, [esp + 0x24]
push esi
jne 0x41c6ab
call fcn.0040db20
jmp 0x41c6b0
call fcn.0040d630
lea ecx, [esp + 0x24]
mov byte [esp + 0x54f4], 0
call fcn.00403f30
xor eax, eax
mov word [esp + 0x4928], bx
mov ecx, 0x81
lea edi, [esp + 0x492a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x4928]
push eax
push str.ItemName
mov ecx, esi
call fcn.0041e490
cmp eax, ebx
je 0x41c725
lea ecx, [esp + 0x4928]
push ecx
lea edx, [esp + 0x4d14]
push 0x45a914
push edx
call fcn.004322a4
mov ecx, dword [0x46d488]
add esp, 0xc
push 0
lea eax, [esp + 0x4d14]
push eax
call fcn.0040c860
mov edx, dword [0x46d488]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x28c]
mov ecx, dword [esp + 0x28]
mov esi, dword [eax + 0xc]
add eax, 4
add ecx, 0x20
xor ebx, ebx
cmp ecx, esi
mov dword [esp + 0x28], ecx
jne 0x41b281
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x28c]
mov esi, dword [eax + 8]
cmp esi, dword [eax + 0xc]
je 0x41c7ba
mov edi, dword [esi + 0x1c]
lea ecx, [esp + 0xe68]
push ecx
push str.ItemSelect
mov ecx, edi
call fcn.0041e490
cmp eax, ebx
je 0x41c79e
lea edx, [esp + 0xe68]
push str.false
push edx
call fcn.00432272
add esp, 8
test eax, eax
je 0x41c79e
mov ecx, dword [esp + 0x10]
push edi
call fcn.004194f0
mov edx, dword [0x46d488]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x28c]
mov ecx, dword [eax + 0xc]
add eax, 4
add esi, 0x20
cmp esi, ecx
jne 0x41c760
mov word [esp + 0x50f8], bx
xor eax, eax
mov ecx, 0xf9
lea edi, [esp + 0x50fa]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [edx + 0x20]
call fcn.0041d6b0
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x24], ebx
je 0x41ca67
mov edx, dword [0x46d488]
mov eax, dword [edx + 8]
mov esi, dword [eax + 0x278]
add eax, 0x278
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
sub esi, 0x10
mov dword [esp + 0x30], esp
mov dword [esp + 0x1c], esp
call dword [eax + 0x10]
mov edx, dword [esi + 0xc]
cmp edx, ebx
lea ecx, [esi + 0xc]
jl 0x41c8fe
cmp eax, dword [esi]
jne 0x41c8fe
mov eax, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c933
lea ecx, [esp + 0x1688]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [esp + 0x3910]
push edx
lea eax, [esp + 0x433c]
push 0x45a8d0
push eax
call fcn.004322a4
add esp, 0xc
push ebx
lea ecx, [esp + 0x433c]
push ecx
mov ecx, dword [0x46d488]
call fcn.0040c860
lea edx, [esp + 0x3910]
push edx
lea eax, [esp + 0x433c]
push 0x45a870
push eax
call fcn.004322a4
mov eax, dword [0x46d488]
mov ecx, dword [eax + 8]
add esp, 0xc
push 1
add ecx, 4
push ecx
mov ecx, dword [eax + 0x2c]
lea edx, [esp + 0x4340]
push edx
call fcn.00448337
cmp eax, 1
jne 0x41c8bd
mov ecx, edi
call fcn.00418bd0
mov eax, dword [0x46d488]
mov eax, dword [eax + 0x2c]
cmp eax, ebx
je 0x41c8ec
push ebx
push ebx
jmp 0x41c8dd
mov eax, dword [0x46d488]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x41c8ec
push 0
push 0
mov ecx, dword [eax + 0x1c]
push 0x464
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [0x46d488]
mov dword [edx + 0x40], 1
jmp 0x41cb0b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 2
push ecx
mov ecx, eax
call dword [edx]
cmp eax, ebx
jne 0x41c913
jmp fcn.004032b0
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 4]
inc ecx
add ecx, ecx
mov edx, ecx
shr ecx, 2
add esi, 0x10
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
add eax, 0x10
mov dword [ecx], eax
mov edx, dword [0x46d488]
mov eax, dword [edx + 8]
mov esi, dword [eax + 0x27c]
add eax, 0x27c
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
sub esi, 0x10
mov dword [esp + 0x20], esp
mov byte [esp + 0x54fc], 6
mov dword [esp + 0x20], esp
call dword [eax + 0x10]
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
lea edx, [esi + 0xc]
jl 0x41c987
cmp eax, dword [esi]
jne 0x41c987
mov eax, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c9bc
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 2
push ecx
mov ecx, eax
call dword [edx]
cmp eax, ebx
jne 0x41c99c
jmp fcn.004032b0
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 4]
inc ecx
add ecx, ecx
mov edx, ecx
shr ecx, 2
add esi, 0x10
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
add eax, 0x10
mov dword [ecx], eax
mov ecx, esi
mov byte [esp + 0x54fc], 0
call fcn.00419fc0
cmp eax, ebx
jne 0x41ca6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [esp + 0x50fc]
push 0x45a810
push edx
call fcn.004322a4
mov eax, dword [0x46d488]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 0x4c8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + 0x1c]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
add esp, 0xc
push ebx
push ecx
push 0x402
push edx
call esi
mov eax, dword [0x46d488]
mov ecx, dword [eax + 0x2c]
cmp ecx, ebx
je 0x41ca5b
mov eax, dword [eax + 8]
push ebx
add eax, 4
push eax
lea edx, [esp + 0x5100]
push edx
call fcn.00448337
mov eax, dword [0x46d488]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x1c]
push ebx
push ebx
push 0x464
push ecx
call esi
mov eax, dword [0x46d488]
mov dword [eax + 0x40], 1
jmp 0x41cb0b
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x24], ebx
je 0x41cae0
mov eax, dword [0x46d488]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x4c8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x1c]
push ebx
push ecx
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x46d488]
cmp dword [ecx + 0x2c], ebx
je 0x41cae0
mov edx, dword [esi + 0x2c]
push edx
lea eax, [esp + 0x492c]
push 0x45a7a0
push eax
call fcn.004322a4
mov eax, dword [0x46d488]
mov ecx, dword [eax + 8]
add esp, 0xc
push 1
add ecx, 4
push ecx
mov ecx, dword [eax + 0x2c]
lea edx, [esp + 0x4930]
push edx
call fcn.00448337
cmp eax, 1
jne 0x41cae0
mov ecx, esi
call fcn.00418bd0
mov eax, dword [0x46d488]
mov dword [eax + 0x40], 1
mov ecx, dword [0x46d488]
mov eax, dword [ecx + 0x2c]
cmp eax, ebx
je 0x41cb0b
mov edx, dword [eax + 0x1c]
push ebx
push 1
push 0x464
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x20]
mov dword [esp + 0x54f4], 0xffffffff
call fcn.00403f30
mov ecx, dword [esp + 0x54ec]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x54e4]
call fcn.00431d98
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret