Function at 0x4773c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp byte [0x70b3fc], 0
push ebx
push esi
push edi
mov esi, ecx
jne 0x477536
lea ecx, [esi + 0x210]
call fcn.0056ddd0
lea ecx, [esi + 0x25080]
fstp dword [esp + 0x10]
call fcn.0047dd10
sub esp, 0x10
lea ecx, [esi + 0x79c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x20]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.00549b70
mov ecx, dword [0x70ae00]
call fcn.0054d480
lea ecx, [esi + 0x2d8]
call fcn.00481de0
mov ecx, esi
lea ecx, [ecx + 0x2b0]
call fcn.00522a10
mov ecx, esi
lea ecx, [ecx + 0x25080]
call fcn.0047ebb0
lea ecx, [esi + 0x79c]
call fcn.00571130
lea ecx, [esi + 0x79c]
call fcn.005702d0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x210]
call fcn.0056de30
push dword [esp + 0x10]
lea ecx, [esi + 0x79c]
push dword [esp + 0x18]
call fcn.00571110
mov edi, esi
lea ebx, [edi + 0x25080]
mov ecx, ebx
call fcn.0047edc0
mov ecx, ebx
call fcn.0047ee40
mov ecx, ebx
call fcn.0047ede0
mov ecx, ebx
call fcn.00580470
mov ecx, ebx
call fcn.0047eb20
mov ecx, ebx
call fcn.0047eed0
lea ecx, [esi + 0x2d8]
call fcn.00482210
mov ecx, ebx
call fcn.0047ef00
mov ecx, ebx
call fcn.0047ee00
mov ecx, ebx
call fcn.0047eb60
mov ecx, ebx
call fcn.0047ee20
mov ecx, ebx
call fcn.00580810
lea ecx, [edi + 0x2b0]
call fcn.005225f0
lea ecx, [edi + 0x1f854]
call fcn.00497ec0
lea ecx, [edi + 0x15c]
call fcn.00590f50
mov ecx, ebx
call fcn.00580470
mov ecx, ebx
call fcn.0047eb70
mov ecx, ebx
call fcn.00580810
mov ecx, ebx
call fcn.0047ee60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00532b70
lea ebx, [esi + 0x2d8]
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.00481de0
call fcn.00532b70
lea ecx, [esi + 0x2b0]
mov dword [esp + 0x1c], eax
call fcn.00522a10
call fcn.00532b70
lea ecx, [esi + 0x25080]
mov dword [esp + 0x20], eax
call fcn.0047ebb0
call fcn.00532b70
lea ecx, [esi + 0x79c]
mov dword [esp + 0x24], eax
call fcn.00571130
lea ecx, [esi + 0x79c]
call fcn.005702d0
lea ecx, [esi + 0x210]
call fcn.0056ddd0
mov ecx, esi
fstp dword [esp + 0x14]
lea ecx, [ecx + 0x25080]
call fcn.0047dd10
sub esp, 0x10
lea ecx, [esi + 0x79c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x24]
mov dword [esp + 8], 0x42c80000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
call fcn.00549b70
call fcn.00532b70
mov ecx, dword [0x70ae00]
mov dword [esp + 0x28], eax
call fcn.0054d480
call fcn.00532b70
mov dword [esp + 0x2c], eax
lea ecx, [esi + 0x210]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.0056de30
push dword [esp + 0x14]
lea ecx, [esi + 0x79c]
push dword [esp + 0x14]
call fcn.00571110
mov edi, esi
lea esi, [edi + 0x25080]
mov ecx, esi
call fcn.0047edc0
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.0047ee40
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.0047ede0
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00580470
mov ecx, esi
call fcn.0047eb20
mov ecx, esi
call fcn.0047eed0
call fcn.00532b70
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.00482210
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.0047ef00
mov ecx, esi
call fcn.0047ee00
call fcn.00532b70
mov dword [esp + 0x38], eax
mov ecx, esi
call fcn.0047ee20
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00580810
lea ecx, [edi + 0x2b0]
call fcn.005225f0
call fcn.00532b70
lea ecx, [edi + 0x1f854]
mov dword [esp + 0x40], eax
call fcn.00497ec0
call fcn.00532b70
lea ecx, [edi + 0x15c]
mov dword [esp + 0x44], eax
call fcn.00590f50
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.00580470
mov ecx, esi
call fcn.0047eb70
mov ecx, esi
call fcn.00580810
call fcn.00532b70
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.0047ee60
call fcn.00532b70
mov edi, eax
call fcn.00532b70
push 0x5a
mov esi, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x477742
mov ecx, dword [0x70ed64]
push 3
push 8
call fcn.005493c0
mov ebx, dword [esp + 0x18]
sub esi, ebx
cmp esi, 3
jb 0x477974
mov eax, dword [0x70eeb8]
test al, 1
jne 0x477779
or eax, 1
push 0x65fa28
push str.perf_game_render.txt
mov dword [0x70eeb8], eax
call fcn.005d70e8
add esp, 8
mov dword [0x70eebc], eax
call fcn.00532b70
push eax
push esi
push str.GR.Total__d__Time__d__n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x2c]
sub eax, ebx
push eax
push str.GR.DFM__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x3c]
add esp, 0x1c
sub eax, dword [esp + 0x1c]
push eax
push str.GR.EFT.UP__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x30]
add esp, 0xc
sub eax, dword [esp + 0x20]
push eax
push str.GR.SHW__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x34]
add esp, 0xc
sub eax, dword [esp + 0x24]
push eax
push str.GR.STT__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x38]
add esp, 0xc
sub eax, dword [esp + 0x28]
push eax
push str.GR.CLL__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x20]
add esp, 0xc
sub eax, dword [esp + 0x2c]
push eax
push str.GR.BG.SKY__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x14]
push eax
push str.GR.BG.LEN__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x18]
add esp, 0xc
sub eax, dword [esp + 0x10]
push eax
push str.GR.BG.CLD__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x3c]
add esp, 0xc
sub eax, dword [esp + 0xc]
push eax
push str.GR.BG.MAIN__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x40]
add esp, 0xc
sub eax, dword [esp + 0x30]
push eax
push str.GR.CHR__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x44]
add esp, 0xc
sub eax, dword [esp + 0x34]
push eax
push str.GR.BG.WTR__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x48]
add esp, 0xc
sub eax, dword [esp + 0x38]
push eax
push str.GR.BG.EFT__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x4c]
add esp, 0xc
sub eax, dword [esp + 0x3c]
push eax
push str.GR.EFT__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x50]
add esp, 0xc
sub eax, dword [esp + 0x40]
push eax
push str.GR.ITM__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x54]
add esp, 0xc
sub eax, dword [esp + 0x44]
push eax
push str.GR.FLY__d_n
push dword [0x70eebc]
call fcn.005d94f3
mov eax, dword [esp + 0x58]
add esp, 0xc
sub eax, dword [esp + 0x48]
push eax
push str.GR.BG.BLK__d_n
push dword [0x70eebc]
call fcn.005d94f3
sub edi, dword [esp + 0x58]
add esp, 0xc
push edi
push str.GR.BG.LEN__d_n
push dword [0x70eebc]
call fcn.005d94f3
add esp, 0xc
push dword [0x70eebc]
call fcn.005d99c1
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret