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

Disassembly:
push rbp
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov ebp, dword [rsp + 0x88]
mov r15d, r9d
mov r14, rdx
mov rdi, rcx
test ebp, ebp
jne 0x14001ae67
lea r8, [0x1400fb87c]
lea rdx, str.Invalid_usage.
lea rcx, [0x140136640]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rbp
jmp fcn.1400515e0
mov qword [rsp + 0x60], rbx
lea r12, [0x1400fb87c]
mov qword [rsp + 0x70], r13
mov r13, qword [rsp + 0x80]
mov rbx, qword [r13]
mov ecx, dword [rbx + 0x10]
test ecx, ecx
je 0x14001aeb8
sub ecx, 1
je 0x14001ae9f
sub ecx, 1
je 0x14001ae9f
sub ecx, 2
je 0x14001aea4
cmp ecx, 1
je 0x14001aeb8
mov rbx, r12
jmp 0x14001aebb
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rbx, rax
jmp 0x14001aebb
mov rbx, qword [rbx]
mov qword [rsp + 0x68], rsi
movaps xmmword [rsp + 0x20], xmm6
test r15b, 2
je 0x14001b125
lea rdx, str.Start
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001af08
cmp dword [rdi + 0x10], 1
lea rcx, [rdi + 0x10]
je 0x14001b9b0
mov rax, qword [rdi + 0x28]
xor ebx, ebx
mov dword [rdi + 0x30], ebx
xor edx, edx
mov word [rax], bx
call fcn.1400571e0
jmp 0x14001b9bc
lea rdx, str.Wait
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b0ab
cmp ebp, 1
jle 0x14001b03b
mov rdx, qword [r13 + 8]
mov ecx, dword [rdx + 0x10]
cmp ecx, 3
je 0x14001b03b
sub ecx, 1
je 0x14001b024
sub ecx, 1
je 0x14001b011
sub ecx, 2
je 0x14001afab
sub ecx, 1
je 0x14001af6e
cmp ecx, 1
jne 0x14001af91
xorps xmm0, xmm0
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
mov rax, qword [rdx + 8]
test rax, rax
je 0x14001af91
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
mov rcx, qword [rdx]
call fcn.140023cb0
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
mov rcx, qword [rdx]
cmp byte [rcx + 0x23], 0
jne 0x14001afb8
mov rcx, qword [rcx + 0x10]
movzx eax, byte [rcx + 0x21]
test al, 0x20
je 0x14001afd3
movsd xmm0, qword [rcx]
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
test al, 0x10
je 0x14001afee
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx]
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140023cb0
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
movsd xmm0, qword [rdx]
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rdx]
mulsd xmm0, qword [0x14011c6c0]
cvttsd2si rbx, xmm0
jmp 0x14001b040
mov ebx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rdi + 0x10], 1
mov esi, eax
jne 0x14001b071
nop
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, ebx
jae 0x14001b071
mov edx, 1
mov ecx, 0x80000539
call fcn.140001940
cmp dword [rdi + 0x10], 1
je 0x14001b050
xor ebx, ebx
mov dword [r14 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x14001b244.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1b9e0]
add rax, rcx
jmp rax
lea rdx, str.Match
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, str.Stop
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b0f9
cmp dword [rdi + 0x10], 1
lea r8, [rdi + 0x10]
jne 0x14001b9b0
movzx eax, byte [0x1401343f4]
xor ebx, ebx
mov rcx, qword [0x140134240]
xor r9d, r9d
mov edx, 0x41b
mov byte [r8 + 0x6c], al
mov dword [r8], ebx
call qword [sym.imp.USER32.dll_PostMessageW]
lea eax, [rbx + 1]
jmp 0x14001b9bc
lea rdx, str.KeyOpt
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b9b7
lea r9d, [rbp - 1]
mov rcx, rdi
lea r8, [r13 + 8]
call fcn.14001ba20
jmp 0x14001b9bc
mov esi, r15d
and esi, 1
lea eax, [rsi + 1]
cmp ebp, eax
je 0x14001b14d
mov r8, r12
lea rdx, str.Invalid_usage.
lea rcx, [0x140136640]
call fcn.1400515e0
jmp 0x14001b9bc
test r15b, 3
jne 0x14001b3ef
lea rdx, str.Input
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b1dc
xor ebx, ebx
mov dword [r14 + 0x10], ebx
movsxd rsi, dword [rdi + 0x30]
mov rdi, qword [rdi + 0x28]
cmp rsi, 0xffffffffffffffff
jne 0x14001b189
nop
inc rsi
cmp word [rdi + rsi*2], bx
jne 0x14001b180
lea r15, [rsi + rsi]
cmp rsi, 0xff
ja 0x14001b19c
mov rax, qword [r14 + 8]
jmp 0x14001b1b2
lea rcx, [r15 + 2]
call fcn.1400d29a0
mov qword [r14 + 0x18], rax
test rax, rax
je 0x14001b1d5
mov qword [r14 + 8], rsi
mov qword [r14], rax
test rdi, rdi
je 0x14001b1c8
mov r8, r15
mov rdx, rdi
mov rcx, rax
call fcn.1400cfd20
mov rax, qword [r14]
mov word [r15 + rax], bx
mov ebx, 1
mov eax, ebx
jmp 0x14001b9bc
lea rdx, str.InProgress
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b20d
xor ebx, ebx
mov dword [r14 + 0x10], 1
cmp dword [rdi + 0x10], 1
mov eax, 1
sete bl
mov qword [r14], rbx
jmp 0x14001b9bc
lea rdx, str.EndReason
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b2ba
xor ebx, ebx
mov dword [r14 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x14001b244.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1b9fc]
add rax, rcx
jmp rax
lea rdx, str.Timeout
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, str.EndKey
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, [0x140113330]
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, str.NewInput
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, str.Stopped
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
mov rdx, r12
mov eax, 1
mov qword [r14], rdx
jmp 0x14001b9bc
lea rdx, str.EndKey
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b2fd
xor ebx, ebx
lea rcx, [rdi + 0x10]
mov dword [r14 + 0x10], ebx
cmp dword [rcx], 4
jne 0x14001b3e2
mov rdx, qword [r14 + 8]
xor r9d, r9d
mov r8d, 0x100
mov qword [r14], rdx
call fcn.140057a50
lea eax, [rbx + 1]
jmp 0x14001b9bc
lea rdx, str.EndMods
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b3ae
mov rax, qword [r14 + 8]
xor ebx, ebx
mov dword [r14 + 0x10], ebx
mov qword [r14], rax
test byte [rdi + 0x7c], 1
je 0x14001b331
mov dword [rax], 0x5e003c
add rax, 4
test byte [rdi + 0x7c], 2
je 0x14001b341
mov dword [rax], 0x5e003e
add rax, 4
test byte [rdi + 0x7c], 4
je 0x14001b351
mov dword [rax], 0x21003c
add rax, 4
test byte [rdi + 0x7c], 8
je 0x14001b361
mov dword [rax], 0x21003e
add rax, 4
test byte [rdi + 0x7c], 0x10
je 0x14001b371
mov dword [rax], 0x2b003c
add rax, 4
test byte [rdi + 0x7c], 0x20
je 0x14001b381
mov dword [rax], 0x2b003e
add rax, 4
test byte [rdi + 0x7c], 0x40
je 0x14001b391
mov dword [rax], 0x23003c
add rax, 4
test byte [rdi + 0x7c], 0x80
je 0x14001b3a1
mov dword [rax], 0x23003e
add rax, 4
mov word [rax], bx
mov eax, 1
jmp 0x14001b9bc
lea rdx, str.Match
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b3ef
xor ebx, ebx
mov dword [r14 + 0x10], ebx
cmp dword [rdi + 0x10], 3
jne 0x14001b3e2
mov eax, dword [rdi + 0x80]
cmp eax, dword [rdi + 0x50]
jae 0x14001b3e2
mov ecx, eax
mov rax, qword [rdi + 0x48]
mov r12, qword [rax + rcx*8]
mov qword [r14], r12
mov eax, 1
jmp 0x14001b9bc
mov r8d, 2
lea rdx, [0x140110374]
mov rcx, rbx
call fcn.1400d2a10
test eax, eax
jne 0x14001b581
add rbx, 4
lea rdx, [0x14010f9a8]
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b42b
mov r15d, 0x388
jmp 0x14001b47e
lea rdx, str.KeyDown
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b446
mov r15d, 0x390
jmp 0x14001b47e
lea rdx, str.KeyUp
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b461
mov r15d, 0x3a0
jmp 0x14001b47e
lea rdx, str.Char
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b9b7
mov r15d, 0x398
test esi, esi
je 0x14001b4e5
mov rcx, qword [r13 + 8]
xor ebx, ebx
mov eax, dword [rcx + 0x10]
cmp eax, 6
jne 0x14001b495
mov rdx, rcx
jmp 0x14001b4c1
cmp eax, 4
jne 0x14001b52d
mov rdx, qword [rcx]
movzx eax, byte [rdx + 0x23]
test al, al
jne 0x14001b4af
mov r8, qword [rdx + 0x10]
jmp 0x14001b4b2
mov r8, rdx
test byte [r8 + 0x21], 2
je 0x14001b511
test al, al
jne 0x14001b4c1
mov rdx, qword [rdx + 0x10]
mov rsi, qword [rdx]
test rsi, rsi
je 0x14001b530
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WSOCK32.dll_htonl]
mov rcx, qword [r15 + rdi]
test rcx, rcx
je 0x14001b4e1
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov qword [r15 + rdi], rsi
mov rcx, qword [r15 + rdi]
test rcx, rcx
je 0x14001b9b0
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_htonl]
mov rax, qword [r15 + rdi]
mov qword [r14], rax
mov eax, 1
mov dword [r14 + 0x10], 6
jmp 0x14001b9bc
test al, al
jne 0x14001b51b
mov rax, qword [rdx + 0x10]
jmp 0x14001b51e
mov rax, rdx
test byte [rax + 0x21], 4
je 0x14001b52d
call fcn.1400520f0
mov rcx, qword [r13 + 8]
mov rsi, rbx
mov edx, dword [rcx + 0x10]
test edx, edx
je 0x14001b541
sub edx, 4
je 0x14001b569
cmp edx, 1
jne 0x14001b54e
mov rax, qword [rcx]
cmp word [rax], bx
sete bl
test ebx, ebx
jne 0x14001b4d2
mov r8, r12
lea rdx, str.Invalid_value.
lea rcx, [0x140136640]
call fcn.1400515e0
jmp 0x14001b9bc
mov rax, qword [rcx]
cmp byte [rax + 0x23], bl
jne 0x14001b575
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 0xa
jne 0x14001b54a
cmp qword [rax + 0x10], rbx
jmp 0x14001b547
lea rdx, str.MinSendLevel
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b664
test esi, esi
je 0x14001b65b
mov rbx, qword [r13 + 8]
mov ecx, dword [rbx + 0x10]
sub ecx, 1
je 0x14001b655
sub ecx, 1
je 0x14001b645
sub ecx, 2
je 0x14001b602
sub ecx, 1
je 0x14001b5d5
cmp ecx, 1
jne 0x14001b5ec
xor ebx, ebx
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
mov rax, qword [rbx + 8]
test rax, rax
je 0x14001b5ec
mov rbx, qword [rax]
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
mov rcx, qword [rbx]
call fcn.140005af0
mov rbx, rax
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], 0
jne 0x14001b60f
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x14001b623
mov rbx, qword [rcx]
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rbx, rax
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
cvttsd2si rbx, qword [rbx]
mov byte [rdi + 0x6c], bl
movzx eax, bl
jmp 0x14001b9a5
mov rbx, qword [rbx]
mov byte [rdi + 0x6c], bl
movzx eax, byte [rdi + 0x6c]
jmp 0x14001b9a5
lea rdx, str.Timeout
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b7a3
movsd xmm6, qword [0x14011c6c0]
test esi, esi
je 0x14001b77f
mov rdx, qword [r13 + 8]
mov ecx, dword [rdx + 0x10]
sub ecx, 1
je 0x14001b712
sub ecx, 1
je 0x14001b70c
sub ecx, 2
je 0x14001b6cd
sub ecx, 1
je 0x14001b6b0
cmp ecx, 1
jne 0x14001b6c3
xorps xmm0, xmm0
jmp 0x14001b71a
mov rax, qword [rdx + 8]
test rax, rax
je 0x14001b6c3
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x14001b71a
mov rcx, qword [rdx]
call fcn.140023cb0
jmp 0x14001b71a
mov rcx, qword [rdx]
cmp byte [rcx + 0x23], 0
jne 0x14001b6da
mov rcx, qword [rcx + 0x10]
movzx eax, byte [rcx + 0x21]
test al, 0x20
je 0x14001b6e8
movsd xmm0, qword [rcx]
jmp 0x14001b71a
test al, 0x10
je 0x14001b6f6
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx]
jmp 0x14001b71a
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140023cb0
jmp 0x14001b71a
movsd xmm0, qword [rdx]
jmp 0x14001b71a
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rdx]
cmp dword [rdi + 0x10], 1
mulsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rdi + 0x64], eax
jne 0x14001b77f
test eax, eax
jle 0x14001b77f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [0x140134084], 0
mov r8d, dword [rdi + 0x64]
lea edx, [rax + r8]
mov dword [rdi + 0x68], edx
je 0x14001b756
mov ecx, dword [0x140134088]
sub ecx, eax
cmp r8d, ecx
jge 0x14001b77f
mov rcx, qword [0x140134240]
lea r9, [0x140005930]
mov dword [0x140134088], edx
mov edx, reloc.WSOCK32.dll_ioctlsocket
call qword [sym.imp.USER32.dll_SetTimer]
test rax, rax
setne byte [0x140134084]
movd xmm0, dword [rdi + 0x64]
mov eax, 1
cvtdq2pd xmm0, xmm0
mov dword [r14 + 0x10], 2
divsd xmm0, xmm6
movsd qword [r14], xmm0
jmp 0x14001b9bc
lea rdx, str.BackspaceIsUndo
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b7c0
mov eax, WSAGetLastError
jmp 0x14001b844
lea rdx, str.CaseSensitive
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b7da
mov eax, WSAGetLastError
jmp 0x14001b844
lea rdx, str.FindAnywhere
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b7f4
mov eax, reloc.WSOCK32.dll_WSAStartup
jmp 0x14001b844
lea rdx, str.VisibleText
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b80e
mov eax, reloc.WSOCK32.dll_WSASetLastError
jmp 0x14001b844
lea rdx, str.VisibleNonText
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b828
mov eax, WSAStartup
jmp 0x14001b844
lea rdx, str.NotifyNonText
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x14001b9b7
mov eax, WSAStartup
add rdi, rax
je 0x14001b9b7
test esi, esi
je 0x14001b9a2
mov rbx, qword [r13 + 8]
mov rcx, rbx
call fcn.14007cac0
sub eax, 1
je 0x14001b98d
mov ecx, dword [rbx + 0x10]
cmp eax, 1
je 0x14001b8dc
cmp ecx, 6
je 0x14001b8d2
cmp ecx, 4
jne 0x14001b8ab
mov rax, qword [rbx]
cmp byte [rax + 0x23], 0
jne 0x14001b889
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 2
jne 0x14001b8d2
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
xor ebx, ebx
mov r12, rax
cmp word [rax], bx
jmp 0x14001b99d
test ecx, ecx
je 0x14001b8c3
sub ecx, 1
je 0x14001b8c6
sub ecx, 1
je 0x14001b8c6
sub ecx, 2
je 0x14001b88f
cmp ecx, 1
jne 0x14001b8c6
mov r12, qword [rbx]
xor ebx, ebx
cmp word [r12], bx
jmp 0x14001b99d
mov ebx, 1
jmp 0x14001b9a0
sub ecx, 1
je 0x14001b96e
sub ecx, 1
je 0x14001b932
sub ecx, 2
je 0x14001b91d
sub ecx, 1
je 0x14001b90a
cmp ecx, 1
je 0x14001b989
mov rcx, qword [rbx]
call fcn.1400dc0fc
movaps xmm6, xmm0
jmp 0x14001b976
mov rax, qword [rbx + 8]
test rax, rax
je 0x14001b8fd
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rax]
jmp 0x14001b976
mov rbx, qword [rbx]
cmp byte [rbx + 0x23], 0
jne 0x14001b92a
mov rbx, qword [rbx + 0x10]
movzx eax, byte [rbx + 0x21]
test al, 0x20
je 0x14001b938
movsd xmm6, qword [rbx]
jmp 0x14001b976
test al, 0x10
jne 0x14001b96e
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140023cb0
cmp byte [rbx + 0x21], 0
movaps xmm6, xmm0
jl 0x14001b976
mov r8b, 0x20
movq rdx, xmm0
mov rcx, rbx
call fcn.1400014b0
jmp 0x14001b976
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rbx]
xorps xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14001b8d2
jne 0x14001b8d2
xor ebx, ebx
jmp 0x14001b9a0
mov edx, 1
mov rcx, rbx
call fcn.14007cd80
test rax, rax
setne bl
mov byte [rdi], bl
movzx eax, byte [rdi]
mov dword [r14 + 0x10], 1
mov qword [r14], rax
mov eax, 1
jmp 0x14001b9bc
mov eax, 4
mov rsi, qword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x20]
mov rbx, qword [rsp + 0x60]
mov r13, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret