Function at 0x41d770
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x6d7f00], 0
lea eax, [ecx + 0x2bc]
mov dword [esp + 8], eax
lea eax, [ecx + 0x2a2b4]
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x15c]
push ebx
mov dword [esp + 0x14], eax
lea ebx, [ecx + 0x21c]
lea eax, [ecx + 0x30220]
push esi
mov dword [esp + 0xc], eax
lea esi, [ecx + 0x2e50c]
lea eax, [ecx + 0x2e8]
push edi
lea edi, [ecx + 0x7a8]
mov dword [esp + 0xc], eax
jne 0x41d8f1
mov ecx, ebx
call fcn.004e6500
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00424260
mov ecx, dword [esp + 0x10]
movaps xmm1, xmm0
call fcn.004873d0
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.004be540
mov ecx, dword [0x6d7a40]
call fcn.004c1fb0
mov ecx, dword [esp + 0xc]
call fcn.004282d0
mov ecx, esi
call fcn.004250b0
mov ecx, edi
call fcn.004e9bd0
mov ecx, edi
call fcn.004e8ce0
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
lea eax, [esp + 0x14]
push eax
call fcn.004e6560
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x14]
call fcn.004e9bb0
mov ecx, esi
call fcn.004252c0
mov ecx, esi
call fcn.00425340
mov ecx, esi
call fcn.004252e0
mov ecx, esi
call fcn.004f9520
mov ecx, esi
call fcn.00425020
mov ecx, esi
call fcn.004253d0
mov ecx, dword [esp + 0xc]
call fcn.00428660
mov ecx, esi
call fcn.00425400
mov ecx, esi
call fcn.00425300
mov ecx, esi
call fcn.00425060
mov ecx, esi
call fcn.00425320
mov ecx, esi
call fcn.004f98c0
mov ecx, dword [esp + 0x14]
call fcn.004933c0
mov ecx, dword [esp + 0x18]
call fcn.00443060
mov ecx, dword [esp + 0x1c]
call fcn.0050b2b0
mov ecx, esi
call fcn.004f9520
mov ecx, esi
call fcn.00425070
mov ecx, esi
call fcn.004f98c0
mov ecx, esi
call fcn.00425360
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004a6640
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
call fcn.004282d0
call fcn.004a6640
mov dword [esp + 0x28], eax
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.004250b0
call fcn.004a6640
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.004e9bd0
mov ecx, edi
call fcn.004e8ce0
mov ecx, ebx
call fcn.004e6500
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00424260
mov ecx, dword [esp + 0x10]
movaps xmm1, xmm0
call fcn.004873d0
sub esp, 0x10
mov ecx, edi
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.004be540
call fcn.004a6640
mov ecx, dword [0x6d7a40]
mov dword [esp + 0x34], eax
call fcn.004c1fb0
call fcn.004a6640
mov dword [esp + 0x38], eax
mov ecx, ebx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.004e6560
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x14]
call fcn.004e9bb0
mov ecx, esi
call fcn.004252c0
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00425340
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.004252e0
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.004f9520
mov ecx, esi
call fcn.00425020
mov ecx, esi
call fcn.004253d0
call fcn.004a6640
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
call fcn.00428660
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00425400
mov ecx, esi
call fcn.00425300
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00425320
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.004f98c0
mov ecx, dword [esp + 0x14]
call fcn.004933c0
call fcn.004a6640
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.00443060
call fcn.004a6640
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
call fcn.0050b2b0
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.004f9520
mov ecx, esi
call fcn.00425070
mov ecx, esi
call fcn.004f98c0
call fcn.004a6640
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.00425360
call fcn.004a6640
mov edi, eax
call fcn.004a6640
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x41daca
mov ecx, dword [0x6d7a5c]
push 3
push 8
call fcn.004bdd70
mov ebx, dword [esp + 0x24]
sub esi, ebx
cmp esi, 3
jb 0x41dced
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6da2e8]
cmp eax, dword [ecx + 4]
jg 0x41dcf4
call fcn.004a6640
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x38]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x48]
add esp, 0x1c
sub eax, dword [esp + 0x28]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.SHW__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.STT__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.CLL__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.CHR__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.EFT__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x24]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.ITM__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x28]
add esp, 0xc
sub eax, dword [esp + 0x18]
push eax
push str.GR.FLY__d_n
push dword [0x6da2ec]
call fcn.00419850
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x1c]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6da2ec]
call fcn.00419850
sub edi, dword [esp + 0x58]
add esp, 0xc
push edi
push str.GR.BG.LEN__d_n
push dword [0x6da2ec]
call fcn.00419850
add esp, 0xc
push dword [0x6da2ec]
call fcn.005a2059
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6da2e8
call fcn.005530d5
add esp, 4
cmp dword [0x6da2e8], 0xffffffff
jne 0x41daf2
push 0x61d870
push str.perf_game_render.txt
call fcn.00598656
push 0x6da2e8
mov dword [0x6da2ec], eax
call fcn.0055308b
add esp, 0xc
jmp 0x41daf2