Function at 0x452f20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x721e34], 0
push ebx
push esi
push edi
mov edi, ecx
lea eax, [edi + 0x210]
lea ebx, [edi + 0x5279c]
mov dword [esp + 0x18], eax
lea esi, [edi + 0x78c]
jne 0x4530d5
lea eax, [edi + 0x56cd0]
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.00504d10
lea ecx, [edi + 0x210]
call fcn.00532360
mov ecx, ebx
fstp dword [esp + 0x14]
call fcn.00459a40
mov ecx, dword [0x721918]
call fcn.004ccfd0
test al, al
je 0x452f91
movss xmm1, dword [0x69662c]
jmp 0x452f99
movss xmm1, dword [0x69660c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x24]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.0050a860
mov ecx, dword [0x7218dc]
call fcn.0050dc30
lea ecx, [edi + 0x2d8]
call fcn.0045d1e0
lea ecx, [edi + 0x2b0]
call fcn.004decb0
mov ecx, dword [esp + 0x10]
call fcn.00504c30
mov ecx, ebx
call fcn.0045a870
mov ecx, esi
call fcn.00535bf0
mov ecx, esi
call fcn.00534d30
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.005323b0
push dword [esp + 0x14]
mov ecx, esi
push dword [esp + 0x20]
call fcn.00535bd0
mov ecx, ebx
call fcn.0045aa80
mov ecx, ebx
call fcn.0045ab00
mov ecx, ebx
call fcn.0045aaa0
mov ecx, ebx
call fcn.005464a0
mov ecx, ebx
call fcn.0045a7e0
mov ecx, ebx
call fcn.0045ab90
lea ecx, [edi + 0x2d8]
call fcn.0045d520
mov ecx, dword [esp + 0x10]
call fcn.00504d40
mov ecx, ebx
call fcn.0045abc0
mov ecx, ebx
call fcn.0045aac0
mov ecx, ebx
call fcn.0045a820
mov ecx, ebx
call fcn.0045aae0
mov ecx, ebx
call fcn.00546840
lea ecx, [edi + 0x2b0]
call fcn.004de700
mov esi, edi
lea ecx, [esi + 0x4d804]
call fcn.00474300
lea ecx, [esi + 0x54020]
call fcn.0049ca20
lea ecx, [esi + 0x15c]
call fcn.00557a90
mov ecx, ebx
call fcn.005464a0
mov ecx, ebx
call fcn.0045a830
mov ecx, ebx
call fcn.00546840
mov ecx, ebx
call fcn.0045ab20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004f0e80
lea ecx, [edi + 0x2d8]
mov dword [esp + 0x18], eax
call fcn.0045d1e0
call fcn.004f0e80
lea ecx, [edi + 0x2b0]
mov dword [esp + 0x14], eax
call fcn.004decb0
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.0045a870
call fcn.004f0e80
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00535bf0
mov ecx, esi
call fcn.00534d30
lea ecx, [edi + 0x210]
call fcn.00532360
mov ecx, ebx
fstp dword [esp + 0x20]
call fcn.00459a40
mov ecx, dword [0x721918]
call fcn.004ccfd0
test al, al
je 0x453153
movss xmm1, dword [0x69662c]
jmp 0x45315b
movss xmm1, dword [0x69660c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.0050a860
call fcn.004f0e80
mov ecx, dword [0x7218dc]
mov dword [esp + 0x24], eax
call fcn.0050dc30
call fcn.004f0e80
mov dword [esp + 0x28], eax
lea ecx, [edi + 0x210]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.005323b0
push dword [esp + 0x20]
mov ecx, esi
push dword [esp + 0x20]
call fcn.00535bd0
mov ecx, ebx
call fcn.0045aa80
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.0045ab00
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0045aaa0
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.005464a0
mov ecx, ebx
call fcn.0045a7e0
mov ecx, ebx
call fcn.0045ab90
call fcn.004f0e80
lea ecx, [edi + 0x2d8]
mov dword [esp + 0x30], eax
call fcn.0045d520
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.0045abc0
mov ecx, ebx
call fcn.0045aac0
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x38], eax
call fcn.0045aae0
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x3c], eax
call fcn.00546840
lea ecx, [edi + 0x54020]
call fcn.0049ca20
lea ecx, [edi + 0x2b0]
call fcn.004de700
call fcn.004f0e80
lea ecx, [edi + 0x4d804]
mov dword [esp + 0x40], eax
call fcn.00474300
call fcn.004f0e80
lea ecx, [edi + 0x15c]
mov dword [esp + 0x44], eax
call fcn.00557a90
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x48], eax
call fcn.005464a0
mov ecx, ebx
call fcn.0045a830
mov ecx, ebx
call fcn.00546840
call fcn.004f0e80
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.0045ab20
call fcn.004f0e80
mov ebx, eax
call fcn.004f0e80
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4532eb
mov ecx, dword [0x721908]
push 3
push 8
call fcn.0050a090
mov edi, dword [esp + 0x18]
sub esi, edi
cmp esi, 3
jb 0x45350e
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x759ea4]
cmp eax, dword [ecx + 0x20]
jg 0x453515
call fcn.004f0e80
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x24]
sub eax, edi
push eax
push str.GR.DFM__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x2c]
add esp, 0x1c
sub eax, dword [esp + 0x14]
push eax
push str.GR.EFT.UP__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.SHW__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x30]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.STT__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x34]
add esp, 0xc
sub eax, dword [esp + 0x24]
push eax
push str.GR.CLL__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x28]
push eax
push str.GR.BG.SKY__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x38]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.CLD__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.CHR__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.BG.WTR__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.EFT__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.EFT__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.ITM__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.FLY__d_n
push dword [0x759ea8]
call fcn.0044f750
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.BG.BLK__d_n
push dword [0x759ea8]
call fcn.0044f750
sub ebx, dword [esp + 0x58]
add esp, 0xc
push ebx
push str.GR.BG.LEN__d_n
push dword [0x759ea8]
call fcn.0044f750
add esp, 0xc
push dword [0x759ea8]
call fcn.005ec4d7
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x759ea4
call fcn.0059ccc9
add esp, 4
cmp dword [0x759ea4], 0xffffffff
jne 0x453313
push 0x67fad0
push str.perf_game_render.txt
call fcn.005e20eb
push 0x759ea4
mov dword [0x759ea8], eax
call fcn.0059cc7f
add esp, 0xc
jmp 0x453313