Function at 0x450dd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x6fec74], 0
lea eax, [ecx + 0x2b0]
mov dword [esp + 4], eax
lea eax, [ecx + 0x1a924]
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x15c]
push ebx
mov dword [esp + 0x14], eax
lea ebx, [ecx + 0x210]
lea eax, [ecx + 0x2c05c]
push esi
mov dword [esp + 0x10], eax
lea esi, [ecx + 0x2a340]
lea eax, [ecx + 0x2d8]
push edi
lea edi, [ecx + 0x79c]
mov dword [esp + 0xc], eax
jne 0x450f5a
mov ecx, ebx
call fcn.00512960
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.004576d0
mov ecx, dword [esp + 0x14]
movaps xmm1, xmm0
call fcn.004af990
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.004e9110
mov ecx, dword [0x6fe7c4]
call fcn.004ec650
mov ecx, dword [esp + 0xc]
call fcn.0045b080
mov ecx, dword [esp + 0x10]
call fcn.004bef80
mov ecx, esi
call fcn.00458550
mov ecx, edi
call fcn.005160b0
mov ecx, edi
call fcn.005151d0
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
lea eax, [esp + 0x18]
push eax
call fcn.005129b0
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x18]
call fcn.00516090
mov ecx, esi
call fcn.00458760
mov ecx, esi
call fcn.004587e0
mov ecx, esi
call fcn.00458780
mov ecx, esi
call fcn.00526630
mov ecx, esi
call fcn.004584c0
mov ecx, esi
call fcn.00458870
mov ecx, dword [esp + 0xc]
call fcn.0045b3d0
mov ecx, esi
call fcn.004588a0
mov ecx, esi
call fcn.004587a0
mov ecx, esi
call fcn.00458500
mov ecx, esi
call fcn.004587c0
mov ecx, esi
call fcn.005269f0
mov ecx, dword [esp + 0x10]
call fcn.004bebb0
mov ecx, dword [esp + 0x18]
call fcn.0046fa30
mov ecx, dword [esp + 0x1c]
call fcn.00536320
mov ecx, esi
call fcn.00526630
mov ecx, esi
call fcn.00458510
mov ecx, esi
call fcn.005269f0
mov ecx, esi
call fcn.00458800
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004d17f0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
call fcn.0045b080
call fcn.004d17f0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
call fcn.004bef80
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.00458550
call fcn.004d17f0
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.005160b0
mov ecx, edi
call fcn.005151d0
mov ecx, ebx
call fcn.00512960
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.004576d0
mov ecx, dword [esp + 0x14]
movaps xmm1, xmm0
call fcn.004af990
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.004e9110
call fcn.004d17f0
mov ecx, dword [0x6fe7c4]
mov dword [esp + 0x34], eax
call fcn.004ec650
call fcn.004d17f0
mov dword [esp + 0x38], eax
mov ecx, ebx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.005129b0
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x18]
call fcn.00516090
mov ecx, esi
call fcn.00458760
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004587e0
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00458780
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00526630
mov ecx, esi
call fcn.004584c0
mov ecx, esi
call fcn.00458870
call fcn.004d17f0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
call fcn.0045b3d0
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.004588a0
mov ecx, esi
call fcn.004587a0
call fcn.004d17f0
mov dword [esp + 0x44], eax
mov ecx, esi
call fcn.004587c0
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.005269f0
mov ecx, dword [esp + 0x10]
call fcn.004bebb0
call fcn.004d17f0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
call fcn.0046fa30
call fcn.004d17f0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
call fcn.00536320
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00526630
mov ecx, esi
call fcn.00458510
mov ecx, esi
call fcn.005269f0
call fcn.004d17f0
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.00458800
call fcn.004d17f0
mov edi, eax
call fcn.004d17f0
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x45113c
mov ecx, dword [0x6fe7e0]
push 3
push 8
call fcn.004e8980
mov ebx, dword [esp + 0x24]
sub esi, ebx
cmp esi, 3
jb 0x45135f
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x734c38]
cmp eax, dword [ecx + 0x20]
jg 0x451366
call fcn.004d17f0
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x38]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x48]
add esp, 0x1c
sub eax, dword [esp + 0x28]
push eax
push str.GR.EFT.UP__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.SHW__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.STT__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.CLL__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.SKY__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.BG.CLD__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.CHR__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.WTR__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.BG.EFT__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.EFT__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x24]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.ITM__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x18]
push eax
push str.GR.FLY__d_n
push dword [0x734c3c]
call fcn.0044d6c0
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.BLK__d_n
push dword [0x734c3c]
call fcn.0044d6c0
sub edi, dword [esp + 0x58]
add esp, 0xc
push edi
push str.GR.BG.LEN__d_n
push dword [0x734c3c]
call fcn.0044d6c0
add esp, 0xc
push dword [0x734c3c]
call fcn.005cac6d
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x734c38
call fcn.00579817
add esp, 4
cmp dword [0x734c38], 0xffffffff
jne 0x451164
push 0x65a870
push str.perf_game_render.txt
call fcn.005bf68b
push 0x734c38
mov dword [0x734c3c], eax
call fcn.005797cd
add esp, 0xc
jmp 0x451164