Function at 0x44ec60
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x6f856c], 0
push ebx
mov ebx, ecx
push esi
push edi
lea edi, [ebx + 0x2f77c]
jne 0x44edfd
lea ecx, [ebx + 0x33b90]
call fcn.004f7060
lea ecx, [ebx + 0x218]
call fcn.005208c0
mov ecx, edi
fstp dword [esp + 0xc]
call fcn.00455910
mov ecx, dword [0x6f7e78]
call fcn.004adeb0
test al, al
je 0x44ecbb
movss xmm1, dword [0x66f3d8]
jmp 0x44ecc3
movss xmm1, dword [0x66f3b4]
sub esp, 0x10
lea ecx, [ebx + 0x794]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x1c]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.004fcdd0
mov ecx, dword [0x6f7e3c]
call fcn.00500070
lea ecx, [ebx + 0x2e4]
call fcn.00459b70
lea ecx, [ebx + 0x33b90]
call fcn.004f6f80
mov ecx, edi
call fcn.00456880
lea ecx, [ebx + 0x794]
call fcn.00524160
lea ecx, [ebx + 0x794]
call fcn.005232a0
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
push eax
lea ecx, [ebx + 0x218]
call fcn.00520910
push dword [esp + 0xc]
lea ecx, [ebx + 0x794]
push dword [esp + 0x14]
call fcn.00524140
mov ecx, edi
call fcn.00456a90
mov ecx, edi
call fcn.00456b10
mov ecx, edi
call fcn.00456ab0
mov ecx, edi
call fcn.005341c0
mov ecx, edi
call fcn.004567f0
mov ecx, edi
call fcn.00456ba0
lea ecx, [ebx + 0x2e4]
call fcn.00459eb0
lea ecx, [ebx + 0x33b90]
call fcn.004f7090
mov ecx, edi
call fcn.00456bd0
mov ecx, edi
call fcn.00456ad0
mov ecx, edi
call fcn.00456830
mov ecx, edi
call fcn.00456af0
mov ecx, edi
call fcn.00534560
lea ecx, [ebx + 0x2b8]
call fcn.004d13a0
lea ecx, [ebx + 0x2b32c]
call fcn.0046eaa0
lea ecx, [ebx + 0x15c]
call fcn.0054a3f0
mov ecx, edi
call fcn.005341c0
mov ecx, edi
call fcn.00456840
mov ecx, edi
call fcn.00534560
mov ecx, edi
call fcn.00456b30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004e3980
lea ecx, [ebx + 0x2e4]
mov dword [esp + 0x14], eax
call fcn.00459b70
call fcn.004e3980
mov dword [esp + 0x18], eax
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.00456880
call fcn.004e3980
lea ecx, [ebx + 0x794]
mov dword [esp + 0x20], eax
call fcn.00524160
lea ecx, [ebx + 0x794]
call fcn.005232a0
lea ecx, [ebx + 0x218]
call fcn.005208c0
mov ecx, edi
fstp dword [esp + 0x10]
call fcn.00455910
mov ecx, dword [0x6f7e78]
call fcn.004adeb0
test al, al
je 0x44ee78
movss xmm1, dword [0x66f3d8]
jmp 0x44ee80
movss xmm1, dword [0x66f3b4]
sub esp, 0x10
lea ecx, [ebx + 0x794]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x20]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.004fcdd0
call fcn.004e3980
mov ecx, dword [0x6f7e3c]
mov dword [esp + 0x24], eax
call fcn.00500070
call fcn.004e3980
mov dword [esp + 0x28], eax
lea ecx, [ebx + 0x218]
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00520910
push dword [esp + 0x10]
lea ecx, [ebx + 0x794]
push dword [esp + 0x10]
call fcn.00524140
mov ecx, edi
call fcn.00456a90
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.00456b10
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0xc], eax
call fcn.00456ab0
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.005341c0
mov ecx, edi
call fcn.004567f0
mov ecx, edi
call fcn.00456ba0
call fcn.004e3980
lea ecx, [ebx + 0x2e4]
mov dword [esp + 0x30], eax
call fcn.00459eb0
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.00456bd0
mov ecx, edi
call fcn.00456ad0
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.00456af0
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x3c], eax
call fcn.00534560
lea ecx, [ebx + 0x2b8]
call fcn.004d13a0
call fcn.004e3980
lea ecx, [ebx + 0x2b32c]
mov dword [esp + 0x40], eax
call fcn.0046eaa0
call fcn.004e3980
lea ecx, [ebx + 0x15c]
mov dword [esp + 0x44], eax
call fcn.0054a3f0
call fcn.004e3980
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.005341c0
mov ecx, edi
call fcn.00456840
mov ecx, edi
call fcn.00534560
call fcn.004e3980
mov dword [esp + 0x4c], eax
mov ecx, edi
call fcn.00456b30
call fcn.004e3980
mov ebx, eax
call fcn.004e3980
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x44f00d
mov ecx, dword [0x6f7e64]
push 3
push 8
call fcn.004fc600
mov edi, dword [esp + 0x14]
sub esi, edi
cmp esi, 3
jb 0x44f230
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6fb644]
cmp eax, dword [ecx + 0x20]
jg 0x44f237
call fcn.004e3980
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x28]
sub eax, edi
push eax
push str.GR.DFM__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x38]
add esp, 0x1c
sub eax, dword [esp + 0x18]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.SHW__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x30]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.STT__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x34]
add esp, 0xc
sub eax, dword [esp + 0x24]
push eax
push str.GR.CLL__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x28]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x38]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.CHR__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.EFT__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.ITM__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.FLY__d_n
push dword [0x6fb648]
call fcn.0044b3d0
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6fb648]
call fcn.0044b3d0
sub ebx, dword [esp + 0x58]
add esp, 0xc
push ebx
push str.GR.BG.LEN__d_n
push dword [0x6fb648]
call fcn.0044b3d0
add esp, 0xc
push dword [0x6fb648]
call fcn.005e3140
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6fb644
call fcn.005988f9
add esp, 4
cmp dword [0x6fb644], 0xffffffff
jne 0x44f035
push 0x65e698
push str.perf_game_render.txt
call fcn.005d977b
push 0x6fb644
mov dword [0x6fb648], eax
call fcn.005988af
add esp, 0xc
jmp 0x44f035