Function at 0x46e6d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x6ed664], 0
push ebx
push esi
push edi
mov esi, ecx
jne 0x46e846
lea ecx, [esi + 0x210]
call fcn.00560b40
lea ecx, [esi + 0x232c4]
fstp dword [esp + 0x10]
call fcn.00474ed0
sub esp, 0x10
lea ecx, [esi + 0x79c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x20]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.0053bbe0
mov ecx, dword [0x6ed1d0]
call fcn.0053f400
lea ecx, [esi + 0x2d8]
call fcn.00478d60
mov ecx, esi
lea ecx, [ecx + 0x2b0]
call fcn.00515c00
mov ecx, esi
lea ecx, [ecx + 0x232c4]
call fcn.00475c80
lea ecx, [esi + 0x79c]
call fcn.00563e90
lea ecx, [esi + 0x79c]
call fcn.00563030
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x210]
call fcn.00560b90
push dword [esp + 0x10]
lea ecx, [esi + 0x79c]
push dword [esp + 0x18]
call fcn.00563e70
mov edi, esi
lea ebx, [edi + 0x232c4]
mov ecx, ebx
call fcn.00475e90
mov ecx, ebx
call fcn.00475f10
mov ecx, ebx
call fcn.00475eb0
mov ecx, ebx
call fcn.005727f0
mov ecx, ebx
call fcn.00475bf0
mov ecx, ebx
call fcn.00475fa0
lea ecx, [esi + 0x2d8]
call fcn.00479190
mov ecx, ebx
call fcn.00475fd0
mov ecx, ebx
call fcn.00475ed0
mov ecx, ebx
call fcn.00475c30
mov ecx, ebx
call fcn.00475ef0
mov ecx, ebx
call fcn.00572b90
lea ecx, [edi + 0x2b0]
call fcn.005157e0
lea ecx, [edi + 0x20b58]
call fcn.0048efb0
lea ecx, [edi + 0x15c]
call fcn.00582ff0
mov ecx, ebx
call fcn.005727f0
mov ecx, ebx
call fcn.00475c40
mov ecx, ebx
call fcn.00572b90
mov ecx, ebx
call fcn.00475f30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00525fa0
lea ebx, [esi + 0x2d8]
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.00478d60
call fcn.00525fa0
lea ecx, [esi + 0x2b0]
mov dword [esp + 0x1c], eax
call fcn.00515c00
call fcn.00525fa0
lea ecx, [esi + 0x232c4]
mov dword [esp + 0x20], eax
call fcn.00475c80
call fcn.00525fa0
lea ecx, [esi + 0x79c]
mov dword [esp + 0x24], eax
call fcn.00563e90
lea ecx, [esi + 0x79c]
call fcn.00563030
lea ecx, [esi + 0x210]
call fcn.00560b40
mov ecx, esi
fstp dword [esp + 0x14]
lea ecx, [ecx + 0x232c4]
call fcn.00474ed0
sub esp, 0x10
lea ecx, [esi + 0x79c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x24]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.0053bbe0
call fcn.00525fa0
mov ecx, dword [0x6ed1d0]
mov dword [esp + 0x28], eax
call fcn.0053f400
call fcn.00525fa0
mov dword [esp + 0x2c], eax
lea ecx, [esi + 0x210]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00560b90
push dword [esp + 0x14]
lea ecx, [esi + 0x79c]
push dword [esp + 0x14]
call fcn.00563e70
mov edi, esi
lea esi, [edi + 0x232c4]
mov ecx, esi
call fcn.00475e90
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00475f10
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.00475eb0
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.005727f0
mov ecx, esi
call fcn.00475bf0
mov ecx, esi
call fcn.00475fa0
call fcn.00525fa0
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.00479190
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.00475fd0
mov ecx, esi
call fcn.00475ed0
call fcn.00525fa0
mov dword [esp + 0x38], eax
mov ecx, esi
call fcn.00475ef0
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00572b90
lea ecx, [edi + 0x2b0]
call fcn.005157e0
call fcn.00525fa0
lea ecx, [edi + 0x20b58]
mov dword [esp + 0x40], eax
call fcn.0048efb0
call fcn.00525fa0
lea ecx, [edi + 0x15c]
mov dword [esp + 0x44], eax
call fcn.00582ff0
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.005727f0
mov ecx, esi
call fcn.00475c40
mov ecx, esi
call fcn.00572b90
call fcn.00525fa0
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.00475f30
call fcn.00525fa0
mov edi, eax
call fcn.00525fa0
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x46ea52
mov ecx, dword [0x6f0844]
push 3
push 8
call fcn.0053b430
mov ebx, dword [esp + 0x18]
sub esi, ebx
cmp esi, 3
jb 0x46ec84
mov eax, dword [0x6f0968]
test al, 1
jne 0x46ea89
or eax, 1
push 0x646b40
push str.perf_game_render.txt
mov dword [0x6f0968], eax
call fcn.005c522f
add esp, 8
mov dword [0x6f096c], eax
call fcn.00525fa0
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x2c]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x3c]
add esp, 0x1c
sub eax, dword [esp + 0x1c]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x30]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.SHW__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x34]
add esp, 0xc
sub eax, dword [esp + 0x24]
push eax
push str.GR.STT__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x38]
add esp, 0xc
sub eax, dword [esp + 0x28]
push eax
push str.GR.CLL__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.CHR__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.EFT__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.ITM__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.FLY__d_n
push dword [0x6f096c]
call fcn.005c6825
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6f096c]
call fcn.005c6825
sub edi, dword [esp + 0x58]
add esp, 0xc
push edi
push str.GR.BG.LEN__d_n
push dword [0x6f096c]
call fcn.005c6825
add esp, 0xc
push dword [0x6f096c]
call fcn.005c6cf3
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret