Function at 0x474c20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp byte [0x6ab7b0], 0
push ebx
push esi
push edi
mov edi, ecx
lea eax, [edi + 0x1e8]
mov dword [ebp - 0xc], eax
lea esi, [edi + 0x770]
lea eax, [edi + 0x2b0]
mov dword [ebp - 0x24], esi
mov dword [ebp - 4], eax
lea ebx, [edi + 0x2263c]
lea eax, [edi + 0x288]
mov dword [ebp - 8], eax
lea eax, [edi + 0x1d020]
mov dword [ebp - 0x10], eax
lea eax, [edi + 0x15c]
mov dword [ebp - 0x14], eax
jne 0x474dc7
lea esi, [edi + 0x25654]
mov ecx, esi
call fcn.00509dd0
lea ecx, [edi + 0x1e8]
call fcn.00531ec0
fstp dword [ebp - 0x1c]
mov ecx, ebx
call fcn.0047d290
fstp dword [ebp - 0x18]
lea ecx, [edi + 0x22f3c]
call fcn.004d98a0
movss xmm0, dword [ebp - 0x18]
sub esp, 0x10
mov edi, dword [ebp - 0x24]
mov ecx, edi
fstp dword [ebp - 0x20]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x1c]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x20]
movss dword [esp], xmm0
call fcn.0050fa80
mov ecx, dword [0x6a62cc]
call fcn.00515f60
mov ecx, dword [ebp - 4]
call fcn.004819e0
mov ecx, dword [ebp - 8]
call fcn.004e5390
mov ecx, esi
call fcn.00509cf0
mov ecx, ebx
call fcn.0047e0c0
mov ecx, edi
call fcn.00530e10
mov ecx, edi
call fcn.0052ff50
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00531f20
push dword [ebp - 0x24]
mov ecx, edi
push dword [ebp - 0x20]
call fcn.00530df0
mov ecx, ebx
call fcn.0047e210
mov ecx, ebx
call fcn.0047e0a0
mov ecx, ebx
call fcn.0047e190
mov ecx, ebx
call fcn.00547b30
mov ecx, ebx
call fcn.0047e040
mov ecx, ebx
call fcn.0047e330
mov ecx, dword [ebp - 4]
call fcn.004820f0
mov ecx, esi
call fcn.00509e00
mov ecx, ebx
call fcn.0047e300
mov ecx, ebx
call fcn.0047e240
mov ecx, ebx
call fcn.0047e230
mov ecx, ebx
call fcn.0047e1d0
mov ecx, ebx
call fcn.00547ec0
mov ecx, dword [ebp - 8]
call fcn.004e4ed0
mov ecx, dword [ebp - 0x10]
call fcn.00498aa0
mov ecx, dword [ebp - 0x14]
call fcn.0055c260
mov ecx, ebx
call fcn.00547b30
mov ecx, ebx
call fcn.0047e1f0
mov ecx, ebx
call fcn.00547ec0
mov ecx, ebx
call fcn.0047e080
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004f7340
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
call fcn.004819e0
call fcn.004f7340
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], eax
call fcn.004e5390
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x28], eax
call fcn.0047e0c0
call fcn.004f7340
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.00530e10
mov ecx, esi
call fcn.0052ff50
mov edi, dword [ebp - 0xc]
mov ecx, edi
call fcn.00531ec0
fstp dword [ebp - 0x20]
mov ecx, ebx
call fcn.0047d290
sub esp, 0x10
mov ecx, esi
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x20]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.0050fa80
call fcn.004f7340
mov ecx, dword [0x6a62cc]
mov dword [ebp - 0xc], eax
call fcn.00515f60
call fcn.004f7340
mov dword [ebp - 0x30], eax
mov ecx, edi
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00531f20
push dword [ebp - 0x24]
mov ecx, esi
push dword [ebp - 0x20]
call fcn.00530df0
mov ecx, ebx
call fcn.0047e210
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.0047e0a0
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x20], eax
call fcn.0047e190
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x34], eax
call fcn.00547b30
mov ecx, ebx
call fcn.0047e040
mov ecx, ebx
call fcn.0047e330
call fcn.004f7340
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x38], eax
call fcn.004820f0
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 4], eax
call fcn.0047e300
mov ecx, ebx
call fcn.0047e240
call fcn.004f7340
mov dword [ebp - 0x3c], eax
mov ecx, ebx
call fcn.0047e1d0
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x40], eax
call fcn.00547ec0
mov ecx, dword [ebp - 8]
call fcn.004e4ed0
call fcn.004f7340
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 8], eax
call fcn.00498aa0
call fcn.004f7340
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
call fcn.0055c260
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x14], eax
call fcn.00547b30
mov ecx, ebx
call fcn.0047e1f0
mov ecx, ebx
call fcn.00547ec0
call fcn.004f7340
mov ecx, ebx
mov dword [ebp - 0x44], eax
call fcn.0047e080
call fcn.004f7340
mov edi, eax
call fcn.004f7340
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x474f8d
mov ecx, dword [0x6a631c]
push 3
push 8
call fcn.0050f2b0
mov ebx, dword [ebp - 0x1c]
sub esi, ebx
cmp esi, 3
jb 0x47516c
mov eax, dword fs:[0x2c]
mov ecx, dword [0x6e9ef4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x6ab7e0]
cmp eax, dword [ecx + 0x20]
jg 0x475173
call fcn.004f7340
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x18]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x18]
push eax
push str.GR.EFT.UP__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x28]
push eax
push str.GR.SHW__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x2c]
push eax
push str.GR.STT__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x30]
add esp, 0x40
sub eax, dword [ebp - 0xc]
push eax
push str.GR.CLL__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x30]
push eax
push str.GR.BG.SKY__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x24]
push eax
push str.GR.BG.LEN__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x20]
push eax
push str.GR.BG.CLD__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x34]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
push eax
push str.GR.CHR__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x3c]
add esp, 0x48
sub eax, dword [ebp - 4]
push eax
push str.GR.BG.WTR__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
push eax
push str.GR.BG.EFT__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x40]
push eax
push str.GR.EFT__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 8]
push eax
push str.GR.ITM__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x10]
push eax
push str.GR.FLY__d_n
push dword [0x6ab7dc]
call fcn.0043c390
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x14]
push eax
push str.GR.BG.BLK__d_n
push dword [0x6ab7dc]
call fcn.0043c390
sub edi, dword [ebp - 0x44]
add esp, 0x48
push edi
push str.GR.BG.LEN__d_n
push dword [0x6ab7dc]
call fcn.0043c390
push dword [0x6ab7dc]
call fcn.005f1589
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6ab7e0
call fcn.0059e509
add esp, 4
cmp dword [0x6ab7e0], 0xffffffff
jne 0x474fbb
push 0x62dbf0
push str.perf_game_render.txt
call fcn.005e927f
push 0x6ab7e0
mov dword [0x6ab7dc], eax
call fcn.0059e4bf
add esp, 0xc
jmp 0x474fbb