Function at 0x4b3980
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp byte [0x6ea534], 0
push ebx
push esi
push edi
mov edi, ecx
lea eax, [edi + 0x7c4]
mov dword [ebp - 4], eax
lea esi, [edi + 0x1f844]
lea eax, [edi + 0x24c]
lea ebx, [edi + 0x1b3cc]
mov dword [ebp - 0x14], eax
jne 0x4b3b34
mov ecx, esi
call fcn.004ff840
lea ecx, [edi + 0x24c]
call fcn.0052d960
fstp dword [ebp - 0x10]
mov ecx, ebx
call fcn.004629e0
mov ecx, dword [0x6e834c]
fstp dword [ebp - 0xc]
call fcn.004ba5c0
test al, al
je 0x4b39ee
movss xmm1, dword [0x65d168]
jmp 0x4b39f6
movss xmm1, dword [0x65d164]
movss xmm0, dword [ebp - 0xc]
lea ecx, [edi + 0x7c4]
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x10]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.00506370
mov ecx, dword [0x6e8354]
call fcn.00515530
lea ecx, [edi + 0x314]
call fcn.00466590
lea ecx, [edi + 0x2ec]
call fcn.004dd160
mov ecx, esi
call fcn.004ff750
mov ecx, ebx
call fcn.00463070
mov ecx, dword [ebp - 4]
call fcn.005311b0
mov ecx, dword [ebp - 4]
call fcn.00530290
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.0052d9b0
push dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
push dword [ebp - 0xc]
call fcn.00531190
mov ecx, ebx
call fcn.004631c0
mov ecx, ebx
call fcn.00463050
mov ecx, ebx
call fcn.00463140
mov ecx, ebx
call fcn.0054ecd0
mov ecx, ebx
call fcn.00462fe0
mov ecx, ebx
call fcn.00463300
lea ecx, [edi + 0x314]
call fcn.00466c90
mov ecx, esi
call fcn.004ff870
mov ecx, ebx
call fcn.004632d0
mov ecx, ebx
call fcn.00463200
mov ecx, ebx
call fcn.004631e0
mov ecx, ebx
call fcn.00463180
mov ecx, ebx
call fcn.0054f090
lea ecx, [edi + 0x2ec]
call fcn.004dcd90
mov esi, edi
lea ecx, [esi + 0x18c28]
call fcn.00471960
lea ecx, [esi + 0x1ca7c]
call fcn.0047ce80
lea ecx, [esi + 0x15c]
call fcn.00565d60
mov ecx, ebx
call fcn.0054ecd0
mov ecx, ebx
call fcn.004631a0
mov ecx, ebx
call fcn.0054f090
mov ecx, ebx
call fcn.00463030
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004f01e0
lea ecx, [edi + 0x314]
mov dword [ebp - 0x10], eax
call fcn.00466590
call fcn.004f01e0
lea ecx, [edi + 0x2ec]
mov dword [ebp - 0xc], eax
call fcn.004dd160
mov ecx, esi
call fcn.004ff750
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 8], eax
call fcn.00463070
call fcn.004f01e0
lea ecx, [edi + 0x7c4]
mov dword [ebp - 4], eax
call fcn.005311b0
lea ecx, [edi + 0x7c4]
call fcn.00530290
mov ecx, esi
call fcn.004ff840
lea ecx, [edi + 0x24c]
call fcn.0052d960
fstp dword [ebp - 0x14]
mov ecx, ebx
call fcn.004629e0
mov ecx, dword [0x6e834c]
fstp dword [ebp - 0x18]
call fcn.004ba5c0
test al, al
je 0x4b3bc6
movss xmm1, dword [0x65d168]
jmp 0x4b3bce
movss xmm1, dword [0x65d164]
movss xmm0, dword [ebp - 0x18]
lea ecx, [edi + 0x7c4]
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x14]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.00506370
call fcn.004f01e0
mov ecx, dword [0x6e8354]
mov dword [ebp - 0x1c], eax
call fcn.00515530
call fcn.004f01e0
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x24c]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0052d9b0
push dword [ebp - 0x18]
lea ecx, [edi + 0x7c4]
push dword [ebp - 0x14]
call fcn.00531190
mov ecx, ebx
call fcn.004631c0
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x18], eax
call fcn.00463050
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x14], eax
call fcn.00463140
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.0054ecd0
mov ecx, ebx
call fcn.00462fe0
mov ecx, ebx
call fcn.00463300
call fcn.004f01e0
lea ecx, [edi + 0x314]
mov dword [ebp - 0x28], eax
call fcn.00466c90
mov ecx, esi
call fcn.004ff870
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x2c], eax
call fcn.004632d0
mov ecx, ebx
call fcn.00463200
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x30], eax
call fcn.00463180
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x34], eax
call fcn.0054f090
lea ecx, [edi + 0x2ec]
call fcn.004dcd90
call fcn.004f01e0
lea ecx, [edi + 0x18c28]
mov dword [ebp - 0x38], eax
call fcn.00471960
lea ecx, [edi + 0x1ca7c]
call fcn.0047ce80
call fcn.004f01e0
lea ecx, [edi + 0x15c]
mov dword [ebp - 0x3c], eax
call fcn.00565d60
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x40], eax
call fcn.0054ecd0
mov ecx, ebx
call fcn.004631a0
mov ecx, ebx
call fcn.0054f090
call fcn.004f01e0
mov ecx, ebx
mov dword [ebp - 0x44], eax
call fcn.00463030
call fcn.004f01e0
mov ebx, eax
call fcn.004f01e0
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4b3d60
mov ecx, dword [0x6e6138]
push 3
push 8
call fcn.00503f10
mov edi, dword [ebp - 0x10]
sub esi, edi
cmp esi, 3
jb 0x4b3f3f
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7282b4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x6ea544]
cmp eax, dword [ecx + 0x20]
jg 0x4b3f46
call fcn.004f01e0
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0xc]
sub eax, edi
push eax
push str.GR.DFM__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0xc]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 8]
push eax
push str.GR.SHW__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 4]
push eax
push str.GR.STT__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x20]
add esp, 0x40
sub eax, dword [ebp - 0x1c]
push eax
push str.GR.CLL__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x18]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x14]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x24]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x28]
push eax
push str.GR.CHR__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x30]
add esp, 0x48
sub eax, dword [ebp - 0x2c]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x30]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x34]
push eax
push str.GR.EFT__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x38]
push eax
push str.GR.ITM__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
push eax
push str.GR.FLY__d_n
push dword [0x6ea540]
call fcn.0049a2b0
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x40]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6ea540]
call fcn.0049a2b0
sub ebx, dword [ebp - 0x44]
add esp, 0x48
push ebx
push str.GR.BG.LEN__d_n
push dword [0x6ea540]
call fcn.0049a2b0
push dword [0x6ea540]
call fcn.005e7d8a
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6ea544
call fcn.00599a98
add esp, 4
cmp dword [0x6ea544], 0xffffffff
jne 0x4b3d8e
push 0x65a544
push str.perf_game_render.txt
call fcn.005e8ce7
push 0x6ea544
mov dword [0x6ea540], eax
call fcn.00599a4e
add esp, 0xc
jmp 0x4b3d8e