Function at 0x1005e84e0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov r13, qword [rcx]
mov dword [rsp + 0x98], 0
movzx eax, byte [r13]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0xa0], 0
mov dword [rsp + 0x9c], 0
mov qword [rsp + 0xa8], 0
mov byte [rsp + 0x68], al
cmp al, 0x2d
jne 0x1005e91db
mov dword [rsp + 0x40], 0xb
lea rsi, str.bang
lea rbp, [0x1006d9d11]
mov qword [rsp + 0x38], 0xffffffffffffffff
lea r14, str.register
jmp 0x1005e8587
or qword [rsp + 0xa0], 2
mov rcx, r12
call sym.vim.exe_skipwhite
mov r13, rax
movzx eax, byte [rax]
cmp al, 0x2d
jne 0x1005e8718
lea rdi, [r13 + 1]
mov rcx, rdi
call sym.vim.exe_skiptowhite
mov rbx, rax
mov r12, rax
sub rbx, rdi
mov r15, rbx
je 0x1005e85d0
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1005e8568
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
jne 0x1005e8600
or dword [rsp + 0x98], 1
jmp 0x1005e8571
mov rcx, qword [sym.vim.exe_e_no_attribute_specified]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
nop
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
jne 0x1005e8628
or qword [rsp + 0xa0], 0x200
jmp 0x1005e8571
mov r8, rbx
lea rdx, str.keepscript
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1005e8700
mov r8, rbx
lea rdx, [0x1006d9d2c]
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1005e89c3
lea edx, [rbx - 1]
xor r8d, r8d
test ebx, ebx
jg 0x1005e8680
jmp 0x1005e9115
lea rax, [r8 + 1]
cmp rdx, r8
je 0x1005e9115
mov r8, rax
cmp byte [r13 + r8 + 1], 0x3d
jne 0x1005e8670
sub rbx, 1
lea rdx, str.nargs
mov rcx, rdi
mov qword [rsp + 0x48], r8
sub rbx, r8
lea r13, [rdi + r8 + 1]
call sub.msys_2.0.dll_strncasecmp
mov r8, qword [rsp + 0x48]
test eax, eax
jne 0x1005e9325
cmp rbx, 1
jne 0x1005e930c
movzx eax, byte [r13]
cmp al, 0x30
je 0x1005e8571
cmp al, 0x31
je 0x1005e9415
cmp al, 0x2a
je 0x1005e954f
cmp al, 0x3f
je 0x1005e9580
cmp al, 0x2b
jne 0x1005e930c
or qword [rsp + 0xa0], 0x84
jmp 0x1005e8571
or qword [rsp + 0xa0], 0x4000000
jmp 0x1005e8571
mov rsi, qword [rsp + 0x110]
mov rcx, qword [rsi]
and eax, 0xffffffdf
mov r12, r13
sub eax, 0x41
cmp al, 0x19
jbe 0x1005e89a4
mov rdx, r12
call sym.vim.exe_ends_excmd2
test eax, eax
jne 0x1005e8751
movzx eax, byte [r12]
cmp al, 0x20
je 0x1005e8751
cmp al, 9
jne 0x1005e8e9c
mov rax, r12
mov rcx, r12
sub rax, r13
mov qword [rsp + 0x50], rax
call sym.vim.exe_skipwhite
cmp byte [rsp + 0x68], 0x2d
mov r14, rax
je 0x1005e8789
mov rdx, rax
mov rax, qword [rsp + 0x110]
mov rcx, qword [rax]
call sym.vim.exe_ends_excmd2
test eax, eax
jne 0x1005e8a1b
movzx eax, byte [r13]
mov edx, eax
sub eax, 0x41
cmp eax, 0x19
ja 0x1005e90fc
cmp dword [rsp + 0x50], 1
je 0x1005e89d4
cmp dword [rsp + 0x50], 4
jle 0x1005e89d9
mov rax, qword [rsp + 0xa0]
mov r12d, dword [rsp + 0x9c]
mov qword [rsp + 0x58], rax
test r12d, r12d
jle 0x1005e87d4
test al, 4
je 0x1005e92e6
mov rcx, qword [rsp + 0x110]
mov rdx, r14
lea r9, [rsp + 0x98]
lea r8, [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
call sym.vim.exe_may_get_cmd_block
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0xb8]
mov qword [rsp + 0xb8], 0
mov r14, rax
mov rax, qword [rsp + 0x110]
mov rcx, r14
mov eax, dword [rax + 0x3c]
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x48], eax
call sym.vim.exe_replace_termcodes
cmp qword [rsp + 0xb8], 0
je 0x1005e93b2
lea rbp, [0x10069b850]
test byte [rsp + 0x48], 1
je 0x1005e888a
mov rax, qword [sym.vim.exe_curbuf]
mov rax, qword [rax]
mov r9d, dword [rax + 0x11e0]
lea rbp, [rax + 0x11d8]
test r9d, r9d
je 0x1005e9250
mov edi, dword [rbp]
test edi, edi
jle 0x1005e958e
mov r14, qword [rbp + 0x10]
mov r15, qword [rsp + 0x50]
mov dword [rsp + 0x68], r12d
xor ebx, ebx
nop dword [rax]
mov r12, qword [r14]
mov r8, r15
mov rcx, r13
mov rsi, r14
mov rdx, r12
call sub.msys_2.0.dll_strncmp
test eax, eax
jne 0x1005e8f10
mov rcx, r12
call sub.msys_2.0.dll_strlen
cmp r15, rax
jb 0x1005e8f28
ja 0x1005e8f12
mov r8d, dword [rsp + 0x6c]
mov r12d, dword [rsp + 0x68]
mov rbx, qword [sym.vim.exe_current_sctx]
test r8d, r8d
je 0x1005e9268
mov rcx, qword [r14 + 0x10]
test rcx, rcx
je 0x1005e890b
call sym.vim.exe_vim_free
mov qword [r14 + 0x10], 0
mov rcx, qword [r14 + 0x48]
test rcx, rcx
je 0x1005e8921
call sym.vim.exe_vim_free
mov qword [r14 + 0x48], 0
mov rax, qword [rsp + 0xb8]
movdqu xmm1, xmmword [rbx]
mov dword [rsi + 0x20], r12d
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x58]
movups xmmword [rsi + 0x28], xmm1
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x18], rax
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x38], rax
mov eax, dword [rsp + 0x48]
and eax, 2
je 0x1005e8963
mov dword [rsi + 0x38], 0xf423f
mov rdx, qword [sym.vim.exe_exestack]
mov dword [rsi + 0x40], eax
movsxd rcx, dword [rdx]
lea rax, [rcx*8]
sub rax, rcx
mov rcx, qword [rdx + 0x10]
lea rax, [rcx + rax*8]
mov rax, qword [rax - 0x38]
add qword [rsi + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsi + 0x48], rax
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0x24], eax
jmp 0x1005e8f5a
add r12, 1
movzx eax, byte [r12]
mov edx, eax
and edx, 0xffffffdf
sub edx, 0x41
cmp dl, 0x19
jbe 0x1005e89a0
sub eax, 0x30
cmp eax, 9
jbe 0x1005e89a0
jmp 0x1005e8734
or qword [rsp + 0xa0], 0x100
jmp 0x1005e8571
cmp dl, 0x58
je 0x1005e8a02
movsxd rax, dword [rsp + 0x50]
mov r8d, 5
lea rdx, str.Next
mov rcx, r13
cmp rax, r8
cmovbe r8, rax
call sub.msys_2.0.dll_strncmp
test eax, eax
jne 0x1005e87b2
mov rcx, qword [sym.vim.exe_e_reserved_name_cannot_be_used_for_user_defined_command]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
call sym.vim.exe_prevwin_curwin
mov qword [rsp + 0x38], r13
xor r12d, r12d
mov rax, qword [rax + 8]
lea rbp, [rax + 0x11d8]
nop dword [rax + rax]
mov r10d, dword [rbp]
test r10d, r10d
jle 0x1005e8e80
mov rsi, qword [sym.vim.exe_IObuff]
mov r14, qword [rsp + 0x50]
xor edi, edi
jmp 0x1005e8a65
add rdi, 1
cmp dword [rbp], edi
jle 0x1005e8e80
lea rbx, [rdi + rdi*4]
mov rcx, qword [rsp + 0x38]
mov r8, r14
mov dword [rsp + 0x68], edi
shl rbx, 4
add rbx, qword [rbp + 0x10]
mov r15, qword [rbx]
mov r13, qword [rbx + 8]
mov rdx, r15
call sub.msys_2.0.dll_strncmp
test eax, eax
jne 0x1005e8a58
mov rcx, r15
call sym.vim.exe_message_filtered
test eax, eax
jne 0x1005e8a58
test r12d, r12d
je 0x1005e8f70
mov ecx, 0xa
call sym.vim.exe_msg_putchar
mov rax, qword [sym.vim.exe_got_int]
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x1005e90cb
mov r12d, 3
mov r15d, 4
test r13b, 2
jne 0x1005e8fb0
test r13d, 0x200
jne 0x1005e8f90
lea rax, [0x10069b850]
cmp rbp, rax
je 0x1005e8ee0
mov ecx, 0x62
call sym.vim.exe_msg_putchar
lea eax, [r12 - 1]
test r13d, 0x100
jne 0x1005e9010
mov r12d, eax
nop word cs:[rax + rax]
mov ecx, 0x20
call sym.vim.exe_msg_putchar
mov eax, r12d
sub r12d, 1
test eax, eax
jg 0x1005e8b20
mov rax, qword [sym.vim.exe_highlight_attr]
mov rcx, qword [rbx]
mov edx, dword [rax + 0xc]
call sym.vim.exe_msg_outtrans_attr
mov rcx, qword [rbx]
call sub.msys_2.0.dll_strlen
mov r12, rax
lea eax, [rax + 4]
mov dword [rsp + 0x48], eax
mov r15d, eax
nop dword [rax]
mov ecx, 0x20
add r15d, 1
call sym.vim.exe_msg_putchar
cmp r15d, 0x15
jle 0x1005e8b60
mov eax, 0x11
xor edx, edx
mov ecx, dword [rsp + 0x48]
sub eax, r12d
cmp r12d, 0x11
cmovg eax, edx
mov rdx, qword [rsi]
lea r15d, [rcx + rax - 0x15]
mov eax, r13d
and eax, 0x94
cmp eax, 0x14
je 0x1005e9070
jg 0x1005e8eb8
test eax, eax
je 0x1005e9058
cmp eax, 4
jne 0x1005e9595
mov byte [rdx], 0x2a
mov r8d, 1
mov ecx, 5
movsxd rax, r8d
sub ecx, r15d
nop dword [rax]
mov rdx, qword [rsi]
mov byte [rdx + rax], 0x20
add rax, 1
cmp ecx, eax
jg 0x1005e8bd0
mov eax, 4
xor edx, edx
mov r10, qword [rsi]
sub eax, r15d
sub eax, r8d
cmp r8d, ecx
cmovge eax, edx
lea ecx, [r8 + rax]
lea r12d, [r8 + rax + 1]
test r13d, 0x401
je 0x1005e8c30
movsxd r9, r12d
add r10, r9
test r13d, 0x400
jne 0x1005e9090
and r13d, 0x20
je 0x1005e9030
mov byte [r10], 0x25
mov r10, qword [rsi]
lea r12d, [rcx + 2]
nop
mov ecx, 8
movsxd rax, r12d
sub ecx, r15d
jmp 0x1005e8c43
mov r10, qword [rsi]
mov byte [r10 + rax], 0x20
add rax, 1
cmp ecx, eax
jg 0x1005e8c40
mov eax, 7
xor edx, edx
sub eax, r15d
sub eax, r12d
cmp r12d, ecx
cmovge eax, edx
lea rdx, [0x1006da118]
xor ecx, ecx
lea r12d, [r12 + rax + 1]
mov eax, 2
nop word cs:[rax + rax]
test eax, eax
je 0x1005e8c8d
cmp eax, dword [rbx + 0x24]
je 0x1005e8fd0
mov eax, dword [rdx]
add rdx, 0x18
add ecx, 1
cmp eax, 0xb
jne 0x1005e8c80
mov rdx, qword [rsi]
mov ecx, 0xd
movsxd rax, r12d
xor r8d, r8d
sub ecx, r15d
jmp 0x1005e8cb3
mov rdx, qword [rsi]
mov byte [rdx + rax], 0x20
add rax, 1
lea edx, [r8 + rax]
cmp ecx, edx
jg 0x1005e8cb0
mov eax, 0xc
xor edx, edx
mov r8d, dword [rbx + 0x20]
sub eax, r15d
sub eax, r12d
cmp r12d, ecx
cmovge eax, edx
lea rdx, [0x1006da330]
xor ecx, ecx
lea r13d, [r12 + rax + 1]
mov eax, 0x30
jmp 0x1005e8d01
mov eax, dword [rdx]
add rdx, 0x10
add ecx, 1
test eax, eax
je 0x1005e8f00
cmp r8d, eax
jne 0x1005e8cf0
mov r8, qword [rsi]
movsxd rcx, ecx
movsxd r12, r13d
lea rax, [0x1006da320]
shl rcx, 4
add r8, r12
mov rdx, qword [rax + rcx + 8]
mov rcx, r8
call sub.msys_2.0.dll_strcpy
mov rdx, qword [rsi]
lea rcx, [rdx + r12]
mov qword [rsp + 0x48], rdx
call sub.msys_2.0.dll_strlen
mov r12, qword [sym.vim.exe_p_verbose]
mov rdx, qword [rsp + 0x48]
add r13d, eax
cmp qword [r12], 0
jle 0x1005e8db0
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x1005e8db0
call sub.msys_2.0.dll_strlen
mov rdx, qword [rsp + 0x48]
cmp rax, 0xc7
ja 0x1005e8db0
movsxd r8, r13d
mov byte [rdx + r8], 0x2c
mov rax, qword [rsi]
mov rdx, qword [rbx + 0x48]
mov qword [rsp + 0x48], r8
lea rcx, [rax + r8 + 1]
call sub.msys_2.0.dll_strcpy
mov rdx, qword [rsi]
mov r8, qword [rsp + 0x48]
lea rcx, [rdx + r8]
mov qword [rsp + 0x48], rdx
call sub.msys_2.0.dll_strlen
mov rdx, qword [rsp + 0x48]
add r13d, eax
nop dword [rax + rax]
mov ecx, 0x19
movsxd rax, r13d
xor r8d, r8d
sub ecx, r15d
jmp 0x1005e8dc3
mov rdx, qword [rsi]
mov byte [rdx + rax], 0x20
add rax, 1
lea edx, [r8 + rax]
cmp edx, ecx
jl 0x1005e8dc0
mov eax, 0x18
xor edx, edx
sub eax, r15d
sub eax, r13d
cmp r13d, ecx
cmovge eax, edx
mov rdx, qword [rsi]
lea eax, [r13 + rax + 1]
cdqe
mov byte [rdx + rax], 0
mov rcx, qword [rsi]
call sym.vim.exe_msg_outtrans
test r14, r14
jne 0x1005e8e12
mov rax, qword [sym.vim.exe_Columns]
mov rax, qword [rax]
sub eax, 0x2f
mov dword [rsp + 0x40], eax
mov rcx, qword [rbx + 0x10]
mov r8d, dword [rsp + 0x40]
xor edx, edx
call sym.vim.exe_msg_outtrans_special
cmp qword [r12], 0
jle 0x1005e8e49
movdqu xmm0, xmmword [rbx + 0x28]
lea rcx, [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x80], rax
call sym.vim.exe_last_set_msg
call sym.vim.exe_out_flush
call sym.vim.exe_ui_breakcheck
mov rax, qword [sym.vim.exe_got_int]
mov eax, dword [rax]
test eax, eax
jne 0x1005e90cb
mov r12d, 1
add rdi, 1
cmp dword [rbp], edi
jg 0x1005e8a65
nop word [rax + rax]
lea rax, [0x10069b850]
cmp rbp, rax
je 0x1005e9390
lea rbp, [0x10069b850]
jmp 0x1005e8a38
mov rcx, qword [sym.vim.exe_e_invalid_command_name]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
cmp eax, 0x84
je 0x1005e9080
cmp eax, 0x94
jne 0x1005e9595
mov byte [rdx], 0x31
mov r8d, 1
jmp 0x1005e8bc2
test r13d, 0x100
je 0x1005e8b20
mov ecx, 0x7c
call sym.vim.exe_msg_putchar
lea r12d, [r15 - 2]
jmp 0x1005e8b20
mov rdx, qword [rsi]
mov r12, qword [sym.vim.exe_p_verbose]
jmp 0x1005e8db0
js 0x1005e8f28
add ebx, 1
add r14, 0x50
cmp edi, ebx
jne 0x1005e88a8
nop dword [rax]
mov r12d, dword [rsp + 0x68]
mov edx, 1
mov rcx, rbp
call sym.vim.exe_ga_grow
cmp eax, 1
je 0x1005e9290
mov rcx, qword [rsp + 0xb8]
call sym.vim.exe_vim_free
mov rcx, qword [rsp + 0x60]
call sym.vim.exe_vim_free
mov rcx, qword [rsp + 0xb0]
call sym.vim.exe_vim_free
jmp 0x1005e85e5
lea rcx, str._n____Name______________Args_Address_Complete____Definition
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts_title
jmp 0x1005e8aa5
mov ecx, 0x22
mov r15d, r12d
sub r12d, 1
call sym.vim.exe_msg_putchar
jmp 0x1005e8ae7
mov ecx, 0x21
mov r12d, 2
mov r15d, 3
call sym.vim.exe_msg_putchar
jmp 0x1005e8ada
movsxd rcx, ecx
lea rax, [0x1006da100]
movsxd r13, r12d
lea rdx, [rcx + rcx*2]
mov rcx, qword [rsi]
mov rdx, qword [rax + rdx*8 + 0x10]
add rcx, r13
call sub.msys_2.0.dll_strcpy
mov rdx, qword [rsi]
lea rcx, [rdx + r13]
mov qword [rsp + 0x48], rdx
call sub.msys_2.0.dll_strlen
mov rdx, qword [rsp + 0x48]
add r12d, eax
jmp 0x1005e8c9e
mov ecx, 0x7c
call sym.vim.exe_msg_putchar
cmp r12d, 1
je 0x1005e8b35
mov r15d, r12d
jmp 0x1005e8ef7
mov r8, qword [rbx + 0x18]
mov qword [rsp + 0x48], r9
test r8, r8
jns 0x1005e90f3
mov byte [r10], 0x2e
lea r12d, [rcx + 2]
mov r10, qword [rsi]
jmp 0x1005e8c30
mov byte [rdx], 0x30
mov r8d, 1
jmp 0x1005e8bc2
mov byte [rdx], 0x3f
mov r8d, 1
jmp 0x1005e8bc2
mov byte [rdx], 0x2b
mov r8d, 1
jmp 0x1005e8bc2
mov qword [rsp + 0x48], r9
mov r8, qword [rbx + 0x18]
lea rdx, str._ldc
mov rcx, r10
call sub.msys_2.0.dll_sprintf
mov r10, qword [rsi]
mov r9, qword [rsp + 0x48]
lea rcx, [r10 + r9]
mov qword [rsp + 0x48], r10
call sub.msys_2.0.dll_strlen
mov r10, qword [rsp + 0x48]
add r12d, eax
jmp 0x1005e8c30
lea rax, [0x10069b850]
cmp rbp, rax
je 0x1005e85e5
mov eax, dword [rsp + 0x68]
cmp eax, dword [rbp]
jl 0x1005e85e5
mov r12d, 1
jmp 0x1005e8e90
lea rdx, [0x1006d9d90]
jmp 0x1005e90a0
mov rcx, qword [sym.vim.exe_e_user_defined_commands_must_start_with_an_uppercase_letter]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
mov r8, rbx
lea rdx, str.nargs
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1005e930c
mov r8, rbx
lea rdx, [0x1006d9d30]
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1005e9426
xor r13d, r13d
xor ebx, ebx
mov r8, r15
lea rdx, [0x1006d9d36]
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
jne 0x1005e91f9
mov edi, dword [rsp + 0x40]
mov eax, 0xa
or qword [rsp + 0xa0], 0x1401
cmp edi, 0xb
cmovne eax, edi
mov dword [rsp + 0x40], eax
test r13, r13
je 0x1005e91c3
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0xb8], r13
jns 0x1005e9377
lea rcx, [rsp + 0xb8]
add rbx, r13
call sym.vim.exe_getdigits
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0xb8], rbx
jne 0x1005e9461
mov rdi, qword [rsp + 0x38]
xor eax, eax
test rdi, rdi
cmovns rax, rdi
mov qword [rsp + 0x38], rax
jmp 0x1005e8571
mov dword [rsp + 0x40], 0xb
movzx eax, byte [rsp + 0x68]
mov rcx, r13
mov qword [rsp + 0x38], 0xffffffffffffffff
jmp 0x1005e8723
mov r8, r15
lea rdx, str.complete
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
jne 0x1005e947a
test r13, r13
je 0x10067b99c
lea rax, [rsp + 0xa8]
lea r9, [rsp + 0xa0]
mov edx, ebx
mov rcx, r13
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x9c]
call sym.vim.exe_parse_compl_arg
test eax, eax
jne 0x1005e8571
jmp 0x1005e85e5
mov r8d, 4
mov edx, 0x50
mov rcx, rbp
call sym.vim.exe_ga_init2
jmp 0x1005e888a
mov eax, dword [rbx]
cmp dword [r14 + 0x28], eax
jne 0x10067b97f
mov eax, dword [rbx + 4]
cmp dword [r14 + 0x2c], eax
jne 0x1005e88f5
jmp 0x10067b97f
mov rdx, qword [rsp + 0x50]
mov rcx, r13
call sym.vim.exe_vim_strnsave
mov rdi, rax
test rax, rax
je 0x1005e8f43
movsxd rax, ebx
lea rsi, [rax + rax*4]
mov eax, dword [rbp]
shl rsi, 4
add rsi, qword [rbp + 0x10]
sub eax, ebx
lea rcx, [rsi + 0x50]
mov rdx, rsi
cdqe
lea r8, [rax + rax*4]
shl r8, 4
call sub.msys_2.0.dll_memmove
add dword [rbp], 1
mov rbx, qword [sym.vim.exe_current_sctx]
mov qword [rsi], rdi
jmp 0x1005e8921
call sym.vim.exe_in_vim9script
mov rcx, qword [sym.vim.exe_e_complete_used_without_allowing_arguments]
test eax, eax
je 0x1005e93f8
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
mov rcx, qword [sym.vim.exe_e_invalid_number_of_arguments]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
lea rdx, [0x1006d9d30]
mov rcx, rdi
mov qword [rsp + 0x48], r8
call sub.msys_2.0.dll_strncasecmp
mov r8, qword [rsp + 0x48]
test eax, eax
jne 0x1005e959d
mov rdi, qword [rsp + 0xa0]
mov rax, rdi
or rax, 1
mov qword [rsp + 0xa0], rax
cmp rbx, 1
je 0x1005e93d0
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0xb8], r13
js 0x1005e9431
mov rcx, qword [sym.vim.exe_e_count_cannot_be_specified_twice]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
test r12d, r12d
jne 0x1005e85e5
lea rcx, str.No_user_defined_commands_found
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg
jmp 0x1005e85e5
mov rcx, r14
call sym.vim.exe_vim_strsave
mov qword [rsp + 0xb8], rax
test rax, rax
jne 0x1005e885b
jmp 0x1005e8f5a
cmp byte [r13], 0x25
jne 0x1005e9363
or rdi, 0x21
mov qword [rsp + 0xa0], rdi
mov edi, dword [rsp + 0x40]
xor eax, eax
cmp edi, 0xb
cmovne eax, edi
mov dword [rsp + 0x40], eax
jmp 0x1005e8571
call sub.msys_intl_8.dll_libintl_gettext
mov r8d, 1
mov edx, 1
mov rcx, rax
call sym.vim.exe_give_warning_with_source
jmp 0x1005e85e5
or qword [rsp + 0xa0], 0x94
jmp 0x1005e8571
or qword [rsp + 0xa0], 1
jmp 0x1005e93e3
lea rcx, [rsp + 0xb8]
or rdi, 0x1001
call sym.vim.exe_getdigits
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0xb8], r12
jne 0x1005e9461
test rbx, rbx
jne 0x1005e93e3
mov rcx, qword [sym.vim.exe_e_invalid_default_value_for_count]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1005e85e5
mov r8, r15
lea rdx, str.addr
mov rcx, rdi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
jne 0x10067b9bd
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x50], rax
or rax, 1
mov qword [rsp + 0xa0], rax
test r13, r13
je 0x10067b9e7
movsxd rax, ebx
mov edi, 9
lea r15, str.arguments
mov dword [rsp + 0x48], ebx
mov ecx, 2
lea rbx, [0x1006da118]
mov qword [rsp + 0x58], r12
mov rdx, r15
mov r12, rdi
mov r15, rbx
mov rdi, rax
mov ebx, ecx
jmp 0x1005e950f
mov ebx, dword [r15]
add r15, 0x18
cmp ebx, 0xb
je 0x1005e955d
mov rdx, qword [r15 - 0x10]
mov rcx, rdx
mov qword [rsp + 0x40], rdx
call sub.msys_2.0.dll_strlen
mov rdx, qword [rsp + 0x40]
mov r12, rax
mov r8, rdi
mov rcx, r13
call sub.msys_2.0.dll_strncmp
cmp dword [rsp + 0x48], r12d
jne 0x1005e94ea
test eax, eax
jne 0x1005e94ea
mov dword [rsp + 0x40], ebx
mov r12, qword [rsp + 0x58]
test ebx, ebx
je 0x1005e8571
mov rdi, qword [rsp + 0x50]
or rdi, 0x1001
mov qword [rsp + 0xa0], rdi
jmp 0x1005e8571
or qword [rsp + 0xa0], 4
jmp 0x1005e8571
mov rax, r13
jmp 0x1005e956f
add rax, 1
cmp dl, 9
je 0x10067b95f
movzx edx, byte [rax]
mov rcx, rax
test dl, 0xdf
jne 0x1005e9562
jmp 0x10067b95f
or qword [rsp + 0xa0], 0x14
jmp 0x1005e8571
xor ebx, ebx
jmp 0x1005e8f2d
xor r8d, r8d
jmp 0x1005e8bc2
mov r15, r8
jmp 0x1005e914e
mov byte [rcx], 0
mov rcx, qword [sym.vim.exe_e_invalid_address_type_value_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005e85e5
mov rcx, qword [sym.vim.exe_e_command_already_exists_add_bang_to_replace_it_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005e8f43
mov rcx, qword [sym.vim.exe_e_argument_required_for_str]
call sub.msys_intl_8.dll_libintl_gettext
lea rdx, str._complete
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005e85e5
movzx ebx, byte [r12]
mov byte [r12], 0
mov rcx, qword [sym.vim.exe_e_invalid_attribute_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, rdi
mov rcx, rax
call sym.vim.exe_semsg
mov byte [r12], bl
jmp 0x1005e85e5
mov rcx, qword [sym.vim.exe_e_argument_required_for_str]
call sub.msys_intl_8.dll_libintl_gettext
lea rdx, str._addr
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005e85e5