Function at 0x456f70
Capabilities:
Get common file path
Get disk information
Hide graphical window
Print debug messages
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa88
mov eax, dword [0x4ab000]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push str.korean
push 0
mov dword [ebp - 0xa38], eax
call fcn.0045edb4
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add esp, 8
cmp byte [0x4aca1d], 0
je 0x457019
lea ecx, [ebp - 0xa1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea edx, [ebp - 0x60c]
push edx
push 0x100
call esi
movzx eax, word [ebp - 0xa16]
movzx ecx, word [ebp - 0xa1a]
movzx edx, word [ebp - 0xa1c]
push eax
push ecx
push edx
push 0x492740
lea eax, [ebp - 0x60c]
push eax
push str._s_sTraceMsg__04d_02d_02d.txt
lea ecx, [ebp - 0x40c]
push 0x100
push ecx
call fcn.0045e09f
lea edx, [ebp - 0x40c]
push 0x49731c
push edx
call fcn.0045e277
add esp, 0x28
mov dword [0x4af448], eax
mov eax, dword [0x4970ec]
mov cx, word [0x4970f0]
lea edx, [ebp - 0xc]
push edx
push 0
push 0x1f0001
mov dword [ebp - 0xc], eax
mov word [ebp - 8], cx
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0x4ac66c], eax
test eax, eax
jne 0x457691
push ebx
push edi
lea eax, [ebp - 0xc]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp byte [0x4a1051], 0
mov dword [0x4ac66c], eax
mov byte [ebp - 0xa1d], 1
je 0x4571f6
lea ecx, [ebp - 0xa4c]
push ecx
call fcn.00448c10
add esp, 4
lea edx, [ebp - 0xa0c]
push edx
push 0x100
call esi
mov edi, dword [ebp - 0xa48]
mov esi, dword [ebp - 0xa4c]
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
xor ebx, ebx
add eax, edx
je 0x4571c6
mov dword [ebp - 0xa24], ebx
mov eax, dword [ebp - 0xa24]
add eax, esi
cmp dword [eax + 0x14], 0x10
jb 0x4570d1
mov eax, dword [eax]
movsx edx, byte [eax]
push str.RCD_Setup.exe
push 0x496b04
push edx
lea eax, [ebp - 0x80c]
push str._c_s_s
push eax
call fcn.00409dc0
lea ecx, [ebp - 0x80c]
push 0x492904
push ecx
call fcn.0045e277
push ebx
mov edi, eax
call fcn.00448df0
add esp, 0x20
mov esi, eax
sub eax, 0
je 0x457146
dec eax
je 0x457133
dec eax
je 0x457120
push str.Drive_not_ready_n
jmp 0x45714b
push str.DVD_tray_closed__media_present_n
push 0x100
lea eax, [ebp - 0x20c]
push eax
jmp 0x457157
push str.DVD_tray_open_n
push 0x100
lea ecx, [ebp - 0x20c]
push ecx
jmp 0x457157
push str.DVD_tray_closed__no_media_n
push 0x100
lea edx, [ebp - 0x20c]
push edx
call fcn.0045e09f
add esp, 0xc
test edi, edi
je 0x457175
cmp esi, 2
je 0x4571aa
test esi, esi
je 0x4571aa
push edi
call fcn.0045e12a
add esp, 4
mov edi, dword [ebp - 0xa48]
mov esi, dword [ebp - 0xa4c]
add dword [ebp - 0xa24], 0x1c
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jb 0x4570c1
jmp 0x4571c6
push edi
mov byte [ebp - 0xa1d], 0
call fcn.0045e12a
mov edi, dword [ebp - 0xa48]
mov esi, dword [ebp - 0xa4c]
add esp, 4
test esi, esi
je 0x4571f6
cmp esi, edi
je 0x4571ed
mov edi, edi
lea ecx, [ebp - 0xa40]
push esi
push ecx
call fcn.00402670
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x4571d0
mov esi, dword [ebp - 0xa4c]
push esi
call fcn.0045cafe
add esp, 4
mov ecx, dword [ebp + 0x14]
xor eax, eax
lea edx, [ebp - 0xa34]
push edx
mov edx, dword [ebp - 0xa38]
mov dword [ebp - 0xa68], eax
mov dword [ebp - 0xa64], eax
mov dword [ebp - 0xa60], eax
mov dword [ebp - 0xa5c], eax
mov dword [ebp - 0xa58], eax
mov dword [ebp - 0xa54], eax
mov dword [ebp - 0xa50], eax
lea eax, [ebp - 0xa24]
push eax
push ecx
push edx
call fcn.00456e90
mov edi, dword [ebp - 0xa24]
add esp, 0x10
push 0
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x4a1051], 0
je 0x457351
lea eax, [ebp - 0xa28]
push eax
push str.SoftwareWOW6432NodeGM_
push 0x80000002
mov dword [ebp - 0xa28], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov ebx, dword [sym.imp.USER32.dll_PostMessageW]
test eax, eax
je 0x457293
push 0
push 0
push 0x10
push edi
call ebx
lea ecx, [ebp - 0xa3c]
push ecx
lea edx, [ebp - 0xa2c]
push edx
push 0
push 0xffff
push 0x4972e0
push str.SoftwareWOW6432NodeGM_
push 0x80000002
mov dword [ebp - 0xa2c], 0
mov dword [ebp - 0xa3c], 0x100
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov esi, eax
mov eax, dword [ebp - 0xa28]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0xa30]
push ecx
push 0
push 0
push 0x4972d8
mov dword [ebp - 0xa30], 1
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov eax, dword [ebp - 0xa2c]
mov ecx, dword [ebp - 0xa30]
cmp eax, ecx
je 0x457351
mov edx, dword [ebp - 0xa3c]
push ecx
push edx
push eax
push esi
push str._lRet:__d__data:_d_length:_d_:_serNumb:_d_n
lea eax, [ebp - 0x40c]
push 0x100
push eax
call fcn.0045e09f
add esp, 0x1c
lea ecx, [ebp - 0x40c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
push 0
push 0x10
push edi
call ebx
xor ebx, ebx
push ebx
call fcn.0045d989
push ebx
call fcn.0045d989
push eax
call fcn.0045dc6a
add esp, 0xc
mov eax, 1
lea edx, [ebp - 0xa88]
mov dword [ebp - 0xa78], eax
mov dword [ebp - 0xa70], eax
push edx
lea eax, [ebp - 0xa78]
push eax
lea ecx, [ebp - 0xa7c]
push ecx
mov dword [ebp - 0xa74], ebx
mov dword [ebp - 0xa6c], ebx
call sub.gdiplus.dll_GdiplusStartup
lea edx, [ebp - 0xa80]
push edx
call dword [ebp - 0xa88]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
cmp esi, ebx
je 0x457460
lea eax, [esi + 4]
push eax
push str.Loading.bmp
mov dword [esi], vtable.Gdiplus::Image.0
mov dword [eax], ebx
call sub.gdiplus.dll_GdipLoadImageFromFile
push esi
mov ecx, 0x4beac0
mov dword [esi + 8], eax
call fcn.004576b0
push str.WAIT_WHILE_APPLICATION_LOAD_ITS_DATA...
mov ecx, 0x4beac0
call fcn.00457da0
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
mov ecx, 0x4beac0
call fcn.004584e0
push 0xff
mov ecx, 0x4beac0
call fcn.00457740
push str.LOADING...
push 1
mov ecx, 0x4beac0
call fcn.00457dd0
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call esi
push 0x4971f8
push 0xa
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x2c
call fcn.0045d1e1
add esp, 4
cmp eax, ebx
je 0x457475
mov ecx, eax
call fcn.0045b640
jmp 0x457477
push 0x10
push str.FAILED
push str.FAILED_TO_LOAD_THE_IMAGE_FILE
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x457419
xor eax, eax
push edi
mov ecx, eax
mov dword [0x4af450], eax
call fcn.0045a890
push 0x4971a4
push 0x14
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x49719c
push 0x19
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x497194
push 0x1e
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x49718c
push 0x28
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x497184
push 0x32
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push 0x49717c
push 0x37
mov ecx, 0x4beac0
call fcn.00457dd0
push 0x64
call esi
push str.100_
push 0x64
mov ecx, 0x4beac0
call fcn.00457dd0
movzx eax, byte [0x4be568]
push eax
push edi
call fcn.00409f10
add esp, 8
cmp eax, ebx
jl 0x45765a
push edi
call fcn.0040a120
add esp, 4
cmp eax, ebx
jl 0x45765a
push edi
call fcn.00447a70
add esp, 4
call fcn.0044b520
call fcn.00424640
call fcn.0042bc30
call fcn.0040a500
push 0x4ac648
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x1f4
call esi
mov ecx, 0x4beac0
call fcn.004576e0
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0xa34]
push ecx
mov ecx, dword [ebp - 0xa38]
lea edx, [ebp - 0xa24]
push edx
push eax
push ecx
call fcn.00456e90
mov esi, dword [ebp - 0xa24]
add esp, 0x10
push 1
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x4a1051], bl
je 0x4575c1
mov edx, dword [0x4be3cc]
mov al, byte [ebp - 0xa1d]
mov byte [edx + 0xf4], al
mov edi, dword [ebp - 0xa34]
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
lea ecx, [ecx]
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0xa68]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x45762f
push 0
push 0
push 0
lea edx, [ebp - 0xa68]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x457678
lea eax, [ebp - 0xa68]
push eax
push edi
push esi
call ebx
test eax, eax
jne 0x4575d0
lea ecx, [ebp - 0xa68]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0xa68]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x4575d0
cmp dword [0x4af44c], 0
je 0x45766d
push esi
call fcn.004357e0
add esp, 4
test eax, eax
jns 0x4575d0
push 0x10
push 0x4970ec
push str.GameMain___FAILED._THE_GAME_WILL_NOW_EXIT.
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d691
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x4575d0
mov eax, dword [ebp - 0xa60]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d691
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
pop esi
call fcn.0045d691
mov esp, ebp
pop ebp
ret 0x10