Function at 0x418a60
Capabilities:
Create thread
Delete registry value
Get common file path
Hide graphical window
Link many functions at runtime
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47cf50
mov eax, dword fs:[0]
push eax
sub esp, 0x59c
mov eax, dword [0x4be5b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x10]
xor eax, eax
mov esi, dword [ebp + 8]
push edi
push str.Start_run__cmd___s
mov dword [ebp - 0x56c], edi
mov dword [0x4c021c], esi
mov dword [ebp - 0x584], 0
mov dword [ebp - 0x574], 0
mov dword [ebp - 0x580], 0
mov dword [ebp - 0x568], eax
call fcn.0044e890
add esp, 8
push 0x8007
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x538]
mov dword [ebp - 0x538], 8
push eax
mov dword [ebp - 0x534], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push esi
push 0
mov ecx, 0x4c25c8
call fcn.0040d600
call fcn.004188a0
lea ecx, [ebp - 0x558]
call fcn.00452030
mov eax, dword [0x4c25c0]
mov dword [ebp - 0x560], eax
test eax, eax
jne 0x418b8e
mov esi, dword [0x4c25c4]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x4c25c0], 0
jne 0x418b7c
push 0x4c2644
push 0x34
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x418b75
mov ecx, eax
call fcn.0041a6d0
jmp 0x418b77
xor eax, eax
mov dword [0x4c25c0], eax
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x4c25c0]
mov dword [ebp - 0x560], eax
push edi
mov ecx, eax
call fcn.0041bb80
call fcn.0045f500
mov dword [ebp - 0x550], eax
call fcn.0040d780
test eax, eax
jne 0x418bbc
lea ecx, [ebp - 0x558]
call fcn.00452070
xor edi, edi
jmp 0x41a285
lea eax, [ebp - 0x574]
push eax
call fcn.0040a550
mov eax, dword [eax]
test eax, eax
je 0x418c15
xor ecx, ecx
cmp cx, word [eax]
je 0x418c15
mov dword [ebp - 0x544], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x540], str.SOFTWARELDSGameMaster
mov dword [ebp - 0x53c], str.FROM
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x534], 1
call fcn.0045f500
lea edx, [ebp - 0x544]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov edx, dword [ebp - 0x574]
or edi, 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418c35
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x55c]
push eax
call fcn.004554b0
add esp, 4
call fcn.0040db60
push str.RICHED20.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x574], eax
test eax, eax
jne 0x418cad
push str.load_richedit_fail
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
push str.break_in_load_rich_edit
call fcn.0044e890
add esp, 0x10
mov edx, dword [ebp - 0x55c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x418c9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x558]
call fcn.00452070
xor edi, edi
jmp 0x41a285
xor eax, eax
nop
push 0
inc eax
push str.ShortcutForMobileGame_LinkMainWndClass
mov dword [ebp - 0x554], eax
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x418cdf
push eax
push str.ComputerZLinkMainWndClass
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x418d0b
push 0x360
push 0x360
push 0xcdef
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebp - 0x554]
cmp eax, 0xa
jl 0x418cb0
push 0x210
lea eax, [ebp - 0x530]
push 0
push eax
call fcn.00432c40
add esp, 0xc
lea eax, [ebp - 0x530]
push 0x108
push eax
push dword [0x4c021c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movaps xmm0, xmmword [0x486af0]
xor esi, esi
movups xmmword [ebp - 0x540], xmm0
nop dword [eax]
push 0x210
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00432c40
add esp, 0xc
lea eax, [ebp - 0x220]
push 0
push dword [ebp + esi*4 - 0x540]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a33e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x54c]
mov dword [ebp - 0x54c], eax
lea eax, [ebp - 0x530]
push eax
call fcn.00406bc0
test al, al
jne 0x418de2
lea ecx, [ebp - 0x530]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418dc0
sub ecx, edx
lea eax, [ebp - 0x530]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x54c]
call fcn.00416a50
push 0
push 3
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x54c]
push eax
call fcn.00414250
mov edx, dword [ebp - 0x54c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418e16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc esi
cmp esi, 4
jb 0x418d50
mov eax, dword [0x4c3aec]
test eax, eax
jne 0x418e4c
push 0x4c2644
push 0x10
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x418e45
mov ecx, eax
call fcn.00452090
jmp 0x418e47
xor eax, eax
mov dword [0x4c3aec], eax
mov ecx, eax
call fcn.004523b0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [ebp - 0x560]
mov dword [0x4c24d8], eax
call fcn.0041c480
test eax, eax
je 0x418e9c
lea eax, [ebp - 0x530]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push str.GameMasterTool.Del.exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x418e9c
push str.break_in_del.exe
call fcn.0044e890
add esp, 4
jmp 0x418c80
mov eax, dword [0x4c2638]
test eax, eax
jne 0x418f11
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x418ef1
cmp dword [0x4be27c], 0
je 0x418ef1
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x418ee0
mov ecx, eax
call fcn.0044f9c0
jmp 0x418ee2
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 0
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
push 0x486570
push str.installpkg
push eax
call fcn.00450840
push 0x100
lea eax, [ebp - 0x320]
push 0
push eax
call fcn.00432c40
add esp, 0x18
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x54c], 0
mov dword [ebp - 0x548], 0
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x418fa1
push str.RtlGetNtVersionNumbers
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x418f9a
lea ecx, [ebp - 0x548]
push ecx
lea ecx, [ebp - 0x54c]
push ecx
lea ecx, [ebp - 0x554]
push ecx
call eax
movzx eax, word [ebp - 0x548]
mov dword [ebp - 0x548], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push dword [ebp - 0x54c]
lea eax, [ebp - 0x320]
push dword [ebp - 0x554]
push str.osver__u._u
push 0x80
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
mov eax, dword [0x4c2638]
add esp, 0x14
test eax, eax
jne 0x41903c
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x41901c
cmp dword [0x4be27c], 0
je 0x41901c
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x41900b
mov ecx, eax
call fcn.0044f9c0
jmp 0x41900d
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 1
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x320]
push ecx
push str.installpkg
push eax
call fcn.00450840
add esp, 0xc
mov ecx, 0x4c2604
call fcn.00451e00
test eax, eax
jne 0x4192bd
mov ecx, 0x4c2604
call fcn.00451f20
push str.CheckSingleInstance_failed__exit
call fcn.0044e890
add esp, 4
push 0
push str.LDSGameMasterSetupMainWnd
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
push esi
mov dword [ebp - 0x554], esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x41917d
mov ecx, dword [ebp - 0x560]
lea eax, [ebp - 0x548]
push eax
call fcn.0041abc0
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x419121
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 9
push esi
call edi
push 1
push esi
call edi
push 0
lea ecx, [ebp - 0x554]
call fcn.00406a20
mov esi, dword [ebp - 0x554]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edi, dword [sym.imp.USER32.dll_SetWindowPos]
push 0x1b
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
call edi
push 0x1b
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
push esi
call edi
push str.exist_one_running
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
add esp, 0xc
mov eax, dword [ebp - 0x548]
cmp dword [eax - 0xc], 0
je 0x419172
mov eax, dword [ebp - 0x56c]
push eax
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x53c], 0xabcd
mov dword [ebp - 0x534], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x53c]
push eax
push eax
push 0x4a
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x548]
jmp 0x41929f
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00432c40
lea eax, [ebp - 0x568]
push eax
call fcn.0040af00
add esp, 0x10
push 0x104
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x568]
call fcn.00404460
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push ecx
mov ecx, dword [ebp - 0x560]
push esp
call fcn.0041abc0
mov ecx, 0x4c2518
call fcn.0045ed30
mov ecx, dword [ebp - 0x550]
lea edx, [ebp - 0x218]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [ebp - 0x560]
lea eax, [ebp - 0x54c]
push eax
call fcn.0041b750
mov eax, dword [eax]
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0x560]
push eax
call fcn.0040a550
mov edi, dword [eax]
lea eax, [ebp - 0x548]
push eax
call fcn.0040bcd0
mov esi, dword [eax]
lea eax, [ebp - 0x56c]
push eax
call fcn.0040b660
push dword [ebp - 0x568]
push edi
push esi
push dword [eax]
lea eax, [ebp - 0x554]
push 0
push 0
push eax
push 0x4c2518
call fcn.004601a0
lea ecx, [ebp - 0x56c]
call fcn.00404460
lea ecx, [ebp - 0x548]
call fcn.00404460
lea ecx, [ebp - 0x560]
call fcn.00404460
lea ecx, [ebp - 0x54c]
call fcn.00404460
mov ecx, dword [ebp - 0x550]
push dword [ebp - 0x554]
push str.LDSGameHallLDSGameHall.exe
mov eax, dword [ecx]
push ecx
call dword [eax + 0x44]
lea ecx, [ebp - 0x554]
call fcn.00404460
mov edx, dword [ebp - 0x55c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jmp 0x41a26b
mov dword [ebp - 0x550], 0
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a33e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x54c], eax
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0x550]
push eax
call fcn.0040b050
push dword [ebp - 0x550]
mov edi, dword [ebp - 0x54c]
push edi
push str.installedVdiBit_is__s__dwSystemVdiVersion_d
call fcn.0044e890
mov ecx, dword [ebp - 0x560]
lea eax, [ebp - 0x534]
add esp, 0x14
push eax
call fcn.0041abc0
mov eax, dword [eax]
mov dword [ebp - 0x550], eax
lea eax, [ebp - 0x570]
push eax
call fcn.0040a550
mov eax, dword [eax]
mov dword [ebp - 0x554], eax
lea eax, [ebp - 0x57c]
push eax
call fcn.0040bcd0
mov esi, dword [eax]
lea eax, [ebp - 0x548]
push eax
call fcn.0040b660
push edi
push dword [ebp - 0x550]
push dword [ebp - 0x554]
push esi
push dword [eax]
push 0x4c2518
call fcn.00412630
mov edx, dword [ebp - 0x548]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419395
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x57c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4193b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x570]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4193cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x534]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4193ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x534]
push eax
call fcn.0040b660
push dword [eax]
push 0x4c2518
call fcn.00410d20
mov edx, dword [ebp - 0x534]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419421
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a348
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x548]
push 0xd4
mov dword [ebp - 0x548], eax
call fcn.00406bc0
test al, al
jne 0x419480
mov ecx, 0xd4
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x419460
sub ecx, edx
sar ecx, 1
push ecx
push 0xd4
lea ecx, [ebp - 0x548]
call fcn.00416a50
mov esi, dword [ebp - 0x548]
push 0x4846a4
push esi
call fcn.004405f1
xor ecx, ecx
lea edx, [esi - 0x10]
add esp, 8
test eax, eax
sete cl
or esi, 0xffffffff
mov dword [ebp - 0x534], ecx
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4194c1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x534]
test ecx, ecx
jne 0x419516
mov eax, dword [0x4c2530]
cmp dword [eax - 0xc], ecx
je 0x4194d9
mov eax, dword [0x4c2540]
cmp dword [eax - 0xc], ecx
jne 0x419516
push str.get_config_fail
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
push str.break_in_get_config_failed
call fcn.0044e890
add esp, 0x10
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41a25a
mov ecx, dword [edi]
push edi
jmp 0x41a255
call fcn.00406ea0
lea eax, [ebp - 0x564]
push eax
call fcn.0040ad60
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a352
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x548]
push 0xdc
mov dword [ebp - 0x548], eax
call fcn.00406bc0
test al, al
jne 0x419582
mov ecx, 0xdc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x419562
sub ecx, edx
sar ecx, 1
push ecx
push 0xdc
lea ecx, [ebp - 0x548]
call fcn.00416a50
mov edi, dword [ebp - 0x548]
push edi
push str.ResVdiBit_is__s
call fcn.0044e890
push 0x484f20
push edi
call fcn.004405f1
add esp, 0x10
test eax, eax
jne 0x4199af
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp dword [0x4be080], eax
je 0x41969c
push str.GetNativeSystemInfo
push 0x483fbc
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x419692
xorps xmm0, xmm0
mov dword [ebp - 0x588], 0
lea ecx, [ebp - 0x5a8]
push ecx
movups xmmword [ebp - 0x5a8], xmm0
movups xmmword [ebp - 0x598], xmm0
call eax
mov ax, word [ebp - 0x5a8]
cmp ax, 9
je 0x419688
cmp ax, 6
je 0x419688
cmp ax, 0xc
je 0x419688
push str.IsWow64Process2
push 0x484534
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x550], 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x570], eax
test eax, eax
je 0x41967f
lea eax, [ebp - 0x550]
push eax
lea eax, [ebp - 0x534]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [ebp - 0x570]
test eax, eax
je 0x41967f
xor eax, eax
mov ecx, 0xaa64
cmp word [ebp - 0x550], cx
sete al
mov dword [0x4c2510], eax
jmp 0x419692
xor eax, eax
mov dword [0x4c2510], eax
jmp 0x419692
mov dword [0x4c2510], 1
mov dword [0x4be080], 0
cmp dword [0x4c2510], 0
jne 0x419789
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a35c
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x548]
push 0xd4
mov dword [ebp - 0x548], eax
call fcn.00406bc0
test al, al
jne 0x419704
mov ecx, 0xd4
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4196e4
sub ecx, edx
sar ecx, 1
push ecx
push 0xd4
lea ecx, [ebp - 0x548]
call fcn.00416a50
mov esi, dword [ebp - 0x548]
push 0x4846a4
push esi
call fcn.004405f1
xor ecx, ecx
lea edx, [esi - 0x10]
add esp, 8
test eax, eax
sete cl
or esi, 0xffffffff
mov dword [ebp - 0x534], ecx
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419745
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x534]
test ecx, ecx
je 0x419783
cmp dword [0x4c24d4], 3
je 0x419783
push str.x64_can_not_run_in_x86_system
call fcn.0044e890
add esp, 4
push 0
push 0x486708
push 0x486710
push 1
push dword [0x4c24d8]
call fcn.004069e0
push eax
call fcn.0044f2f0
jmp 0x41a209
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp dword [0x4be080], 0
je 0x41986b
push str.GetNativeSystemInfo
push 0x483fbc
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x419861
xorps xmm0, xmm0
mov dword [ebp - 0x588], 0
lea ecx, [ebp - 0x5a8]
push ecx
movups xmmword [ebp - 0x5a8], xmm0
movups xmmword [ebp - 0x598], xmm0
call eax
mov ax, word [ebp - 0x5a8]
cmp ax, 9
je 0x419857
cmp ax, 6
je 0x419857
cmp ax, 0xc
je 0x419857
push str.IsWow64Process2
push 0x484534
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x550], 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x41984e
lea eax, [ebp - 0x550]
push eax
lea eax, [ebp - 0x534]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x41984e
xor eax, eax
mov ecx, 0xaa64
cmp word [ebp - 0x550], cx
sete al
mov dword [0x4c2510], eax
jmp 0x419861
xor eax, eax
mov dword [0x4c2510], eax
jmp 0x419861
mov dword [0x4c2510], 1
mov dword [0x4be080], 0
cmp dword [0x4c2510], 0
je 0x419ac2
mov eax, dword [ebp - 0x564]
mov esi, dword [ebp - 0x54c]
cmp dword [eax - 0xc], 0
je 0x419ac8
push 0x484f28
push esi
call fcn.004405f1
add esp, 8
test eax, eax
jne 0x419ac8
push str.x64_over_x86_will_lose_data
call fcn.0044e890
add esp, 4
call fcn.0040b420
mov ecx, eax
call fcn.0041b4f0
cmp eax, 3
je 0x4198ce
cmp eax, 4
je 0x4198ce
mov eax, dword [0x4c2554]
jmp 0x4198d0
xor eax, eax
push 0x485a58
push 0x485a5c
push 0x486778
push 1
push dword [0x4c24d8]
push eax
call fcn.0044f2f0
cmp eax, 6
je 0x419968
cmp eax, 5
je 0x419968
push str.break_in_x64_over_x86_will_lose_data
call fcn.0044e890
lea edx, [edi - 0x10]
add esp, 4
or edi, 0xffffffff
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41991e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x564]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41993b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x419952
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x55c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jmp 0x41a26b
cmp dword [0x4c24d4], 3
jne 0x4199a5
push 4
lea eax, [ebp - 0x534]
mov dword [0x4c24d4], 2
push eax
push 4
push str.Override
push str.SOFTWARELDSGameMaster
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x534], 1
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
call fcn.004157a0
jmp 0x419ac8
cmp dword [0x4c24d4], 3
je 0x41a056
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a366
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x548]
push 0xd4
mov dword [ebp - 0x548], eax
call fcn.00406bc0
test al, al
jne 0x419a17
mov ecx, 0xd4
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4199f7
sub ecx, edx
sar ecx, 1
push ecx
push 0xd4
lea ecx, [ebp - 0x548]
call fcn.00416a50
mov esi, dword [ebp - 0x548]
push 0x4846a4
push esi
call fcn.004405f1
xor ecx, ecx
lea edx, [esi - 0x10]
add esp, 8
test eax, eax
sete cl
or esi, 0xffffffff
mov dword [ebp - 0x534], ecx
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419a58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x534]
test ecx, ecx
je 0x419ac2
call fcn.0040e220
test al, al
je 0x419ac2
call fcn.0040b420
mov ecx, eax
call fcn.0041b4f0
cmp eax, 3
je 0x419a82
cmp eax, 4
je 0x419a82
mov eax, dword [0x4c2554]
jmp 0x419a84
xor eax, eax
push 0x485a58
push 0x485a5c
push 0x486820
push 1
push dword [0x4c24d8]
push eax
call fcn.0044f2f0
cmp eax, 6
je 0x419abd
cmp eax, 5
je 0x419abd
push str.break_in_old_data
call fcn.0044e890
add esp, 4
jmp 0x41a209
call fcn.004157a0
mov esi, dword [ebp - 0x54c]
cmp dword [0x4c24d4], 3
je 0x41a053
push 0x4c262c
push ecx
push esp
call fcn.004554b0
push esp
call fcn.004554b0
add esp, 4
call fcn.004510b0
add esp, 0xc
cmp dword [0x4c2630], 0
je 0x419b87
mov eax, dword [0x4c2638]
test eax, eax
jne 0x419b74
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x419b54
cmp dword [0x4be27c], 0
je 0x419b54
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x419b43
mov ecx, eax
call fcn.0044f9c0
jmp 0x419b45
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 2
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
push str.inst_limit_mgame
push str.loader_dll2
push eax
call fcn.00450840
add esp, 0xc
cmp dword [0x4c262c], 0
je 0x419c1c
mov eax, dword [0x4c2638]
test eax, eax
jne 0x419c09
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x419be9
cmp dword [0x4be27c], 0
je 0x419be9
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x419bd8
mov ecx, eax
call fcn.0044f9c0
jmp 0x419bda
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 3
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
push str.inst_limit_bird
push str.loader_dll2
push eax
call fcn.00450840
add esp, 0xc
cmp dword [0x4c2634], 0
je 0x419cb1
mov eax, dword [0x4c2638]
test eax, eax
jne 0x419c9e
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x419c7e
cmp dword [0x4be27c], 0
je 0x419c7e
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x419c6d
mov ecx, eax
call fcn.0044f9c0
jmp 0x419c6f
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 4
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
push str.inst_limit_lu
push str.loader_dll2
push eax
call fcn.00450840
add esp, 0xc
mov ecx, dword [ebp - 0x560]
push 0
call fcn.0041b360
test eax, eax
jne 0x419cea
mov ecx, dword [ebp - 0x560]
push eax
call fcn.0041b1d0
test eax, eax
jne 0x419cea
push eax
push eax
push eax
push 0x410be0
push eax
push eax
call fcn.00440a9e
add esp, 0x18
mov dword [ebp - 0x568], eax
cmp dword [0x4c2630], 0
je 0x419d7d
cmp dword [0x4c2584], 0
jne 0x419d7d
cmp dword [0x4c24d4], 4
jne 0x419d7d
push str.inst_mgame_no
push str.loader_dll2
call fcn.0040b360
push eax
call fcn.00450840
add esp, 0xc
mov dword [ebp - 0x580], 1
lea edx, [edi - 0x10]
or edi, 0xffffffff
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419d45
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x564]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419d62
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x41a005
mov ecx, dword [esi]
push esi
jmp 0x41a000
call fcn.0040f570
call fcn.00406c90
test eax, eax
jne 0x419d9a
push str.break_in_CheckMemory
call fcn.0044e890
add esp, 4
jmp 0x419d2b
mov eax, dword [0x4c2638]
test eax, eax
jne 0x419e0f
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x419def
cmp dword [0x4be27c], 0
je 0x419def
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
test eax, eax
je 0x419dde
mov ecx, eax
call fcn.0044f9c0
jmp 0x419de0
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 4], 5
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov dword [ebp - 4], 0xffffffff
push str.start_install
push str.installpkg
push eax
call fcn.00450840
add esp, 0xc
call fcn.0040d9e0
test eax, eax
jne 0x419e52
push str.init_fail
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
push str.break_in_InitSetupPackInfo
call fcn.0044e890
add esp, 0x10
jmp 0x419d2b
cmp dword [0x4c2550], 0
jne 0x419f99
cmp dword [0x4c2554], 0
je 0x419f99
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a370
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [ebp - 0x548]
push 0x4869e4
mov dword [ebp - 0x548], eax
call fcn.00406bc0
test al, al
jne 0x419eb1
push 0x17
push 0x4869e4
lea ecx, [ebp - 0x548]
call fcn.00416a50
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a37a
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x578], eax
lea eax, [ebp - 0x578]
push eax
push ecx
mov esi, esp
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x41a384
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._GameName
mov dword [esi], eax
call fcn.00406bc0
test al, al
jne 0x419f13
push 9
push str._GameName
mov ecx, esi
call fcn.00416a50
mov ecx, dword [ebp - 0x560]
call fcn.0041b8f0
test eax, eax
je 0x419f43
mov eax, dword [ebp - 0x578]
cmp dword [eax - 0xc], 0
je 0x419f43
push eax
lea eax, [ebp - 0x548]
push 0x486a28
push eax
call fcn.00409e30
add esp, 0xc
mov esi, dword [ebp - 0x548]
push 0x482aa0
push 0x486a68
push esi
push 1
push dword [0x4c24d8]
push 1
call fcn.0044f2f0
mov edx, dword [ebp - 0x578]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419f81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x419f99
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x56c]
push eax
call fcn.00415b90
lea esi, [edi - 0x10]
mov dword [ebp - 0x584], eax
or edi, 0xffffffff
add esp, 8
mov ecx, edi
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x419fcb
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov edx, dword [ebp - 0x564]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419fe8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a005
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x55c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x41a020
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x558]
call fcn.00452070
mov esi, dword [ebp - 0x568]
mov edi, 1
test esi, esi
je 0x41a285
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41a285
or esi, 0xffffffff
call fcn.0045f500
push 0x208
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00432c40
lea eax, [ebp - 0x534]
push eax
call fcn.0040af00
add esp, 0x10
push 0x104
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov edx, dword [ebp - 0x534]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a0b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov ecx, dword [ebp - 0x568]
lea edx, [ebp - 0x218]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [ebp - 0x560]
lea eax, [ebp - 0x548]
push eax
call fcn.0041b750
mov eax, dword [eax]
mov dword [ebp - 0x534], eax
lea eax, [ebp - 0x554]
push eax
call fcn.0040a550
mov eax, dword [eax]
mov dword [ebp - 0x570], eax
lea eax, [ebp - 0x550]
push eax
call fcn.0040bcd0
mov esi, dword [eax]
lea eax, [ebp - 0x56c]
push eax
call fcn.0040b660
push dword [ebp - 0x534]
push dword [ebp - 0x570]
push esi
push dword [eax]
lea eax, [ebp - 0x57c]
push 0
push 0
push eax
push 0x4c2518
call fcn.004601a0
mov edx, dword [ebp - 0x568]
push dword [eax]
mov ecx, dword [edx]
push str.LDSGameHallLDSGameHall.exe
push edx
call dword [ecx + 0x44]
mov edx, dword [ebp - 0x57c]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a173
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x56c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a190
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x550]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a1ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x554]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a1ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x548]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a1e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.start_exist
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
push str.break_in_start_mode
call fcn.0044e890
add esp, 0x10
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41a220
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x564]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a23d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a25a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x55c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x41a275
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x558]
call fcn.00452070
mov edi, 1
call fcn.00460bf0
cmp dword [ebp - 0x580], 0
je 0x41a2bb
mov esi, dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
push str.FROM
push str.SOFTWARELDSGameMaster
push reloc.OLEAUT32.dll_SysReAllocString
call esi
push str.lua_push
push str.SOFTWARELDSGameMaster
push reloc.OLEAUT32.dll_SysReAllocString
call esi
push 0x7d0
call fcn.0040b360
mov ecx, eax
call fcn.00450ea0
mov ecx, 0x4c2518
call fcn.00460ca0
test edi, edi
je 0x41a2e4
mov ecx, 0x4c2604
call fcn.00451f20
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x41a2f5
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push dword [0x4c264c]
mov esi, dword [sym.imp.USER32.dll_UnregisterClassW]
push str.AtlAxWin140
call esi
push dword [0x4c264c]
push 0x484958
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp - 0x584]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042c75e
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
push 0x80004005
call fcn.004068b0
int3