Function at 0x1400413d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x4c0
mov rax, qword [0x140072010]
xor rax, rsp
mov qword [rsp + 0x4b0], rax
mov dword [rsp + 0x30], 0
lea rax, [rsp + 0x3a0]
mov rdi, rax
xor eax, eax
mov ecx, 0x104
rep stosb byte [rdi], al
mov r8d, 0x104
lea rdx, [rsp + 0x3a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rax, [rsp + 0x380]
movzx edx, byte [rsp + 0x99]
mov rcx, rax
call fcn.140059f40
nop
lea rax, [rsp + 0x3a0]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0xb8], 0xffffffffffffffff
inc qword [rsp + 0xb8]
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xb8]
cmp byte [rax + rcx], 0
jne 0x140041456
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x120], rax
mov r8, qword [rsp + 0x120]
lea rdx, [rsp + 0x3a0]
lea rcx, [rsp + 0x380]
call fcn.14005a250
nop
mov r8, 0xffffffffffffffff
lea rdx, [0x14006d650]
lea rcx, [rsp + 0x380]
call fcn.140056f80
inc rax
mov qword [rsp + 0x128], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
mov r9, 0xffffffffffffffff
mov r8, qword [rsp + 0x128]
lea rdx, [rsp + 0x380]
lea rcx, [rsp + 0x280]
call fcn.140058400
mov eax, dword [rsp + 0x30]
or eax, 4
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x280]
mov qword [rsp + 0x130], rax
mov rdx, qword [rsp + 0x130]
lea rcx, [rsp + 0x380]
call fcn.1400575a0
lea rcx, [rsp + 0x280]
call fcn.140057f50
lea rax, [rsp + 0x88]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x138], rax
lea rdx, [rsp + 0x380]
mov rcx, qword [rsp + 0x138]
call fcn.140057880
mov qword [rsp + 0x140], rax
mov rdx, qword [rsp + 0x140]
lea rcx, [rsp + 0x2c0]
call fcn.140001690
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x150], rax
mov eax, dword [rsp + 0x30]
or eax, 1
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x88]
call fcn.140042450
mov rcx, rax
call fcn.14004b7a0
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x150]
call fcn.1400571c0
cmp rax, 0xffffffffffffffff
jne 0x14004169f
lea rax, [rsp + 0x34]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x300]
mov qword [rsp + 0x158], rax
lea rdx, [rsp + 0x380]
mov rcx, qword [rsp + 0x158]
call fcn.140057880
mov qword [rsp + 0x160], rax
mov rdx, qword [rsp + 0x160]
lea rcx, [rsp + 0x2a0]
call fcn.140001690
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x170], rax
mov eax, dword [rsp + 0x30]
or eax, 2
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x34]
call fcn.140042560
mov rcx, rax
call fcn.14004b710
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x170]
call fcn.1400571c0
cmp rax, 0xffffffffffffffff
jne 0x14004169f
mov dword [rsp + 0x9c], 0
jmp 0x1400416aa
mov dword [rsp + 0x9c], 1
movzx eax, byte [rsp + 0x9c]
mov byte [rsp + 0x35], al
mov eax, dword [rsp + 0x30]
and eax, 2
test eax, eax
je 0x1400416d4
and dword [rsp + 0x30], 0xfffffffd
lea rcx, [rsp + 0x2a0]
call fcn.140057f50
nop
mov eax, dword [rsp + 0x30]
and eax, 1
test eax, eax
je 0x1400416f1
and dword [rsp + 0x30], 0xfffffffe
lea rcx, [rsp + 0x2c0]
call fcn.140057f50
movzx eax, byte [rsp + 0x35]
test eax, eax
je 0x14004182a
lea rax, [rsp + 0x36]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x36]
call fcn.140042670
mov rcx, rax
call fcn.14004b680
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x37]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x37]
call fcn.140042830
mov rcx, rax
call fcn.14004b5f0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x38]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x38]
call fcn.1400429f0
mov rcx, rax
call fcn.14004b560
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x39]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x39]
call fcn.140042bb0
mov rcx, rax
call fcn.14004b4d0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x3a]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x3a]
call fcn.140042d70
mov rcx, rax
call fcn.14004b440
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x3b]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x3b]
call fcn.140042f30
mov rcx, rax
call fcn.14004b3b0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x48]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x320]
mov qword [rsp + 0x178], rax
lea rdx, [rsp + 0x380]
mov rcx, qword [rsp + 0x178]
call fcn.140057880
mov qword [rsp + 0xc8], rax
lea rdx, [0x14006d601]
lea rcx, [rsp + 0x220]
call fcn.140057740
mov qword [rsp + 0x208], rax
mov eax, dword [rsp + 0x30]
or eax, 0x20
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x8c], 0
jmp 0x1400418ac
mov eax, dword [rsp + 0x8c]
inc eax
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x180], rax
movsxd rax, dword [rsp + 0x8c]
cmp rax, qword [rsp + 0x180]
jae 0x1400419b1
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xc0]
cmp qword [rax + 0x18], 0x10
jb 0x140041912
mov dword [rsp + 0xa0], 1
jmp 0x14004191d
mov dword [rsp + 0xa0], 0
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x3c], al
movzx eax, byte [rsp + 0x3c]
test eax, eax
je 0x140041955
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x190], rax
movsxd rax, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x190]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x198]
movsx eax, byte [rax]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rsp + 0x40], al
movzx edx, byte [rsp + 0x40]
lea rcx, [rsp + 0x220]
call fcn.140058070
jmp 0x14004189c
mov rcx, qword [rsp + 0xc8]
call fcn.140057f50
lea rax, [rsp + 0x220]
mov qword [rsp + 0x1a0], rax
lea rcx, [rsp + 0x48]
call fcn.1400430f0
mov rcx, rax
call fcn.14004b320
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x1a0]
call fcn.1400571c0
cmp rax, 0xffffffffffffffff
je 0x140041a06
mov dword [rsp + 0xa4], 1
jmp 0x140041a11
mov dword [rsp + 0xa4], 0
movzx eax, byte [rsp + 0xa4]
mov byte [rsp + 0x49], al
and dword [rsp + 0x30], 0xffffffdf
lea rcx, [rsp + 0x220]
call fcn.140057f50
movzx eax, byte [rsp + 0x49]
test eax, eax
je 0x140041bcc
lea rax, [rsp + 0x4a]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4a]
call fcn.140043200
mov rcx, rax
call fcn.14004b290
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x4b]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4b]
call fcn.140043410
mov rcx, rax
call fcn.14004b200
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x4c]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4c]
call fcn.140043620
mov rcx, rax
call fcn.14004b170
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x4d]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4d]
call fcn.140043830
mov rcx, rax
call fcn.14004b0e0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x4e]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4e]
call fcn.140043a40
mov rcx, rax
call fcn.14004b050
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x4f]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x4f]
call fcn.140043c50
mov rcx, rax
call fcn.14004afc0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x50]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x50]
call fcn.140043e60
mov rcx, rax
call fcn.14004af30
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x51]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x51]
call fcn.140044070
mov rcx, rax
call fcn.14004aea0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x60]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x340]
mov qword [rsp + 0x1a8], rax
lea rdx, [rsp + 0x380]
mov rcx, qword [rsp + 0x1a8]
call fcn.140057880
mov qword [rsp + 0xd8], rax
lea rdx, [0x14006d601]
lea rcx, [rsp + 0x240]
call fcn.140057740
mov qword [rsp + 0x210], rax
mov eax, dword [rsp + 0x30]
or eax, 0x40
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x90], 0
jmp 0x140041c4e
mov eax, dword [rsp + 0x90]
inc eax
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1b0], rax
movsxd rax, dword [rsp + 0x90]
cmp rax, qword [rsp + 0x1b0]
jae 0x140041d53
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0xd0]
cmp qword [rax + 0x18], 0x10
jb 0x140041cb4
mov dword [rsp + 0xa8], 1
jmp 0x140041cbf
mov dword [rsp + 0xa8], 0
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x52], al
movzx eax, byte [rsp + 0x52]
test eax, eax
je 0x140041cf7
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
mov qword [rsp + 0x1b8], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x1c0], rax
movsxd rax, dword [rsp + 0x90]
mov rcx, qword [rsp + 0x1c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x1c8], rax
mov rax, qword [rsp + 0x1c8]
movsx eax, byte [rax]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rsp + 0x58], al
movzx edx, byte [rsp + 0x58]
lea rcx, [rsp + 0x240]
call fcn.140058070
jmp 0x140041c3e
mov rcx, qword [rsp + 0xd8]
call fcn.140057f50
lea rax, [rsp + 0x240]
mov qword [rsp + 0x1d0], rax
lea rcx, [rsp + 0x60]
call fcn.140044290
mov rcx, rax
call fcn.14004ae10
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x1d0]
call fcn.1400571c0
cmp rax, 0xffffffffffffffff
je 0x140041da8
mov dword [rsp + 0xac], 1
jmp 0x140041db3
mov dword [rsp + 0xac], 0
movzx eax, byte [rsp + 0xac]
mov byte [rsp + 0x61], al
and dword [rsp + 0x30], 0xffffffbf
lea rcx, [rsp + 0x240]
call fcn.140057f50
movzx eax, byte [rsp + 0x61]
test eax, eax
je 0x140041f46
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rsp + 0x100], rax
mov dx, 1
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rax, [rsp + 0x62]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x62]
call fcn.140044390
mov rcx, rax
call fcn.14004ad80
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x63]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x63]
call fcn.1400445f0
mov rcx, rax
call fcn.14004acf0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x64]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x64]
call fcn.140044850
mov rcx, rax
call fcn.14004ac60
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x65]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x65]
call fcn.140044ab0
mov rcx, rax
call fcn.14004abd0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x66]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x66]
call fcn.140044d10
mov rcx, rax
call fcn.14004ab40
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x67]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x67]
call fcn.140044f70
mov rcx, rax
call fcn.14004aab0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
mov dx, 7
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
jmp 0x1400422f8
lea rax, [rsp + 0x78]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x360]
mov qword [rsp + 0x1d8], rax
lea rdx, [rsp + 0x380]
mov rcx, qword [rsp + 0x1d8]
call fcn.140057880
mov qword [rsp + 0xe8], rax
lea rdx, [0x14006d601]
lea rcx, [rsp + 0x260]
call fcn.140057740
mov qword [rsp + 0x218], rax
mov eax, dword [rsp + 0x30]
bts eax, 7
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x94], 0
jmp 0x140041fc9
mov eax, dword [rsp + 0x94]
inc eax
mov dword [rsp + 0x94], eax
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1e0], rax
movsxd rax, dword [rsp + 0x94]
cmp rax, qword [rsp + 0x1e0]
jae 0x1400420ce
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0xe0]
cmp qword [rax + 0x18], 0x10
jb 0x14004202f
mov dword [rsp + 0xb0], 1
jmp 0x14004203a
mov dword [rsp + 0xb0], 0
movzx eax, byte [rsp + 0xb0]
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x68]
test eax, eax
je 0x140042072
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x1f0], rax
movsxd rax, dword [rsp + 0x94]
mov rcx, qword [rsp + 0x1f0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x1f8], rax
mov rax, qword [rsp + 0x1f8]
movsx eax, byte [rax]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rsp + 0x70], al
movzx edx, byte [rsp + 0x70]
lea rcx, [rsp + 0x260]
call fcn.140058070
jmp 0x140041fb9
mov rcx, qword [rsp + 0xe8]
call fcn.140057f50
lea rax, [rsp + 0x260]
mov qword [rsp + 0x200], rax
lea rcx, [rsp + 0x78]
call fcn.1400451e0
mov rcx, rax
call fcn.14004aa20
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x200]
call fcn.1400571c0
cmp rax, 0xffffffffffffffff
je 0x140042123
mov dword [rsp + 0xb4], 1
jmp 0x14004212e
mov dword [rsp + 0xb4], 0
movzx eax, byte [rsp + 0xb4]
mov byte [rsp + 0x79], al
and dword [rsp + 0x30], 0xffffff7f
lea rcx, [rsp + 0x260]
call fcn.140057f50
movzx eax, byte [rsp + 0x79]
test eax, eax
je 0x1400422f8
lea rax, [rsp + 0x7a]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7a]
call fcn.1400452f0
mov rcx, rax
call fcn.14004a990
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x7b]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7b]
call fcn.140045550
mov rcx, rax
call fcn.14004a900
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x7c]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7c]
call fcn.1400457b0
mov rcx, rax
call fcn.14004a870
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x7d]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7d]
call fcn.140045a10
mov rcx, rax
call fcn.14004a7e0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x7e]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7e]
call fcn.140045c70
mov rcx, rax
call fcn.14004a750
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x7f]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x7f]
call fcn.140045ed0
mov rcx, rax
call fcn.14004a6c0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x80]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x80]
call fcn.140046130
mov rcx, rax
call fcn.14004a630
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x81]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x81]
call fcn.140046390
mov rcx, rax
call fcn.14004a5a0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x82]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x82]
call fcn.140046600
mov rcx, rax
call fcn.14004a510
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
lea rax, [rsp + 0x83]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x83]
call fcn.140046860
mov rcx, rax
call fcn.14004a480
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
xor eax, eax
cmp eax, 1
je 0x140042417
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x1400423a8
mov byte [rsp + 0x84], 1
lea rcx, [rsp + 0x380]
call fcn.140057f50
movzx eax, byte [rsp + 0x84]
jmp 0x140042434
mov ecx, 0x4e
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x140042412
lea rax, [rsp + 0x85]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rcx, [rsp + 0x85]
call fcn.1400469d0
mov rcx, rax
call fcn.14004a3f0
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140059470
mov byte [rsp + 0x86], 0
lea rcx, [rsp + 0x380]
call fcn.140057f50
movzx eax, byte [rsp + 0x86]
jmp 0x140042434
jmp 0x140042368
mov byte [rsp + 0x87], 0
lea rcx, [rsp + 0x380]
call fcn.140057f50
movzx eax, byte [rsp + 0x87]
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.14005f160
add rsp, 0x4c0
pop rdi
ret