Function at 0x4c45d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov dword [ebp - 4], ecx
movzx eax, byte [0x792b14]
test eax, eax
jne 0x4c4845
mov ecx, dword [ebp - 4]
add ecx, 0x2ed08
call fcn.0053c940
mov ecx, dword [ebp - 4]
add ecx, 0x210
call fcn.0055ca20
fstp dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045b730
fstp dword [ebp - 0xc]
push ecx
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x674f7c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x10]
movss dword [esp], xmm0
call fcn.0044c610
mov ecx, eax
call fcn.004d12a0
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.0052f1a0
push ecx
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x674f7c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x10]
movss dword [esp], xmm0
call fcn.0044c610
mov ecx, eax
call fcn.004d12a0
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.0052f1a0
call fcn.004599e0
mov ecx, eax
call fcn.00541e60
mov ecx, dword [ebp - 4]
add ecx, 0x2d8
call fcn.00461390
mov ecx, dword [ebp - 4]
add ecx, 0x2b0
call fcn.00506a30
mov ecx, dword [ebp - 4]
add ecx, 0x2ed08
call fcn.0053c860
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045bf70
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.00560100
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.0055f240
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x210
call fcn.0055ca80
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.005600e0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c090
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c190
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c0d0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e570
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045be70
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c300
mov ecx, dword [ebp - 4]
add ecx, 0x2d8
call fcn.00461410
mov ecx, dword [ebp - 4]
add ecx, 0x2ed08
call fcn.0053c970
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c350
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c110
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045bed0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c150
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e910
mov ecx, dword [ebp - 4]
add ecx, 0x2b0
call fcn.00506570
mov ecx, dword [ebp - 4]
add ecx, 0x20914
call fcn.00471450
mov ecx, dword [ebp - 4]
add ecx, 0x15c
call fcn.005951a0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e570
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045bef0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e910
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c1d0
jmp 0x4c4d33
call fcn.00519f70
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2d8
call fcn.00461390
call fcn.00519f70
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2b0
call fcn.00506a30
call fcn.00519f70
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045bf70
call fcn.00519f70
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.00560100
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.0055f240
mov ecx, dword [ebp - 4]
add ecx, 0x210
call fcn.0055ca20
fstp dword [ebp - 0x64]
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045b730
fstp dword [ebp - 0x60]
push ecx
movss xmm0, dword [ebp - 0x60]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x674f7c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x64]
movss dword [esp], xmm0
call fcn.0044c610
mov ecx, eax
call fcn.004d12a0
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.0052f1a0
call fcn.00519f70
mov dword [ebp - 0x24], eax
call fcn.004599e0
mov ecx, eax
call fcn.00541e60
call fcn.00519f70
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x68]
push edx
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x210
call fcn.0055ca80
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x788
call fcn.005600e0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c090
call fcn.00519f70
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c190
call fcn.00519f70
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c0d0
call fcn.00519f70
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e570
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045be70
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c300
call fcn.00519f70
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2d8
call fcn.00461410
call fcn.00519f70
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c350
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c110
call fcn.00519f70
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c150
call fcn.00519f70
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e910
mov ecx, dword [ebp - 4]
add ecx, 0x2b0
call fcn.00506570
call fcn.00519f70
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 4]
add ecx, 0x20914
call fcn.00471450
call fcn.00519f70
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 4]
add ecx, 0x15c
call fcn.005951a0
call fcn.00519f70
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e570
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045bef0
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0057e910
call fcn.00519f70
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a8ec
call fcn.0045c1d0
call fcn.00519f70
mov dword [ebp - 0x70], eax
call fcn.00519f70
mov dword [ebp - 0x14], eax
push 0x5a
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x4c4ad8
push 3
push 8
call fcn.0044c630
mov ecx, eax
call fcn.0052cdc0
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 8]
cmp ecx, 3
jae 0x4c4ae8
jmp 0x4c4d33
mov edx, dword [0x7d0fb4]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edx*4]
mov edx, dword [0x792b24]
cmp edx, dword [ecx + 0x20]
jle 0x4c4b3f
push 0x792b24
call fcn.005c80f9
add esp, 4
cmp dword [0x792b24], 0xffffffff
jne 0x4c4b3f
push 0x6814d4
push str.perf_game_render.txt
call fcn.00614ae2
add esp, 8
mov dword [0x792b20], eax
push 0x792b24
call fcn.005c80af
add esp, 4
call fcn.00519f70
push eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 8]
push eax
push str.GR.Total__d__Time__d__n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0x10
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 8]
push edx
push str.GR.DFM__d_n
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x18]
push ecx
push str.GR.EFT.UP__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
push eax
push str.GR.SHW__d_n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0xc
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x20]
push edx
push str.GR.STT__d_n
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x24]
push ecx
push str.GR.CLL__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x28]
push eax
push str.GR.BG.SKY__d_n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0xc
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x2c]
push edx
push 0x681558
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp - 0x30]
push ecx
push str.GR.BG.CLD__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x34]
push eax
push str.GR.BG.MAIN__d_n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0xc
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0x38]
push edx
push str.GR.CHR__d_n
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x3c]
push ecx
push str.GR.BG.WTR__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x40]
push eax
push str.GR.BG.EFT__d_n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0xc
mov edx, dword [ebp - 0x48]
sub edx, dword [ebp - 0x44]
push edx
push str.GR.EFT__d_n
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x48]
push ecx
push str.GR.ITM__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x4c]
push eax
push str.GR.FLY__d_n
mov ecx, dword [0x792b20]
push ecx
call fcn.00442520
add esp, 0xc
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x50]
push edx
push str.GR.BG.BLK__d_n
mov eax, dword [0x792b20]
push eax
call fcn.00442520
add esp, 0xc
mov ecx, dword [ebp - 0x70]
sub ecx, dword [ebp - 0x54]
push ecx
push str.GR.BG.LEN__d_n
mov edx, dword [0x792b20]
push edx
call fcn.00442520
add esp, 0xc
mov eax, dword [0x792b20]
push eax
call fcn.006156ae
add esp, 4
mov esp, ebp
pop ebp
ret