Function at 0x4553b0
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, 0xa84
mov eax, dword [0x4a4cf0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push str.korean
push 0
mov dword [ebp - 0xa48], eax
call fcn.0045d704
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add esp, 8
cmp byte [0x4a673e], 0
je 0x455459
lea ecx, [ebp - 0xa1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea edx, [ebp - 0x80c]
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 0x48bed8
lea eax, [ebp - 0x80c]
push eax
push str._s_sTraceMsg__04d_02d_02d.txt
lea ecx, [ebp - 0x20c]
push 0x100
push ecx
call fcn.0045c9ef
lea edx, [ebp - 0x20c]
push 0x490bdc
push edx
call fcn.0045cbc7
add esp, 0x28
mov dword [0x4a9160], eax
mov eax, dword [0x4909ac]
mov cx, word [0x4909b0]
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 [0x4a638c], eax
test eax, eax
jne 0x455b0d
push ebx
push edi
lea eax, [ebp - 0xc]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp byte [0x49b051], 0
mov dword [0x4a638c], eax
mov byte [ebp - 0xa1d], 1
je 0x455636
lea ecx, [ebp - 0xa34]
push ecx
call fcn.00446af0
add esp, 4
lea edx, [ebp - 0xa0c]
push edx
push 0x100
call esi
mov edi, dword [ebp - 0xa30]
mov esi, dword [ebp - 0xa34]
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 0x455606
mov dword [ebp - 0xa24], ebx
mov eax, dword [ebp - 0xa24]
add eax, esi
cmp dword [eax + 0x14], 0x10
jb 0x455511
mov eax, dword [eax]
movsx edx, byte [eax]
push str.BK_Setup.exe
push 0x4903d4
push edx
lea eax, [ebp - 0x60c]
push str._c_s_s
push eax
call fcn.00409630
lea ecx, [ebp - 0x60c]
push 0x48c09c
push ecx
call fcn.0045cbc7
push ebx
mov edi, eax
call fcn.00446cd0
add esp, 0x20
mov esi, eax
sub eax, 0
je 0x455586
dec eax
je 0x455573
dec eax
je 0x455560
push str.Drive_not_ready_n
jmp 0x45558b
push str.DVD_tray_closed__media_present_n
push 0x100
lea eax, [ebp - 0x40c]
push eax
jmp 0x455597
push str.DVD_tray_open_n
push 0x100
lea ecx, [ebp - 0x40c]
push ecx
jmp 0x455597
push str.DVD_tray_closed__no_media_n
push 0x100
lea edx, [ebp - 0x40c]
push edx
call fcn.0045c9ef
add esp, 0xc
test edi, edi
je 0x4555b5
cmp esi, 2
je 0x4555ea
test esi, esi
je 0x4555ea
push edi
call fcn.0045ca7a
add esp, 4
mov edi, dword [ebp - 0xa30]
mov esi, dword [ebp - 0xa34]
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 0x455501
jmp 0x455606
push edi
mov byte [ebp - 0xa1d], 0
call fcn.0045ca7a
mov edi, dword [ebp - 0xa30]
mov esi, dword [ebp - 0xa34]
add esp, 4
test esi, esi
je 0x455636
cmp esi, edi
je 0x45562d
mov edi, edi
lea ecx, [ebp - 0xa28]
push esi
push ecx
call fcn.00415260
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x455610
mov esi, dword [ebp - 0xa34]
push esi
call fcn.0045b44e
add esp, 4
mov ecx, dword [ebp + 0x14]
xor eax, eax
lea edx, [ebp - 0xa38]
push edx
mov edx, dword [ebp - 0xa48]
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
mov dword [ebp - 0xa4c], eax
lea eax, [ebp - 0xa24]
push eax
push ecx
push edx
call fcn.004552d0
mov edi, dword [ebp - 0xa24]
add esp, 0x10
push 0
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x49b051], 0
je 0x4557af
cmp byte [0x4a673d], 0
jne 0x4557af
lea eax, [ebp - 0xa44]
push eax
push str.SoftwareWOW6432NodeGM_
push 0x80000002
mov dword [ebp - 0xa44], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov ebx, dword [sym.imp.USER32.dll_PostMessageW]
test eax, eax
je 0x4556e0
push 0
push 0
push 0x10
push edi
call ebx
lea ecx, [ebp - 0xa28]
push ecx
lea edx, [ebp - 0xa40]
push edx
push 0
push 0xffff
push 0x490ba0
push str.SoftwareWOW6432NodeGM_
push 0x80000002
mov dword [ebp - 0xa40], 0
mov dword [ebp - 0xa28], 0x100
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov esi, eax
mov eax, dword [ebp - 0xa44]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0xa3c]
push ecx
push 0
push 0
push 0x490b98
mov dword [ebp - 0xa3c], 1
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov eax, dword [ebp - 0xa40]
mov ecx, dword [ebp - 0xa3c]
cmp eax, ecx
je 0x4557af
mov edx, dword [ebp - 0xa28]
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.0045c9ef
add esp, 0x1c
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea edx, [ebp - 0x20c]
push edx
push 0
call fcn.00408ed0
add esp, 8
push 0
push 0
push 0x10
push edi
call ebx
xor ebx, ebx
push ebx
call fcn.0045c2d9
add esp, 4
mov esi, eax
mov dword [ebp - 0xa28], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, esi
push eax
call fcn.0045c5ba
call fcn.0045c5cc
push ebx
mov esi, eax
call fcn.0045c2d9
add eax, esi
push eax
call fcn.0045c5ba
mov eax, 1
add esp, 0xc
mov dword [ebp - 0xa74], eax
mov dword [ebp - 0xa6c], eax
lea eax, [ebp - 0xa84]
push eax
lea ecx, [ebp - 0xa74]
push ecx
lea edx, [ebp - 0xa7c]
push edx
mov dword [ebp - 0xa70], ebx
mov dword [ebp - 0xa68], ebx
call sub.gdiplus.dll_GdiplusStartup
lea eax, [ebp - 0xa78]
push eax
call dword [ebp - 0xa84]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
cmp esi, ebx
je 0x4558e0
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, 0x4b8770
mov dword [esi + 8], eax
call fcn.00455b20
push str.WAIT_WHILE_APPLICATION_LOAD_ITS_DATA...
mov ecx, 0x4b8770
call fcn.00456210
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, 0x4b8770
call fcn.00456950
push 0xff
mov ecx, 0x4b8770
call fcn.00455bb0
push str.LOADING...
push 1
mov ecx, 0x4b8770
call fcn.00456240
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call esi
push 0x490ab8
push 0xa
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x2c
call fcn.0045bb31
add esp, 4
cmp eax, ebx
je 0x4558f5
mov ecx, eax
call fcn.00459f90
jmp 0x4558f7
push 0x10
push str.FAILED
push str.FAILED_TO_LOAD_THE_IMAGE_FILE
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x455899
xor eax, eax
push edi
mov ecx, eax
mov dword [0x4a9168], eax
call fcn.00458cf0
push 0x490a64
push 0x14
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x490a5c
push 0x19
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x490a54
push 0x1e
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x490a4c
push 0x28
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x490a44
push 0x32
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push 0x490a3c
push 0x37
mov ecx, 0x4b8770
call fcn.00456240
push 0x64
call esi
push str.100_
push 0x64
mov ecx, 0x4b8770
call fcn.00456240
movzx ecx, byte [0x4b8220]
push ecx
push edi
call fcn.00409780
add esp, 8
cmp eax, ebx
jl 0x455ad6
push edi
call fcn.00409990
add esp, 4
cmp eax, ebx
jl 0x455ad6
push edi
call fcn.00445ec0
add esp, 4
call fcn.00449420
call fcn.00423860
call fcn.0042b330
call fcn.00409d70
push 0x4a6368
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x1f4
call esi
mov ecx, 0x4b8770
call fcn.00455b50
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0xa38]
push edx
mov edx, dword [ebp - 0xa48]
lea eax, [ebp - 0xa24]
push eax
push ecx
push edx
call fcn.004552d0
mov esi, dword [ebp - 0xa24]
add esp, 0x10
push 1
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x49b051], bl
je 0x455a40
mov eax, dword [0x4b8084]
mov cl, byte [ebp - 0xa1d]
mov byte [eax + 0xf4], cl
mov edi, dword [ebp - 0xa38]
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
lea esp, [esp]
push 0
push 0
push 0
push 0
lea edx, [ebp - 0xa64]
push edx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x455aab
push 0
push 0
push 0
lea eax, [ebp - 0xa64]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x455af4
lea ecx, [ebp - 0xa64]
push ecx
push edi
push esi
call ebx
test eax, eax
jne 0x455a50
lea edx, [ebp - 0xa64]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0xa64]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x455a50
cmp dword [0x4a9164], 0
je 0x455ae9
push esi
call fcn.00434940
add esp, 4
test eax, eax
jns 0x455a50
push 0x10
push 0x4909ac
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.0045bfe1
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x455a50
mov eax, dword [ebp - 0xa5c]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
pop esi
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret 0x10