Function at 0x140013c70
Capabilities:
Check for time delay via gettickcount

Disassembly:
push rbp
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov ebp, dword [rsp + 0x78]
mov r12d, r9d
mov r15, rdx
mov rdi, rcx
test ebp, ebp
jne 0x140013cb4
lea r8, [0x14010d28c]
lea rdx, str.Invalid_usage.
lea rcx, [0x14014d8e0]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rbp
jmp fcn.1400508c0
mov qword [rsp + 0x50], rbx
lea r14, [0x14010d28c]
mov qword [rsp + 0x60], r13
mov r13, qword [rsp + 0x70]
mov rbx, qword [r13]
mov ecx, dword [rbx + 0x10]
test ecx, ecx
je 0x140013d02
sub ecx, 1
je 0x140013ce9
sub ecx, 1
je 0x140013ce9
sub ecx, 2
je 0x140013cee
cmp ecx, 1
je 0x140013d02
mov rbx, r14
jmp 0x140013d05
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001670
mov rbx, rax
jmp 0x140013d05
mov rbx, qword [rbx]
mov qword [rsp + 0x58], rsi
test r12b, 2
je 0x140013f18
lea rdx, str.Start
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140013d52
cmp dword [rdi + 0x10], 1
lea rcx, [rdi + 0x10]
je 0x140014485
cmp byte [rdi + 0x6d], al
jne 0x140013d46
mov rax, qword [rdi + 0x28]
xor ebx, ebx
mov dword [rdi + 0x30], ebx
mov word [rax], bx
xor edx, edx
call fcn.140057e00
jmp 0x140014832
lea rdx, str.Wait
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140013e9e
cmp ebp, 1
jle 0x140013e30
mov r8, qword [r13 + 8]
mov ecx, dword [r8 + 0x10]
cmp ecx, 3
je 0x140013e30
sub ecx, 1
je 0x140013e19
sub ecx, 1
je 0x140013e05
sub ecx, 2
je 0x140013dec
sub ecx, 1
je 0x140013db5
cmp ecx, 1
jne 0x140013dd5
xorps xmm0, xmm0
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
mov rax, qword [r8 + 8]
test rax, rax
je 0x140013dd5
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
mov rcx, qword [r8]
call fcn.140029270
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
mov rcx, qword [r8]
xor edx, edx
call fcn.140029510
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
movsd xmm0, qword [r8]
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r8]
mulsd xmm0, qword [0x1401315c8]
cvttsd2si rbx, xmm0
jmp 0x140013e35
mov ebx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rdi + 0x10], 1
mov esi, eax
jne 0x140013e64
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, ebx
jae 0x140013e64
mov edx, 1
mov ecx, 0x8000012f
call fcn.1400018c0
cmp dword [rdi + 0x10], 1
je 0x140013e43
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x1400141a4.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x14850]
add rax, rcx
jmp rax
lea rdx, str.Match
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, str.Stop
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140013eec
cmp dword [rdi + 0x10], 1
lea r8, [rdi + 0x10]
jne 0x140014485
movzx eax, byte [0x14014b24a]
xor ebx, ebx
mov rcx, qword [0x14014a3e0]
xor r9d, r9d
mov edx, 0x41b
mov byte [r8 + 0x6e], al
mov dword [r8], ebx
call qword [sym.imp.USER32.dll_PostMessageW]
lea eax, [rbx + 1]
jmp 0x140014832
lea rdx, str.KeyOpt
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001482d
lea r9d, [rbp - 1]
mov rcx, rdi
lea r8, [r13 + 8]
call fcn.140014890
jmp 0x140014832
mov esi, r12d
and esi, 1
lea eax, [rsi + 1]
cmp ebp, eax
je 0x140013f40
mov r8, r14
lea rdx, str.Invalid_usage.
lea rcx, [0x14014d8e0]
call fcn.1400508c0
jmp 0x140014832
test esi, esi
je 0x1400140b0
lea rdx, str.Input
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014371
mov r9, qword [r13 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x140013f95
sub ecx, 1
je 0x140013f7f
sub ecx, 1
je 0x140013f7f
sub ecx, 2
je 0x140013f84
cmp ecx, 1
je 0x140013f95
mov rax, r14
jmp 0x140013f98
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001670
jmp 0x140013f98
mov rax, qword [r9]
mov rsi, 0xffffffffffffffff
mov rcx, rsi
inc rcx
cmp word [rax + rcx*2], 0
jne 0x140013fa2
movsxd rax, dword [rdi + 0x34]
cmp rcx, rax
jbe 0x140013fd0
mov r8, r14
lea rdx, str.Out_of_memory.
lea rcx, [0x14014d8e0]
call fcn.1400508c0
jmp 0x140014832
mov r9, qword [r13 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x140013ff0
sub ecx, 1
je 0x140013ff3
sub ecx, 1
je 0x140013ff3
sub ecx, 2
je 0x14001405d
cmp ecx, 1
jne 0x140013ff3
mov r14, qword [r9]
mov rcx, qword [rdi + 0x28]
nop word [rax + rax]
movzx eax, word [r14]
lea r14, [r14 + 2]
mov word [rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x140014000
xor ebx, ebx
mov rax, rsi
mov dword [r15 + 0x10], ebx
mov rbp, qword [rdi + 0x28]
inc rax
cmp word [rbp + rax*2], bx
jne 0x140014021
mov dword [rdi + 0x30], eax
movsxd rdi, eax
cmp rdi, rsi
jne 0x14001404a
mov rdi, rsi
nop dword [rax]
inc rdi
cmp word [rbp + rdi*2], bx
jne 0x140014040
lea rsi, [rdi + rdi]
cmp rdi, 0xff
ja 0x140014071
mov rax, qword [r15 + 8]
jmp 0x140014087
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001670
mov r14, rax
jmp 0x140013ff3
lea rcx, [rsi + 2]
call fcn.1400e5e30
mov qword [r15 + 0x18], rax
test rax, rax
je 0x1400140a9
mov qword [r15 + 8], rdi
mov qword [r15], rax
test rbp, rbp
je 0x1400140a0
mov r8, rsi
mov rdx, rbp
mov rcx, rax
call fcn.1400e1c80
mov rax, qword [r15]
mov word [rax + rsi], bx
mov ebx, 1
mov eax, ebx
jmp 0x140014832
test r12b, 3
jne 0x140014371
lea rdx, str.Input
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001413c
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rsi, dword [rdi + 0x30]
mov rdi, qword [rdi + 0x28]
cmp rsi, 0xffffffffffffffff
jne 0x1400140ea
inc rsi
cmp word [rdi + rsi*2], bx
jne 0x1400140e1
lea rbp, [rsi + rsi]
cmp rsi, 0xff
ja 0x1400140fd
mov rax, qword [r15 + 8]
jmp 0x140014113
lea rcx, [rbp + 2]
call fcn.1400e5e30
mov qword [r15 + 0x18], rax
test rax, rax
je 0x140014135
mov qword [r15 + 8], rsi
mov qword [r15], rax
test rdi, rdi
je 0x14001412c
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call fcn.1400e1c80
mov rax, qword [r15]
mov word [rax + rbp], bx
mov ebx, 1
mov eax, ebx
jmp 0x140014832
lea rdx, str.InProgress
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001416d
xor ebx, ebx
mov dword [r15 + 0x10], 1
cmp dword [rdi + 0x10], 1
mov eax, 1
sete bl
mov qword [r15], rbx
jmp 0x140014832
lea rdx, str.EndReason
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001421c
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x1400141a4.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1486c]
add rax, rcx
jmp rax
lea rdx, str.Timeout
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, str.EndKey
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, [0x140128a58]
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, str.NewInput
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, str.Stopped
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
mov rdx, r14
mov eax, 1
mov qword [r15], rdx
jmp 0x140014832
lea rdx, str.EndKey
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014268
xor ebx, ebx
lea rcx, [rdi + 0x10]
mov dword [r15 + 0x10], ebx
cmp dword [rcx], 4
jne 0x14001425b
mov rdx, qword [r15 + 8]
xor r9d, r9d
mov r8d, 0x100
mov qword [r15], rdx
call fcn.140058750
lea eax, [rbx + 1]
jmp 0x140014832
mov qword [r15], r14
mov eax, 1
jmp 0x140014832
lea rdx, str.EndMods
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014330
mov rax, qword [r15 + 8]
xor ebx, ebx
mov dword [r15 + 0x10], ebx
mov qword [r15], rax
movzx ecx, byte [rdi + 0x7e]
test cl, 1
je 0x1400142a3
mov dword [rax], 0x5e003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 2
je 0x1400142b6
mov dword [rax], 0x5e003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 4
je 0x1400142c9
mov dword [rax], 0x21003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 8
je 0x1400142dc
mov dword [rax], 0x21003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x10
je 0x1400142ef
mov dword [rax], 0x2b003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x20
je 0x140014302
mov dword [rax], 0x2b003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x40
je 0x140014315
mov dword [rax], 0x23003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, cl
jns 0x140014323
mov dword [rax], 0x23003e
add rax, 4
mov word [rax], bx
mov eax, 1
jmp 0x140014832
lea rdx, str.Match
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014371
xor ebx, ebx
mov dword [r15 + 0x10], ebx
cmp dword [rdi + 0x10], 3
jne 0x140014364
mov eax, dword [rdi + 0x80]
cmp eax, dword [rdi + 0x50]
jae 0x140014364
mov ecx, eax
mov rax, qword [rdi + 0x48]
mov r14, qword [rax + rcx*8]
mov qword [r15], r14
mov eax, 1
jmp 0x140014832
mov r8d, 2
lea rdx, [0x140122964]
mov rcx, rbx
call fcn.1400e5e84
test eax, eax
jne 0x1400144ff
add rbx, 4
lea rdx, [0x14010f860]
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400143ad
mov r12d, 0x388
jmp 0x140014400
lea rdx, str.KeyDown
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400143c8
mov r12d, 0x390
jmp 0x140014400
lea rdx, str.KeyUp
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400143e3
mov r12d, 0x3a0
jmp 0x140014400
lea rdx, str.Char
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001482d
mov r12d, 0x398
test esi, esi
je 0x140014467
mov rcx, qword [r13 + 8]
xor ebx, ebx
mov eax, dword [rcx + 0x10]
cmp eax, 6
jne 0x140014417
mov rdx, rcx
jmp 0x140014443
cmp eax, 4
jne 0x1400144ab
mov rdx, qword [rcx]
movzx eax, byte [rdx + 0x23]
test al, al
jne 0x140014431
mov r8, qword [rdx + 0x10]
jmp 0x140014434
mov r8, rdx
test byte [r8 + 0x21], 2
je 0x14001448f
test al, al
jne 0x140014443
mov rdx, qword [rdx + 0x10]
mov rsi, qword [rdx]
test rsi, rsi
je 0x1400144ae
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
mov rcx, qword [r12 + rdi]
test rcx, rcx
je 0x140014463
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [r12 + rdi], rsi
mov rcx, qword [r12 + rdi]
test rcx, rcx
je 0x140014485
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [r12 + rdi]
mov qword [r15], rax
mov dword [r15 + 0x10], 6
mov eax, 1
jmp 0x140014832
test al, al
jne 0x140014499
mov rax, qword [rdx + 0x10]
jmp 0x14001449c
mov rax, rdx
test byte [rax + 0x21], 4
je 0x1400144ab
call fcn.140051510
mov rcx, qword [r13 + 8]
mov rsi, rbx
mov edx, dword [rcx + 0x10]
test edx, edx
je 0x1400144bf
sub edx, 4
je 0x1400144e7
cmp edx, 1
jne 0x1400144cc
mov rax, qword [rcx]
cmp word [rax], bx
sete bl
test ebx, ebx
jne 0x140014454
mov r8, r14
lea rdx, str.Invalid_value.
lea rcx, [0x14014d8e0]
call fcn.1400508c0
jmp 0x140014832
mov rax, qword [rcx]
cmp byte [rax + 0x23], bl
jne 0x1400144f3
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 0xa
jne 0x1400144c8
cmp qword [rax + 0x10], rbx
jmp 0x1400144c5
lea rdx, str.MinSendLevel
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014542
test esi, esi
je 0x140014526
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.140082a80
mov byte [rdi + 0x6c], al
jmp 0x14001452a
movzx eax, byte [rdi + 0x6c]
movzx eax, al
mov qword [r15], rax
mov eax, 1
mov dword [r15 + 0x10], 1
jmp 0x140014832
lea rdx, str.Timeout
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014650
test esi, esi
je 0x140014628
mov r8, qword [r13 + 8]
mov ecx, dword [r8 + 0x10]
sub ecx, 1
je 0x1400145b7
sub ecx, 1
je 0x1400145b0
sub ecx, 2
je 0x1400145a4
sub ecx, 1
je 0x140014587
cmp ecx, 1
jne 0x14001459a
xorps xmm0, xmm0
jmp 0x1400145bf
mov rax, qword [r8 + 8]
test rax, rax
je 0x14001459a
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x1400145bf
mov rcx, qword [r8]
call fcn.140029270
jmp 0x1400145bf
mov rcx, qword [r8]
xor edx, edx
call fcn.140029510
jmp 0x1400145bf
movsd xmm0, qword [r8]
jmp 0x1400145bf
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r8]
cmp dword [rdi + 0x10], 1
mulsd xmm0, qword [0x1401315c8]
cvttsd2si eax, xmm0
mov dword [rdi + 0x64], eax
jne 0x140014628
test eax, eax
jle 0x140014628
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [0x14014a230], 0
mov r8d, dword [rdi + 0x64]
lea edx, [rax + r8]
mov dword [rdi + 0x68], edx
je 0x1400145ff
mov ecx, dword [0x14014a234]
sub ecx, eax
cmp r8d, ecx
jge 0x140014628
mov rcx, qword [0x14014a3e0]
lea r9, [0x140005320]
mov dword [0x14014a234], edx
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call qword [sym.imp.USER32.dll_SetTimer]
test rax, rax
setne byte [0x14014a230]
movd xmm0, dword [rdi + 0x64]
mov eax, 1
cvtdq2pd xmm0, xmm0
mov dword [r15 + 0x10], 2
divsd xmm0, qword [0x1401315c8]
movsd qword [r15], xmm0
jmp 0x140014832
lea rdx, str.BackspaceIsUndo
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001466d
mov eax, 0x6e
jmp 0x1400146f1
lea rdx, str.CaseSensitive
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x140014687
mov eax, WSAStartup
jmp 0x1400146f1
lea rdx, str.FindAnywhere
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400146a1
mov eax, reloc.WSOCK32.dll_WSACleanup
jmp 0x1400146f1
lea rdx, str.VisibleText
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400146bb
mov eax, WSAStartup
jmp 0x1400146f1
lea rdx, str.VisibleNonText
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x1400146d5
mov eax, WSAStartup
jmp 0x1400146f1
lea rdx, str.NotifyNonText
mov rcx, rbx
call fcn.1400e5cc0
test eax, eax
jne 0x14001482d
mov eax, reloc.WSOCK32.dll_WSAStartup
add rdi, rax
je 0x14001482d
test esi, esi
je 0x140014815
mov rbx, qword [r13 + 8]
mov rcx, rbx
call fcn.1400827a0
sub eax, 1
je 0x1400147fe
mov ecx, dword [rbx + 0x10]
cmp eax, 1
je 0x140014794
cmp ecx, 6
je 0x140014788
cmp ecx, 4
jne 0x14001473c
mov rax, qword [rbx]
cmp byte [rax + 0x23], 0
jne 0x140014736
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 2
jne 0x140014788
test ecx, ecx
je 0x140014754
sub ecx, 1
je 0x140014757
sub ecx, 1
je 0x140014757
sub ecx, 2
je 0x140014767
cmp ecx, 1
jne 0x140014757
mov r14, qword [rbx]
xor ebx, ebx
cmp word [r14], bx
setne bl
mov byte [rdi], bl
jmp 0x140014818
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001670
xor ebx, ebx
mov r14, rax
cmp word [rax], bx
setne bl
mov byte [rdi], bl
jmp 0x140014818
mov ebx, 1
mov byte [rdi], bl
jmp 0x140014818
sub ecx, 1
je 0x1400147e5
sub ecx, 1
je 0x1400147df
sub ecx, 2
je 0x1400147cd
sub ecx, 1
je 0x1400147ba
cmp ecx, 1
je 0x1400147f8
mov rcx, qword [rbx]
call fcn.1400ef7ec
movaps xmm1, xmm0
jmp 0x1400147ed
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400147ad
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rax]
jmp 0x1400147ed
mov rcx, qword [rbx]
mov edx, 1
call fcn.140029510
movaps xmm1, xmm0
jmp 0x1400147ed
movsd xmm1, qword [rbx]
jmp 0x1400147ed
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbx]
xorps xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x140014788
jne 0x140014788
xor ebx, ebx
mov byte [rdi], bl
jmp 0x140014818
mov edx, 1
mov rcx, rbx
call fcn.140082a80
test rax, rax
setne bl
mov byte [rdi], bl
jmp 0x140014818
movzx ebx, byte [rdi]
movzx eax, bl
mov qword [r15], rax
mov eax, 1
mov dword [r15 + 0x10], 1
jmp 0x140014832
mov eax, 4
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret