Function at 0x45cdb0
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 [0x4b1240]
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.00465054
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add esp, 8
cmp byte [0x4b2c4c], 0
je 0x45ce59
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 0x497c30
lea eax, [ebp - 0x60c]
push eax
push str._s_sTraceMsg__04d_02d_02d.txt
lea ecx, [ebp - 0x20c]
push 0x100
push ecx
call fcn.004646a5
lea edx, [ebp - 0x20c]
push 0x49d314
push edx
call fcn.004644f9
add esp, 0x28
mov dword [0x4b54e8], eax
mov eax, dword [0x49d0bc]
mov ecx, dword [0x49d0c0]
lea edx, [ebp - 0xc]
push edx
push 0
push 0x1f0001
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0x4b28a4], eax
test eax, eax
jne 0x45d4fd
push ebx
push edi
lea eax, [ebp - 0xc]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp byte [0x4a7052], 0
mov dword [0x4b28a4], eax
mov byte [ebp - 0xa1d], 1
je 0x45d036
lea ecx, [ebp - 0xa4c]
push ecx
call fcn.0044d220
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 0x45d005
mov dword [ebp - 0xa24], ebx
nop
mov eax, dword [ebp - 0xa24]
add eax, esi
cmp dword [eax + 0x14], 0x10
jb 0x45cf10
mov eax, dword [eax]
movsx edx, byte [eax]
push str.PGO_Setup.exe
push 0x49cb34
push edx
lea eax, [ebp - 0x80c]
push str._c_s_s
push eax
call fcn.00409550
lea ecx, [ebp - 0x80c]
push 0x497df4
push ecx
call fcn.004644f9
push ebx
mov edi, eax
call fcn.0044d400
add esp, 0x20
mov esi, eax
sub eax, 0
je 0x45cf85
dec eax
je 0x45cf72
dec eax
je 0x45cf5f
push str.Drive_not_ready_n
jmp 0x45cf8a
push str.DVD_tray_closed__media_present_n
push 0x100
lea eax, [ebp - 0x40c]
push eax
jmp 0x45cf96
push str.DVD_tray_open_n
push 0x100
lea ecx, [ebp - 0x40c]
push ecx
jmp 0x45cf96
push str.DVD_tray_closed__no_media_n
push 0x100
lea edx, [ebp - 0x40c]
push edx
call fcn.004646a5
add esp, 0xc
test edi, edi
je 0x45cfb4
cmp esi, 2
je 0x45cfe9
test esi, esi
je 0x45cfe9
push edi
call fcn.004643ac
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 0x45cf00
jmp 0x45d005
push edi
mov byte [ebp - 0xa1d], 0
call fcn.004643ac
mov edi, dword [ebp - 0xa48]
mov esi, dword [ebp - 0xa4c]
add esp, 4
test esi, esi
je 0x45d036
cmp esi, edi
je 0x45d02d
lea ecx, [ecx]
lea ecx, [ebp - 0xa40]
push esi
push ecx
call fcn.004021b0
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x45d010
mov esi, dword [ebp - 0xa4c]
push esi
call fcn.00462d9e
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.0045ccd0
mov edi, dword [ebp - 0xa24]
add esp, 0x10
push 0
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x4a7052], 0
je 0x45d1a2
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 0x45d0d3
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 0x49d2d8
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 0x49d2d0
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 0x45d1a2
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 - 0x20c]
push 0x100
push eax
call fcn.004646a5
add esp, 0x1c
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea edx, [ebp - 0x20c]
push edx
push 1
call fcn.00408da0
add esp, 8
push 0
push 0
push 0x10
push edi
call ebx
xor esi, esi
push esi
call fcn.00463c29
push esi
call fcn.00463c29
push eax
call fcn.00463f0a
mov eax, 1
add esp, 0xc
mov dword [ebp - 0xa78], eax
mov dword [ebp - 0xa70], eax
lea eax, [ebp - 0xa88]
push eax
lea ecx, [ebp - 0xa78]
push ecx
lea edx, [ebp - 0xa7c]
push edx
mov dword [ebp - 0xa74], esi
mov dword [ebp - 0xa6c], esi
call sub.gdiplus.dll_GdiplusStartup
lea eax, [ebp - 0xa80]
push eax
call dword [ebp - 0xa88]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
test esi, esi
je 0x45d2a6
lea eax, [esi + 4]
push eax
push str.Loading.bmp
mov dword [esi], vtable.Gdiplus::Image.0
mov dword [eax], 0
call sub.gdiplus.dll_GdipLoadImageFromFile
push esi
mov ecx, 0x4c5870
mov dword [esi + 8], eax
call fcn.0045d510
push str.WAIT_WHILE_APPLICATION_LOAD_ITS_DATA...
mov ecx, 0x4c5870
call fcn.0045dbe0
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, 0x4c5870
call fcn.0045e2c0
push str.LOADING...
push 1
mov ecx, 0x4c5870
call fcn.0045dc10
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call esi
push 0x49d1f0
push 0xa
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x2c
call fcn.00463481
add esp, 4
test eax, eax
je 0x45d2bc
mov ecx, eax
call fcn.004618e0
jmp 0x45d2be
push 0x10
push str.FAILED
push str.FAILED_TO_LOAD_THE_IMAGE_FILE
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x45d25f
xor eax, eax
push edi
mov ecx, eax
mov dword [0x4b5990], eax
call fcn.00460660
push 0x49d19c
push 0x14
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x49d194
push 0x19
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x49d18c
push 0x1e
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x49d184
push 0x28
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x49d17c
push 0x32
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push 0x49d174
push 0x37
mov ecx, 0x4c5870
call fcn.0045dc10
push 0x64
call esi
push str.100_
push 0x64
mov ecx, 0x4c5870
call fcn.0045dc10
movzx ecx, byte [0x4c52fc]
push ecx
push edi
call fcn.00404ab0
add esp, 8
test eax, eax
js 0x45d4c6
push edi
call fcn.004096a0
add esp, 4
test eax, eax
js 0x45d4c6
push edi
call fcn.0044c630
call fcn.0044feb0
call fcn.00424150
call fcn.0042f300
call fcn.00409a90
push str._START__n
lea edx, [ebp - 0x20c]
push 0x100
push edx
call fcn.004646a5
lea eax, [ebp - 0x20c]
push eax
push 1
call fcn.00408da0
add esp, 0x18
push 0x4b2880
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x1f4
call esi
mov ecx, 0x4c5870
call fcn.0045d540
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.0045ccd0
mov esi, dword [ebp - 0xa24]
add esp, 0x10
push 1
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x4a7052], 0
je 0x45d42d
mov edx, dword [0x4c5154]
mov al, byte [ebp - 0xa1d]
mov byte [edx + 0xf4], al
mov edi, dword [ebp - 0xa34]
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
lea esp, [esp]
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 0x45d49b
push 0
push 0
push 0
lea edx, [ebp - 0xa68]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x45d4e4
lea eax, [ebp - 0xa68]
push eax
push edi
push esi
call ebx
test eax, eax
jne 0x45d440
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 0x45d440
cmp dword [0x4b54ec], 0
je 0x45d4d9
push esi
call fcn.004386a0
add esp, 4
test eax, eax
jns 0x45d440
push 0x10
push str.sea_GAME
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.00463931
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x45d440
mov eax, dword [ebp - 0xa60]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00463931
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
pop esi
call fcn.00463931
mov esp, ebp
pop ebp
ret 0x10