Function at 0x4da5a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp byte [0x779ac4], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
jne 0x4da7a4
lea ecx, [edi + 0x576ec]
call fcn.005302a0
mov ecx, dword [0x779ad4]
call fcn.00505e30
test al, al
je 0x4da5e0
lea ecx, [edi + 0x57798]
call fcn.00559270
lea ecx, [edi + 0x21c]
call fcn.0056b310
lea esi, [edi + 0x52ed8]
fstp dword [ebp - 8]
mov ecx, esi
call fcn.0046d070
fstp dword [ebp - 4]
lea ecx, [edi + 0x54fc0]
call fcn.004e5e70
movss xmm0, dword [ebp - 4]
lea ecx, [edi + 0x798]
sub esp, 0x10
fstp dword [ebp - 0xc]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 8]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x6adb08]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00536e80
mov ecx, dword [0x777718]
call fcn.0054fd10
lea ecx, [edi + 0x2e4]
call fcn.00471180
lea ecx, [edi + 0x2bc]
call fcn.0050cf80
lea ecx, [edi + 0x576ec]
call fcn.005301c0
mov ecx, dword [0x779ad4]
call fcn.00505e30
test al, al
je 0x4da697
lea ecx, [edi + 0x57798]
call fcn.005590b0
mov ecx, esi
call fcn.0046d6d0
lea ecx, [edi + 0x798]
call fcn.0056eca0
lea ecx, [edi + 0x798]
call fcn.0056dd90
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea ecx, [edi + 0x21c]
call fcn.0056b370
push dword [ebp - 0xc]
lea ecx, [edi + 0x798]
push dword [ebp - 8]
call fcn.0056ec80
mov ecx, esi
call fcn.0046d820
mov ecx, esi
call fcn.0046d6b0
mov ecx, esi
call fcn.0046d7a0
mov ecx, esi
call fcn.00592090
mov ecx, esi
call fcn.0046d650
mov ecx, esi
call fcn.0046d950
lea ecx, [edi + 0x2e4]
call fcn.004718a0
lea ecx, [edi + 0x576ec]
call fcn.005302d0
mov ecx, dword [0x779ad4]
call fcn.00505e30
test al, al
je 0x4da732
lea ecx, [edi + 0x57798]
call fcn.005592a0
mov ecx, esi
call fcn.0046d920
mov ecx, esi
call fcn.0046d850
mov ecx, esi
call fcn.0046d840
mov ecx, esi
call fcn.0046d7e0
mov ecx, esi
call fcn.00592450
lea ecx, [edi + 0x2bc]
call fcn.0050cac0
lea ecx, [edi + 0x4af64]
call fcn.00480460
lea ecx, [edi + 0x545dc]
call fcn.0048e880
lea ecx, [edi + 0x15c]
call fcn.005ad220
mov ecx, esi
call fcn.00592090
mov ecx, esi
call fcn.0046d800
mov ecx, esi
call fcn.00592450
mov ecx, esi
call fcn.0046d690
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00520070
lea ebx, [edi + 0x2e4]
mov dword [ebp - 0x14], eax
mov ecx, ebx
call fcn.00471180
call fcn.00520070
lea ecx, [edi + 0x2bc]
mov dword [ebp - 0x18], eax
call fcn.0050cf80
call fcn.00520070
lea ecx, [edi + 0x52ed8]
mov dword [ebp - 0x1c], eax
call fcn.0046d6d0
call fcn.00520070
add edi, 0x798
mov dword [ebp - 0x20], eax
mov ecx, edi
call fcn.0056eca0
mov ecx, edi
call fcn.0056dd90
mov esi, dword [ebp - 4]
lea ecx, [esi + 0x21c]
call fcn.0056b310
mov ecx, esi
fstp dword [ebp - 8]
lea ecx, [ecx + 0x52ed8]
call fcn.0046d070
mov ecx, esi
fstp dword [ebp - 0xc]
lea ecx, [ecx + 0x54fc0]
call fcn.004e5e70
movss xmm0, dword [ebp - 0xc]
sub esp, 0x10
fstp dword [ebp - 0x10]
mov ecx, edi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 8]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x10]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x6adb08]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00536e80
call fcn.00520070
mov ecx, dword [0x777718]
mov dword [ebp - 8], eax
call fcn.0054fd10
call fcn.00520070
mov dword [ebp - 0x24], eax
lea ecx, [esi + 0x21c]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.0056b370
push dword [ebp - 0x10]
mov ecx, edi
push dword [ebp - 0xc]
call fcn.0056ec80
mov edi, esi
lea esi, [edi + 0x52ed8]
mov ecx, esi
call fcn.0046d820
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x10], eax
call fcn.0046d6b0
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0xc], eax
call fcn.0046d7a0
call fcn.00520070
mov ecx, esi
mov dword [ebp - 4], eax
call fcn.00592090
mov ecx, esi
call fcn.0046d650
mov ecx, esi
call fcn.0046d950
call fcn.00520070
mov ecx, ebx
mov dword [ebp - 0x28], eax
call fcn.004718a0
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.0046d920
mov ecx, esi
call fcn.0046d850
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.0046d7e0
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x34], eax
call fcn.00592450
lea ecx, [edi + 0x545dc]
call fcn.0048e880
lea ecx, [edi + 0x2bc]
call fcn.0050cac0
call fcn.00520070
lea ecx, [edi + 0x4af64]
mov dword [ebp - 0x38], eax
call fcn.00480460
call fcn.00520070
lea ecx, [edi + 0x15c]
mov dword [ebp - 0x3c], eax
call fcn.005ad220
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x40], eax
call fcn.00592090
mov ecx, esi
call fcn.0046d800
mov ecx, esi
call fcn.00592450
call fcn.00520070
mov ecx, esi
mov dword [ebp - 0x44], eax
call fcn.0046d690
call fcn.00520070
mov edi, eax
call fcn.00520070
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4da9c7
mov ecx, dword [0x7751d4]
push 3
push 8
call fcn.00534ae0
mov ebx, dword [ebp - 0x14]
sub esi, ebx
cmp esi, 3
jb 0x4daba6
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7b7774]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x779adc]
cmp eax, dword [ecx + 0x20]
jg 0x4dabad
call fcn.00520070
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x18]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x18]
push eax
push str.GR.EFT.UP__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
push eax
push str.GR.SHW__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x20]
push eax
push str.GR.STT__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x24]
add esp, 0x40
sub eax, dword [ebp - 8]
push eax
push str.GR.CLL__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x24]
push eax
push str.GR.BG.SKY__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x10]
push eax
push str.GR.BG.LEN__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0xc]
push eax
push str.GR.BG.CLD__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 4]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x28]
push eax
push str.GR.CHR__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x30]
add esp, 0x48
sub eax, dword [ebp - 0x2c]
push eax
push str.GR.BG.WTR__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x30]
push eax
push str.GR.BG.EFT__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x34]
push eax
push str.GR.EFT__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x38]
push eax
push str.GR.ITM__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
push eax
push str.GR.FLY__d_n
push dword [0x779ad8]
call fcn.004bbfb0
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x40]
push eax
push str.GR.BG.BLK__d_n
push dword [0x779ad8]
call fcn.004bbfb0
sub edi, dword [ebp - 0x44]
add esp, 0x48
push edi
push str.GR.BG.LEN__d_n
push dword [0x779ad8]
call fcn.004bbfb0
push dword [0x779ad8]
call fcn.00639c43
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x779adc
call fcn.005df9b9
add esp, 4
cmp dword [0x779adc], 0xffffffff
jne 0x4da9f5
push 0x6aa994
push str.perf_game_render.txt
call fcn.00634963
push 0x779adc
mov dword [0x779ad8], eax
call fcn.005df96f
add esp, 0xc
jmp 0x4da9f5