Function at 0x1400015b0
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4540]
mov eax, 0x4640
call fcn.1400037e0
sub rsp, rax
movups xmm0, xmmword [str.left_mouse_button]
movzx eax, word [0x1400044c0]
mov rbx, rcx
xor edx, edx
mov word [rsp + 0x30], ax
mov r8d, 0xee
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x32]
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400044d8]
lea rcx, [rbp + 0x37]
movups xmm0, xmmword [str.right_mouse_button]
mov word [rbp + 0x34], ax
xor edx, edx
movzx eax, byte [0x1400044da]
mov r8d, 0xed
mov byte [rbp + 0x36], al
mov dword [rbp + 0x20], 1
movups xmmword [rbp + 0x24], xmm0
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400044dc]
lea rcx, [rbp + 0x12b]
mov word [rbp + 0x128], ax
xor edx, edx
movzx eax, byte [0x1400044de]
mov r8d, 0xfd
mov byte [rbp + 0x12a], al
mov dword [rbp + 0x124], 2
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400044e0]
lea rcx, [rbp + 0x22f]
mov word [rbp + 0x22c], ax
xor edx, edx
movzx eax, byte [0x1400044e2]
mov r8d, 0xfd
mov byte [rbp + 0x22e], al
mov dword [rbp + 0x228], 5
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_0]
lea rcx, [rbp + 0x336]
mov dword [rbp + 0x330], eax
xor edx, edx
movzx eax, word [0x1400044e8]
mov r8d, 0xfa
mov word [rbp + 0x334], ax
mov dword [rbp + 0x32c], 6
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_1]
lea rcx, [rbp + 0x43a]
mov dword [rbp + 0x434], eax
xor edx, edx
movzx eax, word [0x1400044f0]
mov r8d, 0xfa
mov word [rbp + 0x438], ax
mov dword [rbp + 0x430], 0x30
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_2]
lea rcx, [rbp + 0x53e]
mov dword [rbp + 0x538], eax
xor edx, edx
movzx eax, word [0x1400044f8]
mov r8d, 0xfa
mov word [rbp + 0x53c], ax
mov dword [rbp + 0x534], 0x31
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_3]
lea rcx, [rbp + 0x642]
mov dword [rbp + 0x63c], eax
xor edx, edx
movzx eax, word [0x140004500]
mov r8d, 0xfa
mov word [rbp + 0x640], ax
mov dword [rbp + 0x638], 0x32
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_4]
xor edx, edx
mov dword [rbp + 0x740], eax
mov r8d, 0xfa
movzx eax, word [0x140004508]
mov word [rbp + 0x744], ax
mov dword [rbp + 0x73c], 0x33
lea rcx, [rbp + 0x746]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_5]
lea rcx, [rbp + 0x84a]
mov dword [rbp + 0x844], eax
xor edx, edx
movzx eax, word [0x140004510]
mov r8d, 0xfa
mov word [rbp + 0x848], ax
mov dword [rbp + 0x840], 0x34
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_6]
lea rcx, [rbp + 0x94e]
mov dword [rbp + 0x948], eax
xor edx, edx
movzx eax, word [0x140004518]
mov r8d, 0xfa
mov word [rbp + 0x94c], ax
mov dword [rbp + 0x944], 0x35
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_7]
lea rcx, [rbp + 0xa52]
mov dword [rbp + 0xa4c], eax
xor edx, edx
movzx eax, word [0x140004520]
mov r8d, 0xfa
mov word [rbp + 0xa50], ax
mov dword [rbp + 0xa48], 0x36
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_8]
lea rcx, [rbp + 0xb56]
mov dword [rbp + 0xb50], eax
xor edx, edx
movzx eax, word [0x140004528]
mov r8d, 0xfa
mov word [rbp + 0xb54], ax
mov dword [rbp + 0xb4c], 0x37
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.num_9]
lea rcx, [rbp + 0xc5a]
mov dword [rbp + 0xc54], eax
xor edx, edx
movzx eax, word [0x140004530]
mov r8d, 0xfa
mov word [rbp + 0xc58], ax
mov dword [rbp + 0xc50], 0x38
call sub.VCRUNTIME140.dll_memset
mov eax, 0x61
mov dword [rbp + 0xd54], 0x39
xor edx, edx
mov word [rbp + 0xd58], ax
mov r8d, 0xfe
lea rcx, [rbp + 0xd5a]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x62
mov dword [rbp + 0xe58], 0x41
xor edx, edx
mov word [rbp + 0xe5c], ax
mov r8d, 0xfe
lea rcx, [rbp + 0xe5e]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x63
mov dword [rbp + 0xf5c], 0x42
xor edx, edx
mov word [rbp + 0xf60], ax
mov r8d, 0xfe
lea rcx, [rbp + 0xf62]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x64
mov dword [rbp + 0x1060], 0x43
xor edx, edx
mov word [rbp + 0x1064], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1066]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x65
mov dword [rbp + 0x1164], 0x44
mov word [rbp + 0x1168], ax
lea rcx, [rbp + 0x116a]
xor edx, edx
mov r8d, 0xfe
call sub.VCRUNTIME140.dll_memset
mov eax, 0x66
mov dword [rbp + 0x1268], 0x45
xor edx, edx
mov word [rbp + 0x126c], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x126e]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x67
mov dword [rbp + 0x136c], 0x46
xor edx, edx
mov word [rbp + 0x1370], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1372]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x68
mov dword [rbp + 0x1470], 0x47
xor edx, edx
mov word [rbp + 0x1474], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1476]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x69
mov dword [rbp + 0x1574], 0x48
xor edx, edx
mov word [rbp + 0x1578], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x157a]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6a
mov dword [rbp + 0x1678], 0x49
xor edx, edx
mov word [rbp + 0x167c], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x167e]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6b
mov dword [rbp + 0x177c], 0x4a
xor edx, edx
mov word [rbp + 0x1780], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1782]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6c
mov dword [rbp + 0x1880], 0x4b
xor edx, edx
mov word [rbp + 0x1884], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1886]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6d
mov dword [rbp + 0x1984], 0x4c
xor edx, edx
mov word [rbp + 0x1988], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x198a]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6e
mov dword [rbp + 0x1a88], 0x4d
xor edx, edx
mov word [rbp + 0x1a8c], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1a8e]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x6f
mov dword [rbp + 0x1b8c], 0x4e
xor edx, edx
mov word [rbp + 0x1b90], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x1b92]
call sub.VCRUNTIME140.dll_memset
mov edi, 0x70
mov dword [rbp + 0x1c90], 0x4f
xor edx, edx
mov word [rbp + 0x1c94], di
mov r8d, 0xfe
lea rcx, [rbp + 0x1c96]
call sub.VCRUNTIME140.dll_memset
mov esi, 0x71
mov dword [rbp + 0x1d94], 0x50
mov word [rbp + 0x1d98], si
xor edx, edx
lea rcx, [rbp + 0x1d9a]
mov r8d, 0xfe
call sub.VCRUNTIME140.dll_memset
mov r14d, 0x72
mov dword [rbp + 0x1e98], 0x51
xor edx, edx
mov word [rbp + 0x1e9c], r14w
mov r8d, 0xfe
lea rcx, [rbp + 0x1e9e]
call sub.VCRUNTIME140.dll_memset
mov r15d, 0x73
mov dword [rbp + 0x1f9c], 0x52
xor edx, edx
mov word [rbp + 0x1fa0], r15w
mov r8d, 0xfe
lea rcx, [rbp + 0x1fa2]
call sub.VCRUNTIME140.dll_memset
mov r12d, 0x74
mov dword [rbp + 0x20a0], 0x53
xor edx, edx
mov word [rbp + 0x20a4], r12w
mov r8d, 0xfe
lea rcx, [rbp + 0x20a6]
call sub.VCRUNTIME140.dll_memset
mov r13d, 0x75
mov dword [rbp + 0x21a4], 0x54
xor edx, edx
mov word [rbp + 0x21a8], r13w
mov r8d, 0xfe
lea rcx, [rbp + 0x21aa]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x76
mov dword [rbp + 0x22a8], 0x55
xor edx, edx
mov word [rbp + 0x22ac], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x22ae]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x77
mov dword [rbp + 0x23ac], 0x56
xor edx, edx
mov word [rbp + 0x23b0], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x23b2]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x78
mov dword [rbp + 0x24b0], 0x57
xor edx, edx
mov word [rbp + 0x24b4], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x24b6]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x79
mov dword [rbp + 0x25b4], 0x58
xor edx, edx
mov word [rbp + 0x25b8], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x25ba]
call sub.VCRUNTIME140.dll_memset
mov eax, 0x7a
mov dword [rbp + 0x26b8], 0x59
xor edx, edx
mov word [rbp + 0x26bc], ax
mov r8d, 0xfe
lea rcx, [rbp + 0x26be]
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.backspace]
lea rcx, [rbp + 0x27ca]
movzx eax, word [0x140004540]
xor edx, edx
mov r8d, 0xf6
movsd qword [rbp + 0x27c0], xmm0
mov word [rbp + 0x27c8], ax
mov dword [rbp + 0x27bc], 0x5a
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.down_arrow]
movzx eax, word [0x140004550]
movsd qword [rbp + 0x28c4], xmm0
mov word [rbp + 0x28cc], ax
mov dword [rbp + 0x28c0], 8
movzx eax, byte [0x140004552]
lea rcx, [rbp + 0x28cf]
xor edx, edx
mov byte [rbp + 0x28ce], al
mov r8d, 0xf5
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.enter]
lea rcx, [rbp + 0x29ce]
mov dword [rbp + 0x29c8], eax
xor edx, edx
movzx eax, word [0x140004558]
mov r8d, 0xfa
mov word [rbp + 0x29cc], ax
mov dword [rbp + 0x29c4], 0x28
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov dword [rbp + 0x2ac8], 0xd
mov r8d, 0xfc
mov dword [rbp + 0x2acc], 0x637365
lea rcx, [rbp + 0x2ad0]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.home]
lea rcx, [rbp + 0x2bd5]
mov dword [rbp + 0x2bd0], eax
xor edx, edx
movzx eax, byte [0x140004560]
mov r8d, 0xfb
mov byte [rbp + 0x2bd4], al
mov dword [rbp + 0x2bcc], 0x1b
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.insert]
lea rcx, [rbp + 0x2cdb]
mov dword [rbp + 0x2cd4], eax
xor edx, edx
movzx eax, word [0x140004568]
mov r8d, 0xf9
mov word [rbp + 0x2cd8], ax
movzx eax, byte [0x14000456a]
mov byte [rbp + 0x2cda], al
mov dword [rbp + 0x2cd0], 0x24
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.left_alt]
lea rcx, [rbp + 0x2de1]
movzx eax, byte [0x140004578]
xor edx, edx
mov r8d, 0xf7
movsd qword [rbp + 0x2dd8], xmm0
mov byte [rbp + 0x2de0], al
mov dword [rbp + 0x2dd4], 0x2d
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.left_ctrl]
lea rcx, [rbp + 0x2ee6]
movzx eax, word [0x140004588]
xor edx, edx
mov r8d, 0xf6
movsd qword [rbp + 0x2edc], xmm0
mov word [rbp + 0x2ee4], ax
mov dword [rbp + 0x2ed8], 0xa4
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004598]
lea rcx, [rbp + 0x2feb]
movsd xmm0, qword [str.left_shift]
xor edx, edx
mov word [rbp + 0x2fe8], ax
mov r8d, 0xf5
movzx eax, byte [0x14000459a]
mov byte [rbp + 0x2fea], al
mov dword [rbp + 0x2fdc], 0xa2
movsd qword [rbp + 0x2fe0], xmm0
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.page_down]
lea rcx, [rbp + 0x30ee]
movzx eax, word [0x1400045a8]
xor edx, edx
mov r8d, 0xf6
movsd qword [rbp + 0x30e4], xmm0
mov word [rbp + 0x30ec], ax
mov dword [rbp + 0x30e0], 0xa0
call sub.VCRUNTIME140.dll_memset
movabs rax, 0x70755f65676170
mov dword [rbp + 0x31e4], 0x22
xor edx, edx
mov qword [rbp + 0x31e8], rax
mov r8d, 0xf8
lea rcx, [rbp + 0x31f0]
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.right_alt]
lea rcx, [rbp + 0x32f6]
movzx eax, word [0x1400045b8]
xor edx, edx
mov r8d, 0xf6
movsd qword [rbp + 0x32ec], xmm0
mov word [rbp + 0x32f4], ax
mov dword [rbp + 0x32e8], 0x21
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400045c8]
lea rcx, [rbp + 0x33fb]
movsd xmm0, qword [str.right_ctrl]
xor edx, edx
mov word [rbp + 0x33f8], ax
mov r8d, 0xf5
movzx eax, byte [0x1400045ca]
mov byte [rbp + 0x33fa], al
mov dword [rbp + 0x33ec], 0xa5
movsd qword [rbp + 0x33f0], xmm0
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.right_shift]
lea rcx, [rbp + 0x3500]
mov eax, dword [0x1400045d8]
xor edx, edx
mov r8d, 0xf4
movsd qword [rbp + 0x34f4], xmm0
mov dword [rbp + 0x34f0], 0xa3
mov dword [rbp + 0x34fc], eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [str.space]
lea rcx, [rbp + 0x35fe]
mov dword [rbp + 0x35f8], eax
xor edx, edx
movzx eax, word [0x1400045e0]
mov r8d, 0xfa
mov word [rbp + 0x35fc], ax
mov dword [rbp + 0x35f4], 0xa1
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov dword [rbp + 0x36f8], 0x20
mov r8d, 0xfc
mov dword [rbp + 0x36fc], 0x626174
lea rcx, [rbp + 0x3700]
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [str.up_arrow]
lea rcx, [rbp + 0x3809]
movzx eax, byte [0x1400045f0]
xor edx, edx
mov r8d, 0xf7
movsd qword [rbp + 0x3800], xmm0
mov byte [rbp + 0x3808], al
mov dword [rbp + 0x37fc], 9
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400045f4]
lea rcx, [rbp + 0x3907]
mov word [rbp + 0x3904], ax
xor edx, edx
movzx eax, byte [0x1400045f6]
mov r8d, 0xfd
mov byte [rbp + 0x3906], al
mov dword [rbp + 0x3900], 0x26
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400045f8]
lea rcx, [rbp + 0x3a0b]
mov word [rbp + 0x3a08], ax
xor edx, edx
movzx eax, byte [0x1400045fa]
mov r8d, 0xfd
mov byte [rbp + 0x3a0a], al
mov dword [rbp + 0x3a04], edi
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x1400045fc]
mov word [rbp + 0x3b0c], ax
movzx eax, byte [0x1400045fe]
mov byte [rbp + 0x3b0e], al
mov dword [rbp + 0x3b08], esi
xor edx, edx
lea rcx, [rbp + 0x3b0f]
mov r8d, 0xfd
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004600]
lea rcx, [rbp + 0x3c13]
mov word [rbp + 0x3c10], ax
xor edx, edx
movzx eax, byte [0x140004602]
mov r8d, 0xfd
mov byte [rbp + 0x3c12], al
mov dword [rbp + 0x3c0c], r14d
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004604]
lea rcx, [rbp + 0x3d17]
mov word [rbp + 0x3d14], ax
xor edx, edx
movzx eax, byte [0x140004606]
mov r8d, 0xfd
mov byte [rbp + 0x3d16], al
mov dword [rbp + 0x3d10], r15d
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004608]
lea rcx, [rbp + 0x3e1b]
mov word [rbp + 0x3e18], ax
xor edx, edx
movzx eax, byte [0x14000460a]
mov r8d, 0xfd
mov byte [rbp + 0x3e1a], al
mov dword [rbp + 0x3e14], r12d
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x14000460c]
lea rcx, [rbp + 0x3f1f]
mov word [rbp + 0x3f1c], ax
xor edx, edx
movzx eax, byte [0x14000460e]
mov r8d, 0xfd
mov byte [rbp + 0x3f1e], al
mov dword [rbp + 0x3f18], r13d
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004610]
lea rcx, [rbp + 0x4023]
mov word [rbp + 0x4020], ax
xor edx, edx
movzx eax, byte [0x140004612]
mov r8d, 0xfd
mov byte [rbp + 0x4022], al
mov dword [rbp + 0x401c], 0x76
call sub.VCRUNTIME140.dll_memset
movzx eax, word [0x140004614]
lea rcx, [rbp + 0x4127]
mov word [rbp + 0x4124], ax
xor edx, edx
movzx eax, byte [0x140004616]
mov r8d, 0xfd
mov byte [rbp + 0x4126], al
mov dword [rbp + 0x4120], 0x77
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov dword [rbp + 0x4224], 0x78
mov r8d, 0xfc
mov dword [rbp + 0x4228], 0x303166
lea rcx, [rbp + 0x422c]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov dword [rbp + 0x4328], 0x79
mov r8d, 0xfc
mov dword [rbp + 0x432c], 0x313166
lea rcx, [rbp + 0x4330]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov dword [rbp + 0x442c], 0x7a
mov r8d, 0xfc
mov dword [rbp + 0x4430], 0x323166
lea rcx, [rbp + 0x4434]
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov dword [rbp + 0x4530], 0x7b
nop dword [rax + rax]
movsxd rax, r9d
mov r8, rbx
imul r10, rax, 0x104
lea rax, [rsp + 0x20]
add rax, r10
sub r8, rax
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400023c3
inc rax
test ecx, ecx
jne 0x1400023b0
test edx, edx
je 0x1400023d7
inc r9d
cmp r9d, 0x45
jl 0x140002390
mov eax, 0xffffffff
jmp 0x1400023dc
mov eax, dword [rbp + r10 + 0x20]
lea r11, [rsp + 0x4640]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret