Function at 0x4e6520
Capabilities:
Check for time delay via queryperformancecounter
Get memory capacity
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x8e70
call fcn.004ccea0
push ebx
push ebp
push esi
push edi
mov eax, dword [0x7144b4]
mov ecx, dword [0x709fa8]
mov edx, dword [0x7144a8]
mov dword [esp + 0x20c], eax
mov eax, dword [0x709108]
mov dword [esp + 0x13c], ecx
mov ecx, dword [0x70a2b0]
mov dword [esp + 0x108], edx
mov edx, dword [0x70a3b8]
mov dword [esp + 0x150], eax
mov eax, dword [0x70f494]
mov dword [esp + 0x158], ecx
mov ecx, dword [0x709110]
mov dword [esp + 0x160], edx
mov edx, dword [0x709114]
mov dword [esp + 0xdc], eax
mov eax, dword [0x709118]
mov dword [esp + 0x168], ecx
mov ecx, dword [0x70f4a0]
mov dword [esp + 0x1e0], edx
mov edx, dword [0x70f4a4]
mov dword [esp + 0x204], eax
mov eax, dword [0x70f4ac]
mov dword [esp + 0xb4], ecx
mov ecx, dword [0x70f4b4]
mov dword [esp + 0x15c], edx
mov edx, dword [0x70f4b8]
mov dword [esp + 0xbc], eax
mov eax, dword [0x70f4bc]
mov dword [esp + 0x194], ecx
mov ecx, dword [0x70f4c4]
mov dword [esp + 0x17c], edx
mov edx, dword [0x708ffc]
mov dword [esp + 0x14c], eax
mov eax, dword [0x708ff8]
mov dword [esp + 0x184], ecx
mov ecx, dword [0x70f498]
mov dword [esp + 0xc4], edx
mov edx, dword [0x708fd8]
mov dword [esp + 0x164], eax
mov eax, dword [0x714494]
mov dword [esp + 0xcc], ecx
mov ecx, dword [0x714498]
mov dword [esp + 0x19c], edx
mov edx, dword [0x709b28]
mov dword [esp + 0xd4], eax
mov eax, dword [0x709b2c]
mov dword [esp + 0x16c], ecx
mov ecx, dword [0x7144bc]
mov dword [esp + 0x1a4], edx
mov edx, dword [0x7144b8]
mov dword [esp + 0xe4], eax
mov eax, dword [0x714674]
mov dword [esp + 0x1ac], ecx
mov ecx, dword [0x713f0c]
mov dword [esp + 0xec], edx
mov edx, dword [0x713f10]
mov dword [esp + 0x178], eax
mov eax, dword [0x713f14]
mov ebx, dword [0x7144b0]
mov dword [esp + 0xf4], ecx
mov ecx, dword [0x713efc]
mov dword [esp + 0x1a0], edx
mov edx, dword [0x713f00]
mov dword [esp + 0xfc], eax
mov eax, dword [0x713f04]
mov dword [esp + 0x180], ecx
mov ecx, dword [0x714660]
mov dword [esp + 0x104], edx
mov edx, dword [0x714664]
mov dword [esp + 0x200], eax
mov eax, dword [0x714668]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x188], edx
mov dword [esp + 0x114], eax
mov ecx, dword [0x71466c]
fld qword [0x713ee8]
mov edx, dword [0x71567c]
fstp qword [esp + 0x210]
mov eax, dword [0x715680]
fld qword [0x713ef0]
mov dword [esp + 0x1a8], ecx
fstp qword [esp + 0x68]
mov ecx, dword [0x709b38]
mov dword [esp + 0x124], ecx
mov ecx, dword [0x71566c]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x11c], edx
mov edx, dword [0x715664]
mov dword [esp + 0x190], eax
mov eax, dword [0x715668]
mov dword [esp + 0x1e4], edx
movzx edx, word [0x715660]
mov dword [esp + 0x12c], eax
mov eax, dword [0x715678]
mov dword [esp + 0x134], edx
mov edx, dword [0x715670]
mov ecx, 8
mov esi, 0x71561c
lea edi, [esp + 0x278]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x170], eax
mov eax, dword [0x715674]
mov ecx, 8
mov esi, 0x71563c
lea edi, [esp + 0x258]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x71565c]
mov dword [esp + 0xac], ecx
mov ecx, dword [0x713ee4]
mov dword [esp + 0x174], edx
mov edx, dword [0x713ef8]
mov dword [esp + 0x144], eax
mov eax, dword [0x713f1c]
mov dword [esp + 0x154], ecx
mov ecx, dword [0x709160]
mov dword [esp + 0x18c], edx
mov edx, dword [0x70914c]
mov dword [esp + 0xb0], eax
mov eax, dword [0x709150]
mov dword [esp + 0xb8], ecx
mov ecx, dword [0x708fd4]
mov dword [esp + 0xc0], edx
mov edx, dword [0x709000]
mov dword [esp + 0xc8], eax
mov eax, dword [0x709004]
mov dword [esp + 0xd0], ecx
mov ecx, dword [0x713f20]
mov dword [esp + 0xd8], edx
mov edx, dword [0x714048]
mov dword [esp + 0xe0], eax
mov eax, dword [0x715684]
mov dword [esp + 0xe8], ecx
mov ecx, dword [0x715688]
mov dword [esp + 0xf0], edx
mov edx, dword [0x71568c]
mov dword [esp + 0xf8], eax
mov eax, dword [0x71d690]
mov dword [esp + 0x100], ecx
mov ecx, dword [0x71d694]
mov dword [esp + 0x78], edx
mov edx, dword [0x71d698]
mov dword [esp + 0x88], eax
mov eax, dword [0x71d69c]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x71d6a0]
mov dword [esp + 0x1e8], edx
mov edx, dword [0x71d6a4]
mov dword [esp + 0x1ec], eax
mov eax, dword [0x71d6a8]
mov dword [esp + 0x1f0], ecx
mov ecx, dword [0x71d6ac]
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], ecx
lea edx, [esp + 0xe80]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], 0x715690
mov dword [esp + 0x54], 0x8000
cld
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x54]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x71d6b4]
mov eax, dword [0x71d6b0]
mov edx, dword [0x71d6b8]
mov dword [esp + 0x8c], ecx
mov ecx, dword [0x71d6c0]
mov dword [esp + 0x98], ecx
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [esp + 0x120], eax
mov eax, dword [0x71d6bc]
mov ecx, 0x148
mov esi, 0x708ab0
lea edi, [esp + 0x960]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x71449c]
mov dword [esp + 0x54], ecx
mov ecx, dword [0x709f90]
mov dword [esp + 0x128], ecx
mov ecx, dword [0x709f8c]
mov dword [esp + 0x94], eax
mov eax, dword [0x71d6c8]
mov dword [esp + 0x90], edx
mov edx, dword [0x71d6c4]
mov dword [esp + 0x140], ecx
mov ecx, dword [0x708fe0]
mov dword [esp + 0xa0], eax
mov eax, dword [0x7144a4]
mov dword [esp + 0x9c], edx
mov edx, dword [0x7144a0]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x118], eax
mov eax, dword [0x709f98]
mov dword [esp + 0x110], edx
mov edx, dword [0x709f94]
mov dword [esp + 0x138], eax
mov eax, dword [0x708fdc]
mov dword [esp + 0x130], edx
mov edx, dword [0x714044]
mov ecx, 0x17
mov esi, 0x709018
lea edi, [esp + 0x900]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x60], eax
mov ecx, 0xa
mov esi, 0x709074
lea edi, [esp + 0x218]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x148], edx
mov edx, dword [0x709010]
push 0x709fac
lea eax, [esp + 0x39c]
mov ecx, 0x13
mov esi, 0x70909c
lea edi, [esp + 0x7b4]
push eax
mov dword [esp + 0x48], edx
rep movsd dword es:[edi], dword [esi]
call ebp
push 0x70a0b0
lea ecx, [esp + 0x5a4]
push ecx
call ebp
push 0x70a3bc
lea edx, [esp + 0x29c]
push edx
call ebp
push 0x70a1b0
lea eax, [esp + 0x4a4]
push eax
call ebp
push 0x70a2b4
lea ecx, [esp + 0x6ac]
push ecx
call ebp
mov dword [esp + 0x80], 0x14c20
mov dword [esp + 0x7c], 0
cld
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edi, 0x708ab0
rep stosb byte es:[edi], al
lea edx, [esp + 0x6a8]
push edx
push 0x70a2b4
call ebp
lea eax, [esp + 0x398]
push eax
push 0x709fac
call ebp
lea ecx, [esp + 0x5a0]
push ecx
push 0x70a0b0
call ebp
lea edx, [esp + 0x298]
push edx
push 0x70a3bc
call ebp
lea eax, [esp + 0x4a0]
push eax
push 0x70a1b0
call ebp
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x20c]
mov eax, dword [esp + 0x108]
mov dword [0x709fa8], ecx
mov ecx, dword [esp + 0x54]
mov dword [0x7144b4], edx
mov edx, dword [esp + 0x110]
mov dword [0x7144a8], eax
mov eax, dword [esp + 0x118]
mov dword [0x71449c], ecx
mov ecx, dword [esp + 0x150]
mov dword [0x7144a0], edx
mov edx, dword [esp + 0x158]
mov dword [0x7144a4], eax
mov eax, dword [esp + 0x160]
mov dword [0x709108], ecx
mov ecx, dword [esp + 0x168]
mov dword [0x70a2b0], edx
mov edx, dword [esp + 0x1e0]
mov dword [0x70a3b8], eax
mov eax, dword [esp + 0x204]
mov dword [0x709110], ecx
mov ecx, dword [esp + 0xb4]
mov dword [0x709114], edx
mov edx, dword [esp + 0x15c]
mov dword [0x709118], eax
mov eax, dword [esp + 0xbc]
mov dword [0x70f4a0], ecx
mov ecx, dword [esp + 0x194]
mov dword [0x70f4a4], edx
mov edx, dword [esp + 0xc4]
mov dword [0x70f4ac], eax
mov eax, dword [esp + 0x164]
mov dword [0x70f4b4], ecx
mov ecx, dword [esp + 0xcc]
mov dword [0x708ffc], edx
mov edx, dword [esp + 0x19c]
mov dword [0x708ff8], eax
mov eax, dword [esp + 0xd4]
mov dword [0x70f498], ecx
mov ecx, dword [esp + 0x16c]
mov dword [0x708fd8], edx
mov edx, dword [esp + 0xdc]
mov dword [0x714494], eax
mov eax, dword [esp + 0x1a4]
mov dword [0x714498], ecx
mov ecx, dword [esp + 0xe4]
mov dword [0x70f494], edx
mov edx, dword [esp + 0x1ac]
mov dword [0x709b28], eax
mov eax, dword [esp + 0xec]
mov dword [0x709b2c], ecx
mov ecx, dword [esp + 0x178]
mov dword [0x7144bc], edx
mov edx, dword [esp + 0xf4]
mov dword [0x7144b8], eax
mov eax, dword [esp + 0x1a0]
mov dword [0x714674], ecx
mov ecx, dword [esp + 0xfc]
mov dword [0x7144b0], ebx
mov dword [0x713f0c], edx
mov dword [0x713f10], eax
mov edx, dword [esp + 0x180]
fld qword [esp + 0x210]
mov eax, dword [esp + 0x104]
mov dword [0x713f14], ecx
mov ecx, dword [esp + 0x200]
mov dword [0x713f04], ecx
mov ecx, dword [esp + 0x114]
mov dword [0x713efc], edx
mov edx, dword [esp + 0x10c]
mov dword [0x713f00], eax
mov eax, dword [esp + 0x188]
mov dword [0x714668], ecx
mov ecx, dword [esp + 0x190]
mov dword [0x714660], edx
mov edx, dword [esp + 0x1a8]
mov dword [0x714664], eax
mov eax, dword [esp + 0x11c]
mov dword [0x715680], ecx
mov ecx, dword [esp + 0x12c]
mov dword [0x71466c], edx
mov edx, dword [esp + 0x124]
mov dword [0x71567c], eax
mov eax, dword [esp + 0x1e4]
mov dword [0x715668], ecx
mov ecx, dword [esp + 0x170]
mov dword [0x709b38], edx
mov edx, dword [esp + 0x198]
mov dword [0x715664], eax
mov ax, word [esp + 0x134]
mov dword [0x715678], ecx
mov dword [0x71566c], edx
mov edx, dword [esp + 0xac]
mov word [0x715660], ax
mov eax, dword [esp + 0x174]
mov ecx, 8
lea esi, [esp + 0x278]
mov edi, 0x71561c
rep movsd dword es:[edi], dword [esi]
mov ecx, 8
lea esi, [esp + 0x258]
mov edi, 0x71563c
rep movsd dword es:[edi], dword [esi]
fstp qword [0x713ee8]
fld qword [esp + 0x68]
fstp qword [0x713ef0]
mov ecx, dword [esp + 0x144]
mov dword [0x71565c], edx
mov edx, dword [esp + 0x17c]
mov dword [0x715670], eax
mov eax, dword [esp + 0x14c]
mov dword [0x715674], ecx
mov ecx, dword [esp + 0x184]
mov dword [0x70f4b8], edx
mov edx, dword [esp + 0x154]
mov dword [0x70f4bc], eax
mov eax, dword [esp + 0x18c]
mov dword [0x70f4c4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [0x713ee4], edx
mov edx, dword [esp + 0xb8]
mov dword [0x713ef8], eax
mov eax, dword [esp + 0xc0]
mov dword [0x713f1c], ecx
mov ecx, dword [esp + 0xc8]
mov dword [0x709160], edx
mov edx, dword [esp + 0xd0]
mov dword [0x70914c], eax
mov eax, dword [esp + 0xd8]
mov dword [0x709150], ecx
mov ecx, dword [esp + 0xe0]
mov dword [0x708fd4], edx
mov edx, dword [esp + 0xe8]
mov dword [0x709000], eax
mov eax, dword [esp + 0xf0]
mov dword [0x709004], ecx
mov ecx, dword [esp + 0xf8]
mov dword [0x713f20], edx
mov edx, dword [esp + 0x100]
mov dword [0x714048], eax
mov dword [0x715684], ecx
mov dword [0x715688], edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov dword [0x71568c], eax
mov eax, dword [esp + 0x1e8]
mov dword [0x71d690], ecx
mov ecx, dword [esp + 0x1ec]
mov dword [0x71d694], edx
mov edx, dword [esp + 0x1f0]
mov dword [0x71d698], eax
mov eax, dword [esp + 0x1f4]
mov dword [0x71d69c], ecx
mov ecx, dword [esp + 0x1f8]
mov dword [0x71d6a0], edx
mov edx, dword [esp + 0x1fc]
mov dword [0x71d6a4], eax
lea eax, [esp + 0xe80]
mov dword [0x71d6a8], ecx
mov dword [0x71d6ac], edx
mov dword [0x709140], 0xffffffff
mov dword [esp + 0x88], 0x715690
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], 0x8000
cld
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov dword [0x71d6b0], ecx
mov ecx, dword [esp + 0x94]
mov dword [0x71d6bc], ecx
mov ecx, dword [esp + 0xa0]
mov dword [0x71d6c8], ecx
mov dword [0x71d6b4], edx
mov edx, dword [esp + 0x98]
mov dword [0x71d6b8], eax
mov eax, dword [esp + 0x9c]
mov dword [0x71d6c0], edx
mov edx, dword [esp + 0x128]
mov dword [0x71d6c4], eax
mov eax, dword [esp + 0x130]
mov ecx, 0x148
lea esi, [esp + 0x960]
mov edi, 0x708ab0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x138]
mov dword [0x709f98], ecx
mov ecx, dword [esp + 0x60]
mov dword [0x709f90], edx
mov edx, dword [esp + 0x140]
mov dword [0x709f94], eax
mov eax, dword [esp + 0x148]
mov dword [0x708fdc], ecx
mov dword [0x709f8c], edx
mov edx, dword [esp + 0x48]
mov dword [0x714044], eax
mov eax, dword [esp + 0x40]
mov dword [0x708fe0], edx
mov dword [0x709010], eax
mov ecx, 0x17
lea esi, [esp + 0x900]
mov edi, 0x709018
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xa
lea esi, [esp + 0x218]
mov edi, 0x709074
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x13
lea esi, [esp + 0x7b0]
mov edi, 0x70909c
rep movsd dword es:[edi], dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.user32
call edi
mov esi, eax
test esi, esi
je 0x4e7063
push str.UpdateLayeredWindow
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push esi
mov dword [0x71404c], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [0x70a1b0], 0
jne 0x4e7088
cmp byte [0x70a0b0], 0
je 0x4e707c
push 0x70a0b0
jmp 0x4e7081
push str.D123987X
push 0x70a1b0
call ebp
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x708fd0], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x714498], 0x106
mov dword [0x70900c], eax
jl 0x4e71b0
push str.Kernel32.dll
call edi
mov esi, eax
cmp esi, ebx
je 0x4e71b0
push str.GlobalMemoryStatusEx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, eax
cmp edx, ebx
je 0x4e71a9
lea ecx, [esp + 0x218]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], 0x40
mov dword [esp + 0x60], ebx
cld
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
rep stosb byte es:[edi], al
lea eax, [esp + 0x218]
push eax
mov dword [esp + 0x21c], 0x40
call edx
fild qword [esp + 0x228]
fld qword [0x6a1598]
sub esp, 0x10
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 8]
fild qword [esp + 0x230]
fmulp st(1)
fstp qword [esp]
push 0x6a21c8
call fcn.004e3210
fild qword [esp + 0x23c]
add esp, 0xc
lea ecx, [esp + 0x808]
fmul qword [0x6a1598]
fstp qword [esp]
push str._.2fMB_n
push ecx
call fcn.0052b650
add esp, 0x10
lea edx, [esp + 0x800]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x22c]
mov edx, dword [esp + 0x220]
mov dword [0x708db8], eax
mov eax, dword [esp + 0x224]
mov dword [0x708dbc], ecx
mov dword [0x708dc0], edx
mov dword [0x708dc4], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [0x708dc0]
or ecx, dword [0x708dc4]
jne 0x4e728c
lea edx, [esp + 0x8c]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
fild dword [esp + 0x98]
mov eax, dword [esp + 0x98]
test eax, eax
jge 0x4e71e8
fadd qword [0x6a1590]
fld qword [0x6a1598]
mov ecx, dword [esp + 0x94]
fmul st(1), st(0)
sub esp, 0x10
test ecx, ecx
fxch st(1)
fstp qword [esp + 8]
fild dword [esp + 0xa4]
jge 0x4e7211
fadd qword [0x6a1590]
fmulp st(1)
fstp qword [esp]
push 0x6a21c8
call fcn.004e3210
fild dword [esp + 0xac]
mov edx, dword [esp + 0xac]
test edx, edx
jge 0x4e7238
fadd qword [0x6a1590]
fmul qword [0x6a1598]
add esp, 0xc
lea eax, [esp + 0x808]
fstp qword [esp]
push str._.2fMB_n
push eax
call fcn.0052b650
add esp, 0x10
lea ecx, [esp + 0x800]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
mov dword [0x708db8], edx
mov dword [0x708dbc], ebx
mov dword [0x708dc0], eax
mov dword [0x708dc4], ebx
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call ebx
push 1
mov dword [0x709b10], eax
call ebx
push 0
mov dword [0x709b14], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov esi, eax
push 0xe
push esi
call edi
push 0xc
push esi
mov dword [esp + 0x48], eax
call edi
mov ecx, dword [esp + 0x40]
imul ecx, eax
push esi
push 0
mov dword [0x709b18], ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.004ebdb0
add esp, 8
push 0x709b08
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov eax, dword [0x709b08]
or eax, dword [0x709b0c]
mov edi, 1
mov dword [0x709b04], edi
jne 0x4e7317
mov dword [0x709b04], 0
push 8
lea ecx, [esp + 0x5c]
push ecx
call dword [0x7090b4]
mov edx, dword [esp + 0x58]
push edx
call dword [0x7090a8]
xor esi, esi
cmp dword [0x709b04], esi
je 0x4e742f
push 0x6a21a4
call fcn.004e16a0
add esp, 4
xor edi, edi
call dword [0x7090b0]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call dword [0x7090b0]
mov dword [esp + 0x40], eax
cmp edi, 0x3c
je 0x4e73c3
call dword [0x7090b0]
sub eax, dword [esp + 0x40]
cmp eax, 0x3e8
jae 0x4e73c3
lea ecx, [esp + 0x60]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x64]
jne 0x4e73a0
cmp ecx, dword [esp + 0x4c]
je 0x4e73ab
add edi, 1
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
call dword [0x7090b0]
cmp eax, dword [esp + 0x54]
je 0x4e73be
add esi, 1
mov dword [esp + 0x54], eax
cmp esi, 0x3c
jne 0x4e736b
push edi
push esi
push 0x6a2158
call fcn.004e3210
push 0x6a1608
call fcn.004e16a0
add esp, 0x10
cmp esi, edi
jle 0x4e73fe
mov edx, dword [esp + 0x58]
push edx
push str.Multi_Media_Timer
call fcn.004e3210
add esp, 8
mov dword [0x709b04], 0
jmp 0x4e741d
fild qword [0x709b08]
sub esp, 8
fdiv qword [0x69e228]
fstp qword [esp]
push 0x6a20dc
call fcn.004e3210
add esp, 0xc
push 0x6a1608
call fcn.004e16a0
add esp, 4
xor esi, esi
lea edi, [esi + 1]
call dword [0x7090b0]
and eax, 0x7fffffff
push eax
call fcn.0052c460
add esp, 4
push 2
push esi
push esi
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [0x71567c], esi
jne 0x4e74cf
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
add eax, 0xfffffc5c
cmp eax, 0x12
ja case.0x4e746e.933
movzx eax, byte [eax + 0x4e7a60]
jmp dword [eax*4 + 0x4e7a4c]
mov dword [0x71567c], 2
mov dword [0x715680], 0x3b5
jmp 0x4e74cf
mov dword [0x71567c], 3
mov dword [0x715680], 0x3b6
jmp 0x4e74cf
mov dword [0x71567c], 4
mov dword [0x715680], 0x3a8
jmp 0x4e74cf
mov dword [0x715680], 0x3a4
jmp 0x4e74c9
mov dword [0x715680], esi
mov dword [0x71567c], edi
cmp dword [0x714660], esi
jne 0x4e7a3f
push 0x6a20c0
call fcn.004e16a0
add esp, 4
push esi
push 0x70a1b0
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x4e7525
cmp dword [0x709b28], esi
jne 0x4e751e
push 0x6a2094
call fcn.004e16a0
add esp, 4
mov dword [0x70911c], edi
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6a2070
jmp 0x4e752a
push 0x6a2050
call fcn.004e16a0
add esp, 4
cmp dword [0x70f4ac], esi
je 0x4e7557
cmp dword [0x714660], esi
jne 0x4e7557
mov ecx, dword [0x70f4a4]
push ecx
mov dword [0x7139d0], esi
call fcn.004dcbb0
add esp, 4
cmp dword [0x709000], edi
jne 0x4e757a
mov edx, dword [0x708fd4]
push 0xfffffffffffffffc
push edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [0x709008], eax
xor ebx, ebx
jmp 0x4e7966
lea eax, [esp + 0x1b0]
mov dword [0x709b20], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], 0x30
mov dword [esp + 0x60], esi
cld
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
rep stosb byte es:[edi], al
cmp dword [0x70f498], esi
mov eax, dword [0x708fd0]
mov dword [esp + 0x1b4], 3
mov dword [esp + 0x1b8], 0x4e55e0
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], eax
mov ecx, 0x7f00
je 0x4e75ee
movzx ecx, word [0x70f498]
push ecx
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push esi
mov dword [esp + 0x1d0], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 5
mov dword [esp + 0x1d0], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x6a202c
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], 0x70a1b0
mov dword [esp + 0x1b4], 0x30
mov dword [esp + 0x1e0], esi
call fcn.004e16a0
add esp, 4
lea ecx, [esp + 0x1b0]
push ecx
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x4e766f
mov dword [0x70911c], 1
jmp 0x4e767c
push 0x6a2018
call fcn.004e16a0
add esp, 4
cmp byte [0x70a0b0], 0
jne 0x4e7691
push str.DxLib
push 0x70a0b0
call ebp
cmp dword [0x709108], esi
je 0x4e78a1
push 0x6a1fe0
call fcn.004e16a0
mov eax, 1
add esp, 4
xor edi, edi
cmp dword [0x713f1c], eax
jne 0x4e76bc
lea edi, [eax + 0x1f]
cmp dword [0x714048], eax
jne 0x4e76ca
or edi, 0x80000
mov ebp, eax
xor esi, esi
cmp dword [0x709110], ebp
jne 0x4e76db
mov esi, 0x10000
cmp dword [0x713f18], ebp
jne 0x4e76e9
or esi, 0x10000000
cmp dword [0x713ee4], ebp
jne 0x4e76f7
or esi, 0x40000
cmp dword [0x713f04], ebp
mov dword [0x709164], ebp
jne 0x4e775e
cmp dword [0x713ef8], 0
je 0x4e771f
mov edx, dword [0x713efc]
mov eax, dword [0x713f00]
mov dword [esp + 0x38], edx
jmp 0x4e7796
fild dword [0x713efc]
sub esp, 0x10
fidiv dword [esp + 0x48]
fst qword [esp + 0x50]
fild dword [0x713f00]
fidiv dword [esp + 0x4c]
fst qword [esp + 0x58]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.004e2160
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.004dc790
add esp, 0x10
jmp 0x4e776d
lea edx, [esp + 0x48]
lea eax, [esp + 0x40]
push edx
push eax
call fcn.004dc790
fstp st(0)
fild dword [esp + 0x40]
fmul qword [esp + 0x48]
fstp qword [esp]
call fcn.004dc240
fild dword [esp + 0x44]
mov dword [esp + 0x40], eax
fmul qword [esp + 0x50]
fstp qword [esp]
call fcn.004dc240
add esp, 8
mov ecx, dword [esp + 0x38]
push eax
push ecx
push 0
push 0
lea edx, [esp + 0x78]
push edx
mov dword [esp + 0x50], eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0x708ffc]
mov ecx, dword [eax*4 + 0x6a147c]
mov edx, dword [eax*4 + 0x6a1450]
add ecx, edi
push ecx
push 0
add edx, esi
push edx
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x68]
mov ecx, eax
neg ecx
mov dword [0x708fe8], ecx
mov ecx, dword [esp + 0x74]
sub ecx, eax
push 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
call ebx
sub eax, dword [esp + 0x38]
push ebp
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x6c], eax
call ebx
sub eax, dword [esp + 0x3c]
push 0
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x70], eax
call ebx
sub eax, dword [esp + 0x38]
push ebp
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x74], eax
call ebx
mov ecx, dword [esp + 0x3c]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x74], eax
cmp dword [0x713f14], ebp
jne 0x4e7853
mov ebp, dword [0x713f10]
mov edx, dword [0x713f0c]
jmp 0x4e785b
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov ebx, dword [0x708fd0]
mov eax, dword [0x708ffc]
push 0
push ebx
mov ebx, dword [0x70f4a4]
push ebx
xor ebx, ebx
push ebx
push ecx
mov ecx, dword [esp + 0x4c]
push ecx
push ebp
push edx
mov edx, dword [eax*4 + 0x6a1450]
mov eax, dword [eax*4 + 0x6a147c]
add edx, esi
push edx
push 0x70a0b0
push 0x70a1b0
add eax, edi
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
jmp 0x4e78f1
push 0x6a1fb0
call fcn.004e16a0
mov ecx, dword [0x708fd0]
mov edx, dword [esp + 0x40]
mov eax, dword [0x708ffc]
add esp, 4
push esi
push ecx
mov ecx, dword [esp + 0x40]
push esi
push esi
push edx
mov edx, dword [eax*4 + 0x6a14a8]
mov eax, dword [eax*4 + str._b_b_b_b_b_b_b_b_b_b]
push ecx
push esi
push esi
push edx
push 0x70a0b0
push 0x70a1b0
push eax
mov dword [0x709164], esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
xor ebx, ebx
cmp eax, ebx
mov dword [0x708fd4], eax
jne 0x4e7919
push 0x6a1f90
mov dword [0x70911c], 1
call fcn.004e16a0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6a1f70
call fcn.004e16a0
add esp, 4
cmp dword [0x713f1c], ebx
jne 0x4e794c
mov ecx, dword [0x708fd4]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x708fd4]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x4e7966
mov eax, dword [0x708fd4]
push ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x6a1f58
call fcn.004e16a0
add esp, 4
cmp dword [0x709108], ebx
mov dword [0x709120], ebx
mov dword [0x709124], ebx
mov dword [0x709134], 1
jne 0x4e7998
push 0x6a1f3c
call fcn.004e16a0
add esp, 4
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
push 0x6a1f24
call fcn.004e16a0
add esp, 4
cmp dword [0x703e2c], ebx
jne 0x4e79c0
mov eax, dword [0x709010]
cmp eax, ebx
je 0x4e79c0
mov ecx, dword [0x708fd4]
push ebx
push ecx
call eax
cmp dword [0x709108], ebx
je 0x4e79fb
mov edx, dword [0x708fd4]
push 0x7090f8
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x708fd4]
mov esi, dword [sym.imp.USER32.dll_ClientToScreen]
push 0x7090f8
push eax
call esi
mov ecx, dword [0x708fd4]
push 0x709100
push ecx
call esi
mov edx, dword [0x709164]
push edx
call fcn.004dcc60
add esp, 4
cmp dword [0x709000], ebx
mov dword [0x709154], ebx
jne 0x4e7a3f
cmp dword [0x713f1c], ebx
jne 0x4e7a39
mov eax, dword [0x708fd4]
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
cmp dword [0x713f1c], ebx
jne 0x4e7a39
call fcn.004e2cc0
mov dword [0x709b20], ebx
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret