Function at 0x44fe00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x70ac54], 0
lea eax, [ecx + 0x2b0]
mov dword [esp + 4], eax
lea eax, [ecx + 0x1920c]
push ebx
mov dword [esp + 0xc], eax
lea ebx, [ecx + 0x210]
lea eax, [ecx + 0x15c]
push esi
mov dword [esp + 0x14], eax
lea esi, [ecx + 0x1b978]
lea eax, [ecx + 0x2d8]
push edi
lea edi, [ecx + 0x79c]
mov dword [esp + 0xc], eax
jne 0x44ff76
mov ecx, ebx
call fcn.005077b0
mov ecx, esi
fstp dword [esp + 0x1c]
call fcn.00458b60
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.004deb70
mov ecx, dword [0x70a7a8]
call fcn.004e2080
mov ecx, dword [esp + 0xc]
call fcn.0045c520
mov ecx, dword [esp + 0x10]
call fcn.004b4a40
mov ecx, esi
call fcn.00459a00
mov ecx, edi
call fcn.0050aef0
mov ecx, edi
call fcn.0050a010
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00507800
push dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x24]
call fcn.0050aed0
mov ecx, esi
call fcn.00459c10
mov ecx, esi
call fcn.00459c90
mov ecx, esi
call fcn.00459c30
mov ecx, esi
call fcn.0051a510
mov ecx, esi
call fcn.00459970
mov ecx, esi
call fcn.00459d20
mov ecx, dword [esp + 0xc]
call fcn.0045c880
mov ecx, esi
call fcn.00459d50
mov ecx, esi
call fcn.00459c50
mov ecx, esi
call fcn.004599b0
mov ecx, esi
call fcn.00459c70
mov ecx, esi
call fcn.0051a8d0
mov ecx, dword [esp + 0x10]
call fcn.004b4670
mov ecx, dword [esp + 0x14]
call fcn.00470880
mov ecx, dword [esp + 0x18]
call fcn.0052abb0
mov ecx, esi
call fcn.0051a510
mov ecx, esi
call fcn.004599c0
mov ecx, esi
call fcn.0051a8d0
mov ecx, esi
call fcn.00459cb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c7040
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
call fcn.0045c520
call fcn.004c7040
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
call fcn.004b4a40
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.00459a00
call fcn.004c7040
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.0050aef0
mov ecx, edi
call fcn.0050a010
mov ecx, ebx
call fcn.005077b0
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00458b60
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.004deb70
call fcn.004c7040
mov ecx, dword [0x70a7a8]
mov dword [esp + 0x34], eax
call fcn.004e2080
call fcn.004c7040
mov dword [esp + 0x38], eax
mov ecx, ebx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00507800
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x20]
call fcn.0050aed0
mov ecx, esi
call fcn.00459c10
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00459c90
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00459c30
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.0051a510
mov ecx, esi
call fcn.00459970
mov ecx, esi
call fcn.00459d20
call fcn.004c7040
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
call fcn.0045c880
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00459d50
mov ecx, esi
call fcn.00459c50
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00459c70
call fcn.004c7040
mov dword [esp + 0x48], eax
mov ecx, esi
call fcn.0051a8d0
mov ecx, dword [esp + 0x10]
call fcn.004b4670
call fcn.004c7040
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
call fcn.00470880
call fcn.004c7040
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.0052abb0
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.0051a510
mov ecx, esi
call fcn.004599c0
mov ecx, esi
call fcn.0051a8d0
call fcn.004c7040
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.00459cb0
call fcn.004c7040
mov ebx, eax
call fcn.004c7040
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x45014e
mov ecx, dword [0x70a7c4]
push 3
push 8
call fcn.004de3e0
mov edi, dword [esp + 0x24]
sub esi, edi
cmp esi, 3
jb 0x450371
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x70b414]
cmp eax, dword [ecx + 0x20]
jg 0x450378
call fcn.004c7040
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x38]
sub eax, edi
push eax
push str.GR.DFM__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x48]
add esp, 0x1c
sub eax, dword [esp + 0x28]
push eax
push str.GR.EFT.UP__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.SHW__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.STT__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.CLL__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.SKY__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.CLD__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.CHR__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.WTR__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.BG.EFT__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.EFT__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.ITM__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x24]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.FLY__d_n
push dword [0x70b418]
call fcn.0044c6e0
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x18]
push eax
push str.GR.BG.BLK__d_n
push dword [0x70b418]
call fcn.0044c6e0
sub ebx, dword [esp + 0x58]
add esp, 0xc
push ebx
push str.GR.BG.LEN__d_n
push dword [0x70b418]
call fcn.0044c6e0
add esp, 0xc
push dword [0x70b418]
call fcn.005d47ad
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x70b414
call fcn.00585200
add esp, 4
cmp dword [0x70b414], 0xffffffff
jne 0x450176
push 0x667390
push str.perf_game_render.txt
call fcn.005cafeb
push 0x70b414
mov dword [0x70b418], eax
call fcn.005851af
add esp, 0xc
jmp 0x450176