Function at 0x46bdf0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov al, byte [0x5f4230]
test al, al
push ebx
push esi
push edi
mov edi, ecx
jne 0x46bf39
lea ecx, [edi + 0x1d0]
call fcn.00543390
fstp dword [ebp - 0x24]
lea esi, [edi + 0xee18]
mov ecx, esi
call fcn.00421ae0
fstp dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push eax
push 0x42c80000
push ecx
lea ebx, [edi + 0x91c]
push 0x41f00000
mov ecx, ebx
call fcn.004c6440
mov ecx, dword [0x5f2048]
call fcn.004d7160
lea ecx, [edi + 0x2c0]
call fcn.00429810
lea ecx, [edi + 0x28c]
call fcn.0049bfc0
mov ecx, esi
call fcn.00422320
mov ecx, ebx
call fcn.00547b90
mov ecx, ebx
call fcn.005482a0
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [edi + 0x1d0]
call fcn.005433b0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
push ecx
push edx
mov ecx, ebx
call fcn.00547430
mov ecx, esi
call fcn.00421ca0
mov ecx, esi
call fcn.00421d20
mov ecx, esi
call fcn.00421cc0
mov ecx, esi
call fcn.004f6490
mov ecx, esi
call fcn.00421c10
mov ecx, esi
call fcn.004223d0
lea ecx, [edi + 0x2c0]
call fcn.0042b190
mov ecx, esi
call fcn.00422400
mov ecx, esi
call fcn.00421ce0
mov ecx, esi
call fcn.00421c50
mov ecx, esi
call fcn.00421d00
mov ecx, esi
call fcn.004f6770
lea ecx, [edi + 0x28c]
call fcn.0049c460
lea ecx, [edi + 0xd3ec]
call fcn.00433d50
lea ecx, [edi + 0x130]
call fcn.004f9440
mov ecx, esi
call fcn.004f6490
mov ecx, esi
call fcn.00421c60
mov ecx, esi
call fcn.004f6770
mov ecx, esi
call fcn.00421d40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004b0390
lea ecx, [edi + 0x2c0]
mov dword [ebp - 4], eax
call fcn.00429810
call fcn.004b0390
lea ecx, [edi + 0x28c]
mov dword [ebp - 8], eax
call fcn.0049bfc0
call fcn.004b0390
lea esi, [edi + 0xee18]
mov ecx, esi
mov dword [ebp - 0xc], eax
call fcn.00422320
call fcn.004b0390
lea ebx, [edi + 0x91c]
mov ecx, ebx
mov dword [ebp - 0x10], eax
call fcn.00547b90
mov ecx, ebx
call fcn.005482a0
lea ecx, [edi + 0x1d0]
call fcn.00543390
fstp dword [ebp - 0x24]
mov ecx, esi
call fcn.00421ae0
fstp dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push eax
push 0x42c80000
push ecx
push 0x41f00000
mov ecx, ebx
call fcn.004c6440
call fcn.004b0390
mov ecx, dword [0x5f2048]
mov dword [ebp - 0x14], eax
call fcn.004d7160
call fcn.004b0390
lea edx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [edi + 0x1d0]
call fcn.005433b0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
push ecx
push edx
mov ecx, ebx
call fcn.00547430
mov ecx, esi
call fcn.00421ca0
call fcn.004b0390
mov ecx, esi
mov ebx, eax
call fcn.00421d20
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.00421cc0
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004f6490
mov ecx, esi
call fcn.00421c10
mov ecx, esi
call fcn.004223d0
call fcn.004b0390
lea ecx, [edi + 0x2c0]
mov dword [ebp - 0x20], eax
call fcn.0042b190
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x34], eax
call fcn.00422400
mov ecx, esi
call fcn.00421ce0
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x24], eax
call fcn.00421d00
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004f6770
lea ecx, [edi + 0x28c]
call fcn.0049c460
call fcn.004b0390
lea ecx, [edi + 0xd3ec]
mov dword [ebp - 0x28], eax
call fcn.00433d50
call fcn.004b0390
lea ecx, [edi + 0x130]
mov dword [ebp - 0x3c], eax
call fcn.004f9440
call fcn.004b0390
mov ecx, esi
mov edi, eax
call fcn.004f6490
mov ecx, esi
call fcn.00421c60
mov ecx, esi
call fcn.004f6770
call fcn.004b0390
mov ecx, esi
mov dword [ebp - 0x40], eax
call fcn.00421d40
call fcn.004b0390
mov esi, eax
call fcn.004b0390
push 0x5a
mov dword [ebp - 0x2c], eax
call dword [sym.imp.user32.dll_GetAsyncKeyState]
test ax, ax
je 0x46c10d
mov ecx, dword [0x5ef6e8]
push 3
push 8
call fcn.004bff50
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 4]
cmp eax, 3
mov dword [ebp - 0x2c], eax
jb 0x46c32a
mov cl, byte [0x5f423c]
mov eax, 1
test al, cl
jne 0x46c153
mov ecx, dword [0x5f423c]
or ecx, eax
push 0x5a3594
push str.perf_game_render.txt
mov dword [0x5f423c], ecx
call fcn.0047abf4
add esp, 8
mov dword [0x5f4238], eax
call fcn.004b0390
mov ecx, dword [0x5f4238]
push eax
mov eax, dword [ebp - 0x2c]
push eax
push str.GR.Total__d__Time__d__n
push ecx
call fcn.0047ab3a
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
sub edx, eax
mov eax, dword [0x5f4238]
push edx
push str.GR.DFM__d_n
push eax
call fcn.0047ab3a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [0x5f4238]
sub ecx, eax
push ecx
push str.GR.EFT.UP__d_n
push edx
call fcn.0047ab3a
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
sub eax, ecx
mov ecx, dword [0x5f4238]
push eax
push str.GR.SHW__d_n
push ecx
call fcn.0047ab3a
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov eax, dword [0x5f4238]
sub edx, ecx
push edx
push str.GR.STT__d_n
push eax
call fcn.0047ab3a
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
add esp, 0x40
sub ecx, edx
mov edx, dword [0x5f4238]
push ecx
push str.GR.CLL__d_n
push edx
call fcn.0047ab3a
mov edx, dword [ebp - 0x18]
mov ecx, dword [0x5f4238]
mov eax, ebx
sub eax, edx
push eax
push str.GR.BG.SKY__d_n
push ecx
call fcn.0047ab3a
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x5f4238]
sub edx, ebx
push edx
push str.GR.BG.LEN__d_n
push eax
call fcn.0047ab3a
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, ebx
sub ecx, edx
mov edx, dword [0x5f4238]
push ecx
push str.GR.BG.CLD__d_n
push edx
call fcn.0047ab3a
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x5f4238]
sub eax, ebx
push eax
push str.GR.BG.MAIN__d_n
push ecx
call fcn.0047ab3a
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov edx, ebx
sub edx, eax
mov eax, dword [0x5f4238]
push edx
push str.GR.CHR__d_n
push eax
call fcn.0047ab3a
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x5f4238]
add esp, 0x48
sub ecx, ebx
push ecx
push str.GR.BG.WTR__d_n
push edx
call fcn.0047ab3a
mov ebx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x5f4238]
mov eax, ebx
sub eax, edx
push eax
push str.GR.BG.EFT__d_n
push ecx
call fcn.0047ab3a
mov edx, dword [ebp - 0x28]
mov eax, dword [0x5f4238]
sub edx, ebx
push edx
push str.GR.EFT__d_n
push eax
call fcn.0047ab3a
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
mov ecx, ebx
sub ecx, edx
mov edx, dword [0x5f4238]
push ecx
push str.GR.ITM__d_n
push edx
call fcn.0047ab3a
mov ecx, dword [0x5f4238]
mov eax, edi
sub eax, ebx
push eax
push str.GR.FLY__d_n
push ecx
call fcn.0047ab3a
mov ebx, dword [ebp - 0x40]
mov eax, dword [0x5f4238]
mov edx, ebx
sub edx, edi
push edx
push str.GR.BG.BLK__d_n
push eax
call fcn.0047ab3a
mov ecx, dword [0x5f4238]
add esp, 0x48
sub esi, ebx
push esi
push str.GR.BG.LEN__d_n
push ecx
call fcn.0047ab3a
mov edx, dword [0x5f4238]
push edx
call fcn.0047af59
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret