Function at 0x45ae40
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x7196f4], 0
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [esi + 0x2b0]
mov dword [esp + 0xc], ecx
lea eax, [esi + 0x210]
lea ecx, [esi + 0x1b734]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
lea edi, [esi + 0x26264]
lea ecx, [esi + 0x15c]
lea ebx, [esi + 0x7a0]
mov dword [esp + 0x18], ecx
jne 0x45afc1
mov ecx, eax
call fcn.00522950
mov ecx, edi
fstp dword [esp + 0x1c]
call fcn.00461970
mov ecx, dword [0x74f628]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x28]
mov dword [esp + 4], 0x42c80000
movss dword [esp], xmm0
call fcn.004bd730
push ecx
mov ecx, ebx
movss dword [esp], xmm0
call fcn.004f90b0
mov ecx, dword [0x719230]
call fcn.004fc5c0
lea ecx, [esi + 0x2dc]
call fcn.00465460
mov ecx, dword [esp + 0xc]
call fcn.004ce8f0
mov ecx, edi
call fcn.00462820
mov ecx, ebx
call fcn.005260a0
mov ecx, ebx
call fcn.005251c0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.005229b0
push dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x24]
call fcn.00526080
mov ecx, edi
call fcn.00462a50
mov ecx, edi
call fcn.00462ad0
mov ecx, edi
call fcn.00462a70
mov ecx, edi
call fcn.005375b0
mov ecx, edi
call fcn.00462790
mov ecx, edi
call fcn.00462b60
lea ecx, [esi + 0x2dc]
call fcn.004657c0
mov ecx, edi
call fcn.00462b90
mov ecx, edi
call fcn.00462a90
mov ecx, edi
call fcn.004627d0
mov ecx, edi
call fcn.00462ab0
mov ecx, edi
call fcn.00537980
mov ecx, dword [esp + 0xc]
call fcn.004ce4a0
mov ecx, dword [esp + 0x14]
call fcn.0047a0d0
mov ecx, dword [esp + 0x18]
call fcn.00549b40
mov ecx, edi
call fcn.005375b0
mov ecx, edi
call fcn.004627e0
mov ecx, edi
call fcn.00537980
mov ecx, edi
call fcn.00462af0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004e0fb0
lea ecx, [esi + 0x2dc]
mov dword [esp + 0x24], eax
call fcn.00465460
call fcn.004e0fb0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], eax
call fcn.004ce8f0
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.00462820
call fcn.004e0fb0
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.005260a0
mov ecx, ebx
call fcn.005251c0
mov ecx, dword [esp + 0x10]
call fcn.00522950
mov ecx, edi
fstp dword [esp + 0x20]
call fcn.00461970
mov ecx, dword [0x74f628]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x2c]
mov dword [esp + 4], 0x42c80000
movss dword [esp], xmm0
call fcn.004bd730
push ecx
mov ecx, ebx
movss dword [esp], xmm0
call fcn.004f90b0
call fcn.004e0fb0
mov ecx, dword [0x719230]
mov dword [esp + 0x34], eax
call fcn.004fc5c0
call fcn.004e0fb0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.005229b0
push dword [esp + 0x20]
mov ecx, ebx
push dword [esp + 0x20]
call fcn.00526080
mov ecx, edi
call fcn.00462a50
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00462ad0
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.00462a70
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.005375b0
mov ecx, edi
call fcn.00462790
mov ecx, edi
call fcn.00462b60
call fcn.004e0fb0
lea ecx, [esi + 0x2dc]
mov dword [esp + 0x3c], eax
call fcn.004657c0
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.00462b90
mov ecx, edi
call fcn.00462a90
call fcn.004e0fb0
mov dword [esp + 0x44], eax
mov ecx, edi
call fcn.00462ab0
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.00537980
mov ecx, dword [esp + 0xc]
call fcn.004ce4a0
call fcn.004e0fb0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
call fcn.0047a0d0
call fcn.004e0fb0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.00549b40
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.005375b0
mov ecx, edi
call fcn.004627e0
mov ecx, edi
call fcn.00537980
call fcn.004e0fb0
mov ecx, edi
mov dword [esp + 0x4c], eax
call fcn.00462af0
call fcn.004e0fb0
mov edi, eax
call fcn.004e0fb0
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x45b1aa
mov ecx, dword [0x71924c]
push 3
push 8
call fcn.004f8920
mov ebx, dword [esp + 0x24]
sub esi, ebx
cmp esi, 3
jb 0x45b3cd
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x74f7a0]
cmp eax, dword [ecx + 0x20]
jg 0x45b3d4
call fcn.004e0fb0
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x38]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x48]
add esp, 0x1c
sub eax, dword [esp + 0x28]
push eax
push str.GR.EFT.UP__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.SHW__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.STT__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.CLL__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.SKY__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.CLD__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.CHR__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.BG.WTR__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.BG.EFT__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.EFT__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.ITM__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x24]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.FLY__d_n
push dword [0x74f7a4]
call fcn.004576a0
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x18]
push eax
push str.GR.BG.BLK__d_n
push dword [0x74f7a4]
call fcn.004576a0
sub edi, dword [esp + 0x58]
add esp, 0xc
push edi
push str.GR.BG.LEN__d_n
push dword [0x74f7a4]
call fcn.004576a0
add esp, 0xc
push dword [0x74f7a4]
call fcn.005d85f9
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x74f7a0
call fcn.0058d310
add esp, 4
cmp dword [0x74f7a0], 0xffffffff
jne 0x45b1d2
push 0x6710e8
push str.perf_game_render.txt
call fcn.005d9f4c
push 0x74f7a0
mov dword [0x74f7a4], eax
call fcn.0058d2bf
add esp, 0xc
jmp 0x45b1d2