Function at 0x4056c0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x12c
push ebx
push ebp
push esi
push edi
xor esi, esi
push 0x138800
push esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x425a44], eax
lea eax, [esp + 0x38]
push eax
push 0x103
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov cl, byte [esp + 0x38]
mov byte [0x41e408], cl
call fcn.004148e0
call fcn.00414930
push 0x438
push 0x424298
call fcn.00403300
push 0xa00
push 0x424f60
call fcn.00403300
push 0x1ac
push 0x470020
call fcn.00403300
push 0x701f8
push 0x4d1d80
call fcn.00403300
push 0x124bc
push 0x433240
call fcn.00403300
push 0x2669
push 0x425a60
call fcn.00403300
push 0x2691
push 0x445740
call fcn.00403300
mov edx, dword [0x430108]
add esp, 0x38
mov dword [0x4701c0], edx
call fcn.00416530
call fcn.00415170
call fcn.004029c0
call fcn.00414230
call fcn.004142e0
cmp dword [0x447f20], esi
jle 0x4057a2
cmp dword [0x447f24], esi
jg 0x4057b6
mov dword [0x447f20], 0x280
mov dword [0x447f24], 0x1e0
mov eax, dword [0x4701cc]
push str.exe_ico
push eax
mov dword [esp + 0x18], 0x3000
mov dword [esp + 0x1c], 0x405f50
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push esi
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], str.cupid_menu
mov dword [esp + 0x38], str.KGT2KGAME
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x4058a0
mov ecx, dword [0x4701cc]
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push esi
push ecx
push esi
push esi
push 0x20
call edi
push 0xf
mov ebx, eax
call edi
push 4
lea ebx, [eax + ebx*2]
call edi
mov edx, dword [0x447f24]
add edx, ebx
add eax, edx
push eax
push 0x20
call edi
mov ecx, dword [0x447f20]
lea edx, [ecx + eax*2]
mov eax, dword [0x425a4c]
mov ecx, dword [0x425a48]
push edx
push eax
push ecx
push 0xf0000
push 0x42477c
push str.KGT2KGAME
push 0x40000
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 5
push eax
mov dword [0x4246f8], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x4246f8]
push 0x424f40
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x4246f8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, eax
push edi
mov dword [0x424298], 0x28
mov word [0x4242a4], 1
mov word [0x4242a6], 0x10
mov dword [0x4242a8], esi
mov dword [0x4242ac], esi
mov dword [0x4242b8], esi
mov dword [0x4242bc], esi
mov dword [0x42429c], 0x280
mov dword [0x4242a0], 0xfffffe20
call ebx
mov ebp, dword [sym.imp.GDI32.dll_CreateDIBSection]
push esi
push esi
push 0x4246cc
push esi
push 0x424298
push eax
mov dword [0x4246c0], eax
call ebp
mov ecx, dword [0x4246c0]
push eax
push ecx
mov dword [0x4246c4], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
mov dword [0x4246c8], eax
mov dword [0x421650], 0x28
mov word [0x42165c], 1
mov word [0x42165e], 0x10
mov dword [0x421660], esi
mov dword [0x421664], esi
mov dword [0x421670], esi
mov dword [0x421674], esi
mov dword [0x421654], 0x280
mov dword [0x421658], 0xfffffff0
call ebx
push esi
push esi
push 0x421a84
push esi
push 0x421650
push eax
mov dword [0x421a78], eax
call ebp
mov edx, dword [0x421a78]
push eax
push edx
mov dword [0x421a7c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [0x421a80], eax
mov eax, dword [0x4246f8]
push edi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [0x4d1d60]
mov dword [0x424704], ecx
call fcn.00404980
call fcn.00403330
call fcn.00406970
mov ecx, 8
or eax, 0xffffffff
mov edi, 0x4cf9e0
rep stosd dword es:[edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret