Function at 0x140008010
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x38]
sub rsp, 0x110
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x1400db040]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r14, rcx
xor r12d, r12d
lea ecx, [r12 + 0x23]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x140008061
mov byte [0x1400e1094], 1
mov byte [r14 + 0x18], 1
call fcn.140056d20
xor r8d, r8d
xor edx, edx
lea rcx, str.World
call fcn.14005c670
mov qword [rsp + 0x78], r12
lea rdx, [rsp + 0x78]
lea rcx, str.Save
call fcn.14003b160
test al, al
je 0x14000809d
lea rcx, [0x1400e10a0]
call fcn.1400284e0
mov qword [rsp + 0x78], r12
lea rdx, [rsp + 0x78]
lea rcx, str.Load
call fcn.14003b160
test al, al
je 0x1400080cf
lea rcx, [0x1400e10a0]
call fcn.140028980
mov qword [r14 + 0x68], r12
mov qword [r14 + 0x58], r12
mov qword [r14 + 0x60], r12
mov rcx, qword [0x1400e1080]
mov rax, qword [rcx + 0x4078]
mov byte [rax + 0xcc], 1
mov rax, qword [rcx + 0x4078]
cmp byte [rax + 0xcf], r12b
jne 0x14000812a
lea rdx, str.Objects
mov r8, rdx
cmp rdx, 0xffffffffffffffff
jae 0x140008122
movzx ecx, byte [r8]
test cl, cl
je 0x140008122
lea rax, [r8 + 1]
cmp cl, 0x23
jne 0x140008119
cmp byte [rax], cl
je 0x140008122
mov r8, rax
cmp rax, 0xffffffffffffffff
jb 0x140008104
xorps xmm3, xmm3
call fcn.14003da00
lea rdx, str._Light_Type_
lea rcx, str.Create_Light
call fcn.14003dea0
test al, al
je 0x1400081d9
mov qword [rsp + 0x78], r12
lea r9, [rsp + 0x78]
xor edx, edx
lea rcx, str.Point_Light
call fcn.14004b820
test al, al
je 0x1400081d4
mov ecx, 0x40
call fcn.14008ba00
mov qword [rsp + 0x78], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov dword [rax + 8], 0x3f800000
mov dword [rax + 0xc], 0x3f800000
mov dword [rax + 0x10], 0x3f800000
mov dword [rax + 0x14], 0x3f800000
mov dword [rax + 0x18], 0xffffffff
lea rdx, vtable.Sandbox::PointLight.0
mov qword [rax], rdx
lea rdx, vtable.Sandbox::PointLight.2.0
mov qword [rax + 0x20], rdx
lea rdx, vtable.Sandbox::PointLight.1.0
mov qword [rax + 0x28], rdx
mov rdx, rax
lea rcx, [0x1400e10a0]
call fcn.1400296d0
call fcn.14003e8a0
mov rdi, r12
mov rbx, qword [0x1400e10a0]
mov rsi, qword [0x1400e10a8]
movabs r15, 0xcccccccccccccccd
cmp rbx, rsi
je 0x140008362
nop dword [rax]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
mov r8d, 0xa
lea rdx, str.Renderable
lea rcx, [rbp - 0x70]
call fcn.140004f60
nop
mov r8d, 2
lea rdx, [0x1400bde3c]
lea rcx, [rbp - 0x70]
call fcn.140003c10
lea r9, [rbp - 0x13]
mov r8, rdi
nop dword [rax]
nop word [rax + rax]
dec r9
mov rax, r15
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x140008250
lea r8, [rbp - 0x13]
mov rdx, r9
lea rcx, [rsp + 0x58]
call fcn.140005be0
nop
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rbp - 0x70]
call fcn.140003c10
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x1400082e9
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400082e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b51
call fcn.14008ba3c
mov qword [rsp + 0x78], 0
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rcx, qword [rbp - 0x70]
lea r9, [rsp + 0x78]
xor edx, edx
call fcn.14004b820
test al, al
je 0x140008317
mov rax, qword [rbx]
mov qword [r14 + 0x68], rax
inc rdi
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x140008355
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008350
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b58
call fcn.14008ba3c
add rbx, 8
cmp rbx, rsi
jne 0x140008200
mov rdi, r12
mov rbx, qword [0x1400e10b8]
mov rsi, qword [0x1400e10c0]
cmp rbx, rsi
je 0x1400084c2
nop dword [rax]
mov rcx, qword [rbx]
mov rax, qword [rcx]
lea rdx, [rbp - 0x70]
call qword [rax + 0x30]
nop
mov r8d, 2
lea rdx, [0x1400bde3c]
lea rcx, [rbp - 0x70]
call fcn.140003c10
lea r9, [rbp - 0x13]
mov r8, rdi
nop dword [rax + rax]
dec r9
mov rax, r15
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x1400083b0
lea r8, [rbp - 0x13]
mov rdx, r9
lea rcx, [rsp + 0x58]
call fcn.140005be0
nop
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rbp - 0x70]
call fcn.140003c10
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x140008449
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008444
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b5f
call fcn.14008ba3c
mov qword [rsp + 0x78], 0
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rcx, qword [rbp - 0x70]
lea r9, [rsp + 0x78]
xor edx, edx
call fcn.14004b820
test al, al
je 0x140008477
mov rax, qword [rbx]
mov qword [r14 + 0x58], rax
inc rdi
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x1400084b5
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400084b0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b66
call fcn.14008ba3c
add rbx, 8
cmp rbx, rsi
jne 0x140008380
mov rdi, r12
mov rbx, qword [0x1400e10d0]
mov rsi, qword [0x1400e10d8]
cmp rbx, rsi
je 0x140008642
nop dword [rax]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
mov r8d, 6
lea rdx, str.Camera
lea rcx, [rbp - 0x70]
call fcn.140004f60
nop
mov r8d, 2
lea rdx, [0x1400bde3c]
lea rcx, [rbp - 0x70]
call fcn.140003c10
lea r9, [rbp - 0x13]
mov r8, rdi
nop dword [rax]
nop word [rax + rax]
dec r9
mov rax, r15
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x140008530
lea r8, [rbp - 0x13]
mov rdx, r9
lea rcx, [rsp + 0x58]
call fcn.140005be0
nop
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rbp - 0x70]
call fcn.140003c10
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x1400085c9
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400085c4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b6d
call fcn.14008ba3c
mov qword [rsp + 0x78], 0
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rcx, qword [rbp - 0x70]
lea r9, [rsp + 0x78]
xor edx, edx
call fcn.14004b820
test al, al
je 0x1400085f7
mov rax, qword [rbx]
mov qword [r14 + 0x60], rax
inc rdi
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x140008635
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008630
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008b74
call fcn.14008ba3c
add rbx, 8
cmp rbx, rsi
jne 0x1400084e0
call fcn.14005ebe0
xor r8d, r8d
xor edx, edx
lea rcx, str.Options
call fcn.14005c670
mov rcx, qword [0x1400e1080]
mov rax, qword [rcx + 0x4078]
mov byte [rax + 0xcc], 1
mov rax, qword [rcx + 0x4078]
cmp byte [rax + 0xcf], 0
jne 0x1400086b6
lea rdx, str.Post_Process_Options
mov r8, rdx
cmp rdx, 0xffffffffffffffff
jae 0x1400086ae
nop dword [rax]
movzx ecx, byte [r8]
test cl, cl
je 0x1400086ae
lea rax, [r8 + 1]
cmp cl, 0x23
jne 0x1400086a5
cmp byte [rax], cl
je 0x1400086ae
mov r8, rax
cmp rax, 0xffffffffffffffff
jb 0x140008690
xorps xmm3, xmm3
call fcn.14003da00
movzx eax, byte [0x1400e1140]
mov byte [rsp + 0x50], al
movss xmm0, dword [0x1400e1144]
movss dword [rbp - 0x40], xmm0
movzx eax, byte [0x1400e1148]
mov byte [rsp + 0x51], al
movss xmm0, dword [0x1400e114c]
movss dword [rbp - 0x3c], xmm0
lea rdx, [rsp + 0x50]
lea rcx, str.Gamma_Correction
call fcn.14003c260
test al, al
je 0x140008706
movzx eax, byte [rsp + 0x50]
mov byte [0x1400e1140], al
mov dword [rbp - 0x78], 0
mov dword [rbp - 0x80], 0
lea rbx, str._.3f
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
movss xmm3, dword [0x1400c7ee8]
lea r8, [rbp - 0x40]
mov edx, 8
lea rcx, str.Gamma_Amount
call fcn.14003ec80
test al, al
je 0x140008760
movss xmm0, dword [rbp - 0x40]
movss dword [0x1400e1144], xmm0
lea rdx, [rsp + 0x51]
lea rcx, str.Enable_HDR
call fcn.14003c260
test al, al
je 0x140008780
movzx eax, byte [rsp + 0x51]
mov byte [0x1400e1148], al
mov dword [rbp - 0x80], 0
mov dword [rbp - 0x78], 0
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
movss xmm3, dword [0x1400c7ee8]
lea r8, [rbp - 0x3c]
mov edx, 8
lea rcx, str.Exposure
call fcn.14003ec80
test al, al
je 0x1400087d3
movss xmm0, dword [rbp - 0x3c]
movss dword [0x1400e114c], xmm0
mov rcx, qword [r14 + 0x68]
test rcx, rcx
je 0x1400087e2
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x1400e1080]
mov rax, qword [rcx + 0x4078]
mov byte [rax + 0xcc], 1
mov rax, qword [rcx + 0x4078]
cmp byte [rax + 0xcf], 0
jne 0x14000883d
lea rdx, str.Selected_Light
mov r8, rdx
cmp rdx, 0xffffffffffffffff
jae 0x140008835
movzx ecx, byte [r8]
test cl, cl
je 0x140008835
lea rax, [r8 + 1]
cmp cl, 0x23
jne 0x14000882c
cmp byte [rax], cl
je 0x140008835
mov r8, rax
cmp rax, 0xffffffffffffffff
jb 0x140008817
xorps xmm3, xmm3
call fcn.14003da00
mov rcx, qword [r14 + 0x58]
movss xmm6, dword [0x1400c7f08]
test rcx, rcx
je 0x14000895c
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
call qword [rax + 0x18]
mov rcx, qword [r14 + 0x58]
movsd xmm0, qword [rcx + 8]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rcx + 0x10]
mov dword [rbp - 0x48], eax
movss xmm0, dword [rcx + 0x14]
movss dword [rbp - 0x78], xmm0
mov dword [rbp - 0x80], 0
mov dword [rsp + 0x78], 0
lea rax, [rbp - 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm6
mov r9d, 3
lea r8, [rbp - 0x28]
lea rcx, str.Light_Position
call fcn.14003f720
test al, al
je 0x1400088d8
mov rcx, qword [r14 + 0x58]
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
call qword [rax + 0x20]
mov r8d, 2
lea rdx, [rbp - 0x50]
lea rcx, str.ColorLight
call fcn.140046ad0
test al, al
je 0x140008906
mov rcx, qword [r14 + 0x58]
movsd xmm0, qword [rbp - 0x50]
movsd qword [rcx + 8], xmm0
mov eax, dword [rbp - 0x48]
mov dword [rcx + 0x10], eax
mov dword [rsp + 0x78], 0
mov dword [rbp - 0x80], 0
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
movss xmm3, dword [0x1400c7ee8]
lea r8, [rbp - 0x78]
mov edx, 8
lea rcx, str.Intensity
call fcn.14003ec80
test al, al
je 0x14000895c
mov rax, qword [r14 + 0x58]
movss xmm0, dword [rbp - 0x78]
movss dword [rax + 0x14], xmm0
mov rcx, qword [0x1400e1080]
mov rax, qword [rcx + 0x4078]
mov byte [rax + 0xcc], 1
mov rax, qword [rcx + 0x4078]
cmp byte [rax + 0xcf], 0
jne 0x1400089b7
lea rdx, str.Selected_Camera
mov r8, rdx
cmp rdx, 0xffffffffffffffff
jae 0x1400089af
movzx ecx, byte [r8]
test cl, cl
je 0x1400089af
lea rax, [r8 + 1]
cmp cl, 0x23
jne 0x1400089a6
cmp byte [rax], cl
je 0x1400089af
mov r8, rax
cmp rax, 0xffffffffffffffff
jb 0x140008991
xorps xmm3, xmm3
call fcn.14003da00
cmp qword [r14 + 0x60], 0
je 0x140008b15
mov qword [rsp + 0x78], 0
lea rdx, [rsp + 0x78]
lea rcx, str.Set_Active
call fcn.14003b160
test al, al
je 0x1400089eb
mov rax, qword [r14 + 0x60]
mov qword [0x1400e1138], rax
mov rbx, qword [r14 + 0x60]
movsd xmm0, qword [rbx + 0x28]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rbx + 0x30]
mov dword [rbp - 0x48], eax
movsd xmm0, qword [rbx + 0x34]
movsd qword [rbp - 0x38], xmm0
mov eax, dword [rbx + 0x3c]
mov dword [rbp - 0x30], eax
movsd xmm0, qword [rbx + 0x40]
movsd qword [rbp - 0x28], xmm0
mov eax, dword [rbx + 0x48]
mov dword [rbp - 0x20], eax
mov dword [rsp + 0x78], 0
mov dword [rbp - 0x80], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm6
mov r9d, 3
lea r8, [rbp - 0x50]
lea rcx, str.PositionTransform
call fcn.14003f720
test al, al
je 0x140008a71
movsd xmm0, qword [rbp - 0x50]
movsd qword [rbx + 0x28], xmm0
mov eax, dword [rbp - 0x48]
mov dword [rbx + 0x30], eax
mov dword [rsp + 0x78], 0
mov dword [rbp - 0x80], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm6
mov r9d, 3
lea r8, [rbp - 0x38]
lea rcx, str.RotationTransform
call fcn.14003f720
test al, al
je 0x140008ac3
movsd xmm0, qword [rbp - 0x38]
movsd qword [rbx + 0x34], xmm0
mov eax, dword [rbp - 0x30]
mov dword [rbx + 0x3c], eax
mov dword [rsp + 0x78], 0
mov dword [rbp - 0x80], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm6
mov r9d, 3
lea r8, [rbp - 0x28]
lea rcx, str.ScaleTransform
call fcn.14003f720
test al, al
je 0x140008b15
movsd xmm0, qword [rbp - 0x28]
movsd qword [rbx + 0x40], xmm0
mov eax, dword [rbp - 0x20]
mov dword [rbx + 0x48], eax
call fcn.14005ebe0
call fcn.140058850
call fcn.140058c00
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14008b9e0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3