Function at 0x44fd90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x6e72dc], 0
lea eax, [ecx + 0x2b0]
mov dword [esp + 4], eax
lea eax, [ecx + 0xd560]
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 + 0xfccc]
lea eax, [ecx + 0x2d8]
push edi
lea edi, [ecx + 0x79c]
mov dword [esp + 0xc], eax
jne 0x44ff06
mov ecx, ebx
call fcn.00503940
mov ecx, esi
fstp dword [esp + 0x1c]
call fcn.00456580
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.004da780
mov ecx, dword [0x6e6e38]
call fcn.004ddc90
mov ecx, dword [esp + 0xc]
call fcn.00459db0
mov ecx, dword [esp + 0x10]
call fcn.004b0f80
mov ecx, esi
call fcn.004572d0
mov ecx, edi
call fcn.00507080
mov ecx, edi
call fcn.005061a0
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00503990
push dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x24]
call fcn.00507060
mov ecx, esi
call fcn.004574e0
mov ecx, esi
call fcn.00457560
mov ecx, esi
call fcn.00457500
mov ecx, esi
call fcn.005166a0
mov ecx, esi
call fcn.00457240
mov ecx, esi
call fcn.004575f0
mov ecx, dword [esp + 0xc]
call fcn.0045a110
mov ecx, esi
call fcn.00457620
mov ecx, esi
call fcn.00457520
mov ecx, esi
call fcn.00457280
mov ecx, esi
call fcn.00457540
mov ecx, esi
call fcn.00516a60
mov ecx, dword [esp + 0x10]
call fcn.004b0bb0
mov ecx, dword [esp + 0x14]
call fcn.0046e720
mov ecx, dword [esp + 0x18]
call fcn.005269b0
mov ecx, esi
call fcn.005166a0
mov ecx, esi
call fcn.00457290
mov ecx, esi
call fcn.00516a60
mov ecx, esi
call fcn.00457580
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c34e0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
call fcn.00459db0
call fcn.004c34e0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
call fcn.004b0f80
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.004572d0
call fcn.004c34e0
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.00507080
mov ecx, edi
call fcn.005061a0
mov ecx, ebx
call fcn.00503940
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00456580
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.004da780
call fcn.004c34e0
mov ecx, dword [0x6e6e38]
mov dword [esp + 0x34], eax
call fcn.004ddc90
call fcn.004c34e0
mov dword [esp + 0x38], eax
mov ecx, ebx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00503990
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x20]
call fcn.00507060
mov ecx, esi
call fcn.004574e0
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00457560
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00457500
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.005166a0
mov ecx, esi
call fcn.00457240
mov ecx, esi
call fcn.004575f0
call fcn.004c34e0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
call fcn.0045a110
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00457620
mov ecx, esi
call fcn.00457520
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00457540
call fcn.004c34e0
mov dword [esp + 0x48], eax
mov ecx, esi
call fcn.00516a60
mov ecx, dword [esp + 0x10]
call fcn.004b0bb0
call fcn.004c34e0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
call fcn.0046e720
call fcn.004c34e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.005269b0
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.005166a0
mov ecx, esi
call fcn.00457290
mov ecx, esi
call fcn.00516a60
call fcn.004c34e0
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.00457580
call fcn.004c34e0
mov ebx, eax
call fcn.004c34e0
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4500de
mov ecx, dword [0x6e6e54]
push 3
push 8
call fcn.004d9ff0
mov edi, dword [esp + 0x24]
sub esi, edi
cmp esi, 3
jb 0x450301
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6e7a88]
cmp eax, dword [ecx + 0x20]
jg 0x450308
call fcn.004c34e0
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x38]
sub eax, edi
push eax
push str.GR.DFM__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x48]
add esp, 0x1c
sub eax, dword [esp + 0x28]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.SHW__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.STT__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.CLL__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.CHR__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.EFT__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.ITM__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x24]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.FLY__d_n
push dword [0x6e7a8c]
call fcn.0044c640
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x18]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6e7a8c]
call fcn.0044c640
sub ebx, dword [esp + 0x58]
add esp, 0xc
push ebx
push str.GR.BG.LEN__d_n
push dword [0x6e7a8c]
call fcn.0044c640
add esp, 0xc
push dword [0x6e7a8c]
call fcn.005b954d
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6e7a88
call fcn.00569f80
add esp, 4
cmp dword [0x6e7a88], 0xffffffff
jne 0x450106
push 0x647808
push str.perf_game_render.txt
call fcn.005afd8b
push 0x6e7a88
mov dword [0x6e7a8c], eax
call fcn.00569f2f
add esp, 0xc
jmp 0x450106