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.00522a20
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.004bd800
push ecx
mov ecx, ebx
movss dword [esp], xmm0
call fcn.004f9180
mov ecx, dword [0x719230]
call fcn.004fc690
lea ecx, [esi + 0x2dc]
call fcn.00465460
mov ecx, dword [esp + 0xc]
call fcn.004ce9c0
mov ecx, edi
call fcn.00462820
mov ecx, ebx
call fcn.00526170
mov ecx, ebx
call fcn.00525290
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00522a80
push dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x24]
call fcn.00526150
mov ecx, edi
call fcn.00462a50
mov ecx, edi
call fcn.00462ad0
mov ecx, edi
call fcn.00462a70
mov ecx, edi
call fcn.00537680
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.00537a50
mov ecx, dword [esp + 0xc]
call fcn.004ce570
mov ecx, dword [esp + 0x14]
call fcn.0047a0d0
mov ecx, dword [esp + 0x18]
call fcn.00549bd0
mov ecx, edi
call fcn.00537680
mov ecx, edi
call fcn.004627e0
mov ecx, edi
call fcn.00537a50
mov ecx, edi
call fcn.00462af0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004e1080
lea ecx, [esi + 0x2dc]
mov dword [esp + 0x24], eax
call fcn.00465460
call fcn.004e1080
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], eax
call fcn.004ce9c0
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.00462820
call fcn.004e1080
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.00526170
mov ecx, ebx
call fcn.00525290
mov ecx, dword [esp + 0x10]
call fcn.00522a20
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.004bd800
push ecx
mov ecx, ebx
movss dword [esp], xmm0
call fcn.004f9180
call fcn.004e1080
mov ecx, dword [0x719230]
mov dword [esp + 0x34], eax
call fcn.004fc690
call fcn.004e1080
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00522a80
push dword [esp + 0x20]
mov ecx, ebx
push dword [esp + 0x20]
call fcn.00526150
mov ecx, edi
call fcn.00462a50
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00462ad0
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.00462a70
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.00537680
mov ecx, edi
call fcn.00462790
mov ecx, edi
call fcn.00462b60
call fcn.004e1080
lea ecx, [esi + 0x2dc]
mov dword [esp + 0x3c], eax
call fcn.004657c0
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.00462b90
mov ecx, edi
call fcn.00462a90
call fcn.004e1080
mov dword [esp + 0x44], eax
mov ecx, edi
call fcn.00462ab0
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.00537a50
mov ecx, dword [esp + 0xc]
call fcn.004ce570
call fcn.004e1080
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
call fcn.0047a0d0
call fcn.004e1080
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.00549bd0
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.00537680
mov ecx, edi
call fcn.004627e0
mov ecx, edi
call fcn.00537a50
call fcn.004e1080
mov ecx, edi
mov dword [esp + 0x4c], eax
call fcn.00462af0
call fcn.004e1080
mov edi, eax
call fcn.004e1080
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.004f89f0
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.004e1080
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.005d8689
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x74f7a0
call fcn.0058d3a0
add esp, 4
cmp dword [0x74f7a0], 0xffffffff
jne 0x45b1d2
push 0x6710e8
push str.perf_game_render.txt
call fcn.005d9fdc
push 0x74f7a0
mov dword [0x74f7a4], eax
call fcn.0058d34f
add esp, 0xc
jmp 0x45b1d2