Function at 0x14003e370
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x6e0
mov rax, qword [0x14006f010]
xor rax, rsp
mov qword [rsp + 0x6d0], rax
mov dword [rsp + 0x30], 0
lea rax, [rsp + 0x5c0]
mov rdi, rax
xor eax, eax
mov ecx, 0x104
rep stosb byte [rdi], al
mov r8d, 0x104
lea rdx, [rsp + 0x5c0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rdx, [rsp + 0x5c0]
lea rcx, [rsp + 0x5a0]
call fcn.14001a0f0
nop
mov r8, 0xffffffffffffffff
lea rdx, [0x14006a650]
lea rcx, [rsp + 0x5a0]
call fcn.1400532b0
inc rax
mov qword [rsp + 0x108], rax
lea rax, [rsp + 0x91]
mov qword [rsp + 0x20], rax
mov r9, 0xffffffffffffffff
mov r8, qword [rsp + 0x108]
lea rdx, [rsp + 0x5a0]
lea rcx, [rsp + 0x4a0]
call fcn.140054590
mov eax, dword [rsp + 0x30]
or eax, 4
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x110], rax
mov rdx, qword [rsp + 0x110]
lea rcx, [rsp + 0x5a0]
call fcn.140053970
lea rcx, [rsp + 0x4a0]
call fcn.1400541f0
lea rax, [rsp + 0x500]
mov qword [rsp + 0x118], rax
lea rdx, [rsp + 0x5a0]
mov rcx, qword [rsp + 0x118]
call fcn.140053bb0
mov qword [rsp + 0x120], rax
mov rdx, qword [rsp + 0x120]
lea rcx, [rsp + 0x4e0]
call fcn.140001750
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x130], rax
mov eax, dword [rsp + 0x30]
or eax, 1
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x140], rax
lea rcx, [rsp + 0x92]
call fcn.14003f500
mov rcx, rax
call fcn.140047b50
mov qword [rsp + 0x138], rax
xor r8d, r8d
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
call fcn.140053510
cmp rax, 0xffffffffffffffff
jne 0x14003e5dc
lea rax, [rsp + 0x520]
mov qword [rsp + 0x148], rax
lea rdx, [rsp + 0x5a0]
mov rcx, qword [rsp + 0x148]
call fcn.140053bb0
mov qword [rsp + 0x150], rax
mov rdx, qword [rsp + 0x150]
lea rcx, [rsp + 0x4c0]
call fcn.140001750
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x160], rax
mov eax, dword [rsp + 0x30]
or eax, 2
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x93]
call fcn.14003f620
mov rcx, rax
call fcn.140047ac0
mov qword [rsp + 0x168], rax
xor r8d, r8d
mov rdx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x170]
call fcn.140053510
cmp rax, 0xffffffffffffffff
jne 0x14003e5dc
mov dword [rsp + 0x98], 0
jmp 0x14003e5e7
mov dword [rsp + 0x98], 1
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x34], al
mov eax, dword [rsp + 0x30]
and eax, 2
test eax, eax
je 0x14003e611
and dword [rsp + 0x30], 0xfffffffd
lea rcx, [rsp + 0x4c0]
call fcn.1400541f0
nop
mov eax, dword [rsp + 0x30]
and eax, 1
test eax, eax
je 0x14003e62e
and dword [rsp + 0x30], 0xfffffffe
lea rcx, [rsp + 0x4e0]
call fcn.1400541f0
movzx eax, byte [rsp + 0x34]
test eax, eax
je 0x14003e7b2
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x180], rax
lea rcx, [rsp + 0x94]
call fcn.14003f740
mov rcx, rax
call fcn.140047a30
mov qword [rsp + 0x178], rax
mov rdx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x190], rax
lea rcx, [rsp + 0x70]
call fcn.14003f900
mov rcx, rax
call fcn.1400479a0
mov qword [rsp + 0x188], rax
mov rdx, qword [rsp + 0x188]
mov rcx, qword [rsp + 0x190]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x1a0], rax
lea rcx, [rsp + 0x71]
call fcn.14003fac0
mov rcx, rax
call fcn.140047910
mov qword [rsp + 0x198], rax
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x1a0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x1b0], rax
lea rcx, [rsp + 0x72]
call fcn.14003fc80
mov rcx, rax
call fcn.140047880
mov qword [rsp + 0x1a8], rax
mov rdx, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1b0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x1c0], rax
lea rcx, [rsp + 0x73]
call fcn.14003fe40
mov rcx, rax
call fcn.1400477f0
mov qword [rsp + 0x1b8], rax
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x1d0], rax
lea rcx, [rsp + 0x74]
call fcn.140040000
mov rcx, rax
call fcn.140047760
mov qword [rsp + 0x1c8], rax
mov rdx, qword [rsp + 0x1c8]
mov rcx, qword [rsp + 0x1d0]
call fcn.140055c30
lea rax, [rsp + 0x540]
mov qword [rsp + 0x1d8], rax
lea rdx, [rsp + 0x5a0]
mov rcx, qword [rsp + 0x1d8]
call fcn.140053bb0
mov qword [rsp + 0xc0], rax
lea rdx, [0x14006a601]
lea rcx, [rsp + 0x440]
call fcn.14001a0f0
mov qword [rsp + 0x428], rax
mov eax, dword [rsp + 0x30]
or eax, 0x20
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x64], 0
jmp 0x14003e81a
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1e0], rax
movsxd rax, dword [rsp + 0x64]
cmp rax, qword [rsp + 0x1e0]
jae 0x14003e919
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xb8]
cmp qword [rax + 0x18], 0x10
jb 0x14003e87d
mov dword [rsp + 0x9c], 1
jmp 0x14003e888
mov dword [rsp + 0x9c], 0
movzx eax, byte [rsp + 0x9c]
mov byte [rsp + 0x35], al
movzx eax, byte [rsp + 0x35]
test eax, eax
je 0x14003e8c0
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax]
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x1f0], rax
movsxd rax, dword [rsp + 0x64]
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 + 0x38], al
movzx edx, byte [rsp + 0x38]
lea rcx, [rsp + 0x440]
call fcn.140053790
jmp 0x14003e810
mov rcx, qword [rsp + 0xc0]
call fcn.1400541f0
lea rax, [rsp + 0x440]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x210], rax
lea rcx, [rsp + 0x75]
call fcn.1400401d0
mov rcx, rax
call fcn.1400476d0
mov qword [rsp + 0x208], rax
xor r8d, r8d
mov rdx, qword [rsp + 0x208]
mov rcx, qword [rsp + 0x210]
call fcn.140053510
cmp rax, 0xffffffffffffffff
je 0x14003e98b
mov dword [rsp + 0xa0], 1
jmp 0x14003e996
mov dword [rsp + 0xa0], 0
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x40], al
and dword [rsp + 0x30], 0xffffffdf
lea rcx, [rsp + 0x440]
call fcn.1400541f0
movzx eax, byte [rsp + 0x40]
test eax, eax
je 0x14003ebb1
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x220], rax
lea rcx, [rsp + 0x76]
call fcn.1400402f0
mov rcx, rax
call fcn.140047640
mov qword [rsp + 0x218], rax
mov rdx, qword [rsp + 0x218]
mov rcx, qword [rsp + 0x220]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x230], rax
lea rcx, [rsp + 0x77]
call fcn.140040510
mov rcx, rax
call fcn.1400475b0
mov qword [rsp + 0x228], rax
mov rdx, qword [rsp + 0x228]
mov rcx, qword [rsp + 0x230]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x240], rax
lea rcx, [rsp + 0x78]
call fcn.140040730
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x238], rax
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x240]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x250], rax
lea rcx, [rsp + 0x79]
call fcn.140040950
mov rcx, rax
call fcn.140047490
mov qword [rsp + 0x248], rax
mov rdx, qword [rsp + 0x248]
mov rcx, qword [rsp + 0x250]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x260], rax
lea rcx, [rsp + 0x7a]
call fcn.140040b70
mov rcx, rax
call fcn.140047400
mov qword [rsp + 0x258], rax
mov rdx, qword [rsp + 0x258]
mov rcx, qword [rsp + 0x260]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x270], rax
lea rcx, [rsp + 0x7b]
call fcn.140040d90
mov rcx, rax
call fcn.140047370
mov qword [rsp + 0x268], rax
mov rdx, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x270]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x280], rax
lea rcx, [rsp + 0x7c]
call fcn.140040fb0
mov rcx, rax
call fcn.1400472e0
mov qword [rsp + 0x278], rax
mov rdx, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x280]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x290], rax
lea rcx, [rsp + 0x7d]
call fcn.1400411d0
mov rcx, rax
call fcn.140047250
mov qword [rsp + 0x288], rax
mov rdx, qword [rsp + 0x288]
mov rcx, qword [rsp + 0x290]
call fcn.140055c30
lea rax, [rsp + 0x560]
mov qword [rsp + 0x298], rax
lea rdx, [rsp + 0x5a0]
mov rcx, qword [rsp + 0x298]
call fcn.140053bb0
mov qword [rsp + 0xd0], rax
lea rdx, [0x14006a601]
lea rcx, [rsp + 0x460]
call fcn.14001a0f0
mov qword [rsp + 0x430], rax
mov eax, dword [rsp + 0x30]
or eax, 0x40
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x68], 0
jmp 0x14003ec19
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x2a0], rax
movsxd rax, dword [rsp + 0x68]
cmp rax, qword [rsp + 0x2a0]
jae 0x14003ed18
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xc8]
cmp qword [rax + 0x18], 0x10
jb 0x14003ec7c
mov dword [rsp + 0xa4], 1
jmp 0x14003ec87
mov dword [rsp + 0xa4], 0
movzx eax, byte [rsp + 0xa4]
mov byte [rsp + 0x41], al
movzx eax, byte [rsp + 0x41]
test eax, eax
je 0x14003ecbf
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x2b0], rax
movsxd rax, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x2b0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x2b8], rax
mov rax, qword [rsp + 0x2b8]
movsx eax, byte [rax]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rsp + 0x48], al
movzx edx, byte [rsp + 0x48]
lea rcx, [rsp + 0x460]
call fcn.140053790
jmp 0x14003ec0f
mov rcx, qword [rsp + 0xd0]
call fcn.1400541f0
lea rax, [rsp + 0x460]
mov qword [rsp + 0x2c0], rax
mov rax, qword [rsp + 0x2c0]
mov qword [rsp + 0x2d0], rax
lea rcx, [rsp + 0x7e]
call fcn.1400413f0
mov rcx, rax
call fcn.1400471c0
mov qword [rsp + 0x2c8], rax
xor r8d, r8d
mov rdx, qword [rsp + 0x2c8]
mov rcx, qword [rsp + 0x2d0]
call fcn.140053510
cmp rax, 0xffffffffffffffff
je 0x14003ed8a
mov dword [rsp + 0xa8], 1
jmp 0x14003ed95
mov dword [rsp + 0xa8], 0
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x50], al
and dword [rsp + 0x30], 0xffffffbf
lea rcx, [rsp + 0x460]
call fcn.1400541f0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x14003ef7f
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rsp + 0xf8], rax
mov dx, 1
mov rcx, qword [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x2e0], rax
lea rcx, [rsp + 0x7f]
call fcn.140041500
mov rcx, rax
call fcn.140047130
mov qword [rsp + 0x2d8], rax
mov rdx, qword [rsp + 0x2d8]
mov rcx, qword [rsp + 0x2e0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x2f0], rax
lea rcx, [rsp + 0x80]
call fcn.140041770
mov rcx, rax
call fcn.1400470a0
mov qword [rsp + 0x2e8], rax
mov rdx, qword [rsp + 0x2e8]
mov rcx, qword [rsp + 0x2f0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x300], rax
lea rcx, [rsp + 0x81]
call fcn.1400419e0
mov rcx, rax
call fcn.140047010
mov qword [rsp + 0x2f8], rax
mov rdx, qword [rsp + 0x2f8]
mov rcx, qword [rsp + 0x300]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x310], rax
lea rcx, [rsp + 0x82]
call fcn.140041c50
mov rcx, rax
call fcn.140046f80
mov qword [rsp + 0x308], rax
mov rdx, qword [rsp + 0x308]
mov rcx, qword [rsp + 0x310]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x320], rax
lea rcx, [rsp + 0x83]
call fcn.140041ec0
mov rcx, rax
call fcn.140046ef0
mov qword [rsp + 0x318], rax
mov rdx, qword [rsp + 0x318]
mov rcx, qword [rsp + 0x320]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x330], rax
lea rcx, [rsp + 0x84]
call fcn.140042130
mov rcx, rax
call fcn.140046e60
mov qword [rsp + 0x328], rax
mov rdx, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x330]
call fcn.140055c30
mov dx, 7
mov rcx, qword [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
jmp 0x14003f39d
lea rax, [rsp + 0x580]
mov qword [rsp + 0x338], rax
lea rdx, [rsp + 0x5a0]
mov rcx, qword [rsp + 0x338]
call fcn.140053bb0
mov qword [rsp + 0xe0], rax
lea rdx, [0x14006a601]
lea rcx, [rsp + 0x480]
call fcn.14001a0f0
mov qword [rsp + 0x438], rax
mov eax, dword [rsp + 0x30]
bts eax, 7
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x6c], 0
jmp 0x14003efe8
mov eax, dword [rsp + 0x6c]
inc eax
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x340], rax
movsxd rax, dword [rsp + 0x6c]
cmp rax, qword [rsp + 0x340]
jae 0x14003f0e7
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0xd8]
cmp qword [rax + 0x18], 0x10
jb 0x14003f04b
mov dword [rsp + 0xac], 1
jmp 0x14003f056
mov dword [rsp + 0xac], 0
movzx eax, byte [rsp + 0xac]
mov byte [rsp + 0x51], al
movzx eax, byte [rsp + 0x51]
test eax, eax
je 0x14003f08e
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax]
mov qword [rsp + 0x348], rax
mov rax, qword [rsp + 0x348]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x350], rax
movsxd rax, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x350]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x358], rax
mov rax, qword [rsp + 0x358]
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 + 0x480]
call fcn.140053790
jmp 0x14003efde
mov rcx, qword [rsp + 0xe0]
call fcn.1400541f0
lea rax, [rsp + 0x480]
mov qword [rsp + 0x360], rax
mov rax, qword [rsp + 0x360]
mov qword [rsp + 0x370], rax
lea rcx, [rsp + 0x85]
call fcn.1400423a0
mov rcx, rax
call fcn.140046dd0
mov qword [rsp + 0x368], rax
xor r8d, r8d
mov rdx, qword [rsp + 0x368]
mov rcx, qword [rsp + 0x370]
call fcn.140053510
cmp rax, 0xffffffffffffffff
je 0x14003f15c
mov dword [rsp + 0xb0], 1
jmp 0x14003f167
mov dword [rsp + 0xb0], 0
movzx eax, byte [rsp + 0xb0]
mov byte [rsp + 0x60], al
and dword [rsp + 0x30], 0xffffff7f
lea rcx, [rsp + 0x480]
call fcn.1400541f0
movzx eax, byte [rsp + 0x60]
test eax, eax
je 0x14003f39d
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x380], rax
lea rcx, [rsp + 0x86]
call fcn.1400424c0
mov rcx, rax
call fcn.140046d40
mov qword [rsp + 0x378], rax
mov rdx, qword [rsp + 0x378]
mov rcx, qword [rsp + 0x380]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x390], rax
lea rcx, [rsp + 0x87]
call fcn.140042730
mov rcx, rax
call fcn.140046cb0
mov qword [rsp + 0x388], rax
mov rdx, qword [rsp + 0x388]
mov rcx, qword [rsp + 0x390]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3a0], rax
lea rcx, [rsp + 0x88]
call fcn.1400429a0
mov rcx, rax
call fcn.140046c20
mov qword [rsp + 0x398], rax
mov rdx, qword [rsp + 0x398]
mov rcx, qword [rsp + 0x3a0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3b0], rax
lea rcx, [rsp + 0x89]
call fcn.140042c10
mov rcx, rax
call fcn.140046b90
mov qword [rsp + 0x3a8], rax
mov rdx, qword [rsp + 0x3a8]
mov rcx, qword [rsp + 0x3b0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3c0], rax
lea rcx, [rsp + 0x8a]
call fcn.140042e80
mov rcx, rax
call fcn.140046b00
mov qword [rsp + 0x3b8], rax
mov rdx, qword [rsp + 0x3b8]
mov rcx, qword [rsp + 0x3c0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3d0], rax
lea rcx, [rsp + 0x8b]
call fcn.1400430f0
mov rcx, rax
call fcn.140046a70
mov qword [rsp + 0x3c8], rax
mov rdx, qword [rsp + 0x3c8]
mov rcx, qword [rsp + 0x3d0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3e0], rax
lea rcx, [rsp + 0x8c]
call fcn.140043360
mov rcx, rax
call fcn.1400469e0
mov qword [rsp + 0x3d8], rax
mov rdx, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x3e0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x3f0], rax
lea rcx, [rsp + 0x8d]
call fcn.1400435d0
mov rcx, rax
call fcn.140046950
mov qword [rsp + 0x3e8], rax
mov rdx, qword [rsp + 0x3e8]
mov rcx, qword [rsp + 0x3f0]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x400], rax
lea rcx, [rsp + 0x8e]
call fcn.140043850
mov rcx, rax
call fcn.1400468c0
mov qword [rsp + 0x3f8], rax
mov rdx, qword [rsp + 0x3f8]
mov rcx, qword [rsp + 0x400]
call fcn.140055c30
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x410], rax
lea rcx, [rsp + 0x8f]
call fcn.140043ab0
mov rcx, rax
call fcn.140046830
mov qword [rsp + 0x408], rax
mov rdx, qword [rsp + 0x408]
mov rcx, qword [rsp + 0x410]
call fcn.140055c30
xor eax, eax
cmp eax, 1
je 0x14003f4cb
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x14003f459
mov byte [rsp + 0x61], 1
lea rcx, [rsp + 0x5a0]
call fcn.1400541f0
movzx eax, byte [rsp + 0x61]
jmp 0x14003f4e2
mov ecx, 0x4e
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x14003f4c6
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov qword [rsp + 0x420], rax
lea rcx, [rsp + 0x90]
call fcn.140043c20
mov rcx, rax
call fcn.1400467a0
mov qword [rsp + 0x418], rax
mov rdx, qword [rsp + 0x418]
mov rcx, qword [rsp + 0x420]
call fcn.140055c30
mov byte [rsp + 0x62], 0
lea rcx, [rsp + 0x5a0]
call fcn.1400541f0
movzx eax, byte [rsp + 0x62]
jmp 0x14003f4e2
jmp 0x14003f41f
mov byte [rsp + 0x63], 0
lea rcx, [rsp + 0x5a0]
call fcn.1400541f0
movzx eax, byte [rsp + 0x63]
mov rcx, qword [rsp + 0x6d0]
xor rcx, rsp
call fcn.14005c1a0
add rsp, 0x6e0
pop rdi
ret