Function at 0x14001cae0
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 0x14001cb24
lea r8, [0x14012046c]
lea rdx, str.Invalid_usage.
lea rcx, [0x140163cc0]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rbp
jmp fcn.140063260
mov qword [rsp + 0x50], rbx
lea r14, [0x14012046c]
mov qword [rsp + 0x60], r13
mov r13, qword [rsp + 0x70]
mov rbx, qword [r13]
mov ecx, dword [rbx + 0x10]
test ecx, ecx
je 0x14001cb72
sub ecx, 1
je 0x14001cb59
sub ecx, 1
je 0x14001cb59
sub ecx, 2
je 0x14001cb5e
cmp ecx, 1
je 0x14001cb72
mov rbx, r14
jmp 0x14001cb75
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001770
mov rbx, rax
jmp 0x14001cb75
mov rbx, qword [rbx]
mov qword [rsp + 0x58], rsi
test r12b, 2
je 0x14001cd88
lea rdx, str.Start
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001cbc2
cmp dword [rdi + 0x10], 1
lea rcx, [rdi + 0x10]
je 0x14001d2f5
cmp byte [rdi + 0x6d], al
jne 0x14001cbb6
mov rax, qword [rdi + 0x28]
xor ebx, ebx
mov dword [rdi + 0x30], ebx
mov word [rax], bx
xor edx, edx
call fcn.140069990
jmp 0x14001d6a2
lea rdx, str.Wait
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001cd0e
cmp ebp, 1
jle 0x14001cca0
mov r8, qword [r13 + 8]
mov ecx, dword [r8 + 0x10]
cmp ecx, 3
je 0x14001cca0
sub ecx, 1
je 0x14001cc89
sub ecx, 1
je 0x14001cc75
sub ecx, 2
je 0x14001cc5c
sub ecx, 1
je 0x14001cc25
cmp ecx, 1
jne 0x14001cc45
xorps xmm0, xmm0
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
mov rax, qword [r8 + 8]
test rax, rax
je 0x14001cc45
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
mov rcx, qword [r8]
call fcn.1400320e0
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
mov rcx, qword [r8]
xor edx, edx
call fcn.140032300
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
movsd xmm0, qword [r8]
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r8]
mulsd xmm0, qword [0x1401467d8]
cvttsd2si rbx, xmm0
jmp 0x14001cca5
mov ebx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rdi + 0x10], 1
mov esi, eax
jne 0x14001ccd4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, ebx
jae 0x14001ccd4
mov edx, 1
mov ecx, 0x8000012f
call fcn.140001a10
cmp dword [rdi + 0x10], 1
je 0x14001ccb3
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x14001d014.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1d6c0]
add rax, rcx
jmp rax
lea rdx, str.Match
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, str.Stop
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001cd5c
cmp dword [rdi + 0x10], 1
lea r8, [rdi + 0x10]
jne 0x14001d2f5
movzx eax, byte [0x1401616d2]
xor ebx, ebx
mov rcx, qword [0x140160760]
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 0x14001d6a2
lea rdx, str.KeyOpt
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d69d
lea r9d, [rbp - 1]
mov rcx, rdi
lea r8, [r13 + 8]
call fcn.14001d700
jmp 0x14001d6a2
mov esi, r12d
and esi, 1
lea eax, [rsi + 1]
cmp ebp, eax
je 0x14001cdb0
mov r8, r14
lea rdx, str.Invalid_usage.
lea rcx, [0x140163cc0]
call fcn.140063260
jmp 0x14001d6a2
test esi, esi
je 0x14001cf20
lea rdx, str.Input
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d1e1
mov r9, qword [r13 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x14001ce05
sub ecx, 1
je 0x14001cdef
sub ecx, 1
je 0x14001cdef
sub ecx, 2
je 0x14001cdf4
cmp ecx, 1
je 0x14001ce05
mov rax, r14
jmp 0x14001ce08
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001770
jmp 0x14001ce08
mov rax, qword [r9]
mov rsi, 0xffffffffffffffff
mov rcx, rsi
inc rcx
cmp word [rax + rcx*2], 0
jne 0x14001ce12
movsxd rax, dword [rdi + 0x34]
cmp rcx, rax
jbe 0x14001ce40
mov r8, r14
lea rdx, str.Out_of_memory.
lea rcx, [0x140163cc0]
call fcn.140063260
jmp 0x14001d6a2
mov r9, qword [r13 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x14001ce60
sub ecx, 1
je 0x14001ce63
sub ecx, 1
je 0x14001ce63
sub ecx, 2
je 0x14001cecd
cmp ecx, 1
jne 0x14001ce63
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 0x14001ce70
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 0x14001ce91
mov dword [rdi + 0x30], eax
movsxd rdi, eax
cmp rdi, rsi
jne 0x14001ceba
mov rdi, rsi
nop dword [rax]
inc rdi
cmp word [rbp + rdi*2], bx
jne 0x14001ceb0
lea rsi, [rdi + rdi]
cmp rdi, 0xff
ja 0x14001cee1
mov rax, qword [r15 + 8]
jmp 0x14001cef7
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001770
mov r14, rax
jmp 0x14001ce63
lea rcx, [rsi + 2]
call fcn.1400f75c0
mov qword [r15 + 0x18], rax
test rax, rax
je 0x14001cf19
mov qword [r15 + 8], rdi
mov qword [r15], rax
test rbp, rbp
je 0x14001cf10
mov r8, rsi
mov rdx, rbp
mov rcx, rax
call fcn.1400f1320
mov rax, qword [r15]
mov word [rax + rsi], bx
mov ebx, 1
mov eax, ebx
jmp 0x14001d6a2
test r12b, 3
jne 0x14001d1e1
lea rdx, str.Input
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001cfac
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rsi, dword [rdi + 0x30]
mov rdi, qword [rdi + 0x28]
cmp rsi, 0xffffffffffffffff
jne 0x14001cf5a
inc rsi
cmp word [rdi + rsi*2], bx
jne 0x14001cf51
lea rbp, [rsi + rsi]
cmp rsi, 0xff
ja 0x14001cf6d
mov rax, qword [r15 + 8]
jmp 0x14001cf83
lea rcx, [rbp + 2]
call fcn.1400f75c0
mov qword [r15 + 0x18], rax
test rax, rax
je 0x14001cfa5
mov qword [r15 + 8], rsi
mov qword [r15], rax
test rdi, rdi
je 0x14001cf9c
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call fcn.1400f1320
mov rax, qword [r15]
mov word [rax + rbp], bx
mov ebx, 1
mov eax, ebx
jmp 0x14001d6a2
lea rdx, str.InProgress
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001cfdd
xor ebx, ebx
mov dword [r15 + 0x10], 1
cmp dword [rdi + 0x10], 1
mov eax, 1
sete bl
mov qword [r15], rbx
jmp 0x14001d6a2
lea rdx, str.EndReason
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d08c
xor ebx, ebx
mov dword [r15 + 0x10], ebx
movsxd rax, dword [rdi + 0x10]
cmp eax, 6
ja case.0x14001d014.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1d6dc]
add rax, rcx
jmp rax
lea rdx, str.Timeout
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, str.EndKey
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, [0x14013b618]
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, str.NewInput
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, str.Stopped
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
mov rdx, r14
mov eax, 1
mov qword [r15], rdx
jmp 0x14001d6a2
lea rdx, str.EndKey
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d0d8
xor ebx, ebx
lea rcx, [rdi + 0x10]
mov dword [r15 + 0x10], ebx
cmp dword [rcx], 4
jne 0x14001d0cb
mov rdx, qword [r15 + 8]
xor r9d, r9d
mov r8d, 0x100
mov qword [r15], rdx
call fcn.14006a2e0
lea eax, [rbx + 1]
jmp 0x14001d6a2
mov qword [r15], r14
mov eax, 1
jmp 0x14001d6a2
lea rdx, str.EndMods
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d1a0
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 0x14001d113
mov dword [rax], 0x5e003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 2
je 0x14001d126
mov dword [rax], 0x5e003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 4
je 0x14001d139
mov dword [rax], 0x21003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 8
je 0x14001d14c
mov dword [rax], 0x21003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x10
je 0x14001d15f
mov dword [rax], 0x2b003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x20
je 0x14001d172
mov dword [rax], 0x2b003e
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, 0x40
je 0x14001d185
mov dword [rax], 0x23003c
add rax, 4
movzx ecx, byte [rdi + 0x7e]
test cl, cl
jns 0x14001d193
mov dword [rax], 0x23003e
add rax, 4
mov word [rax], bx
mov eax, 1
jmp 0x14001d6a2
lea rdx, str.Match
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d1e1
xor ebx, ebx
mov dword [r15 + 0x10], ebx
cmp dword [rdi + 0x10], 3
jne 0x14001d1d4
mov eax, dword [rdi + 0x80]
cmp eax, dword [rdi + 0x50]
jae 0x14001d1d4
mov ecx, eax
mov rax, qword [rdi + 0x48]
mov r14, qword [rax + rcx*8]
mov qword [r15], r14
mov eax, 1
jmp 0x14001d6a2
mov r8d, 2
lea rdx, [0x140136e94]
mov rcx, rbx
call fcn.1400f7630
test eax, eax
jne 0x14001d36f
add rbx, 4
lea rdx, [0x140136520]
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d21d
mov r12d, 0x388
jmp 0x14001d270
lea rdx, str.KeyDown
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d238
mov r12d, 0x390
jmp 0x14001d270
lea rdx, str.KeyUp
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d253
mov r12d, 0x3a0
jmp 0x14001d270
lea rdx, str.Char
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d69d
mov r12d, 0x398
test esi, esi
je 0x14001d2d7
mov rcx, qword [r13 + 8]
xor ebx, ebx
mov eax, dword [rcx + 0x10]
cmp eax, 6
jne 0x14001d287
mov rdx, rcx
jmp 0x14001d2b3
cmp eax, 4
jne 0x14001d31b
mov rdx, qword [rcx]
movzx eax, byte [rdx + 0x23]
test al, al
jne 0x14001d2a1
mov r8, qword [rdx + 0x10]
jmp 0x14001d2a4
mov r8, rdx
test byte [r8 + 0x21], 2
je 0x14001d2ff
test al, al
jne 0x14001d2b3
mov rdx, qword [rdx + 0x10]
mov rsi, qword [rdx]
test rsi, rsi
je 0x14001d31e
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WSOCK32.dll_htonl]
mov rcx, qword [r12 + rdi]
test rcx, rcx
je 0x14001d2d3
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov qword [r12 + rdi], rsi
mov rcx, qword [r12 + rdi]
test rcx, rcx
je 0x14001d2f5
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_htonl]
mov rax, qword [r12 + rdi]
mov qword [r15], rax
mov dword [r15 + 0x10], 6
mov eax, 1
jmp 0x14001d6a2
test al, al
jne 0x14001d309
mov rax, qword [rdx + 0x10]
jmp 0x14001d30c
mov rax, rdx
test byte [rax + 0x21], 4
je 0x14001d31b
call fcn.140064000
mov rcx, qword [r13 + 8]
mov rsi, rbx
mov edx, dword [rcx + 0x10]
test edx, edx
je 0x14001d32f
sub edx, 4
je 0x14001d357
cmp edx, 1
jne 0x14001d33c
mov rax, qword [rcx]
cmp word [rax], bx
sete bl
test ebx, ebx
jne 0x14001d2c4
mov r8, r14
lea rdx, str.Invalid_value.
lea rcx, [0x140163cc0]
call fcn.140063260
jmp 0x14001d6a2
mov rax, qword [rcx]
cmp byte [rax + 0x23], bl
jne 0x14001d363
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 0xa
jne 0x14001d338
cmp qword [rax + 0x10], rbx
jmp 0x14001d335
lea rdx, str.MinSendLevel
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d3b2
test esi, esi
je 0x14001d396
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.140093ae0
mov byte [rdi + 0x6c], al
jmp 0x14001d39a
movzx eax, byte [rdi + 0x6c]
movzx eax, al
mov qword [r15], rax
mov eax, 1
mov dword [r15 + 0x10], 1
jmp 0x14001d6a2
lea rdx, str.Timeout
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d4c0
test esi, esi
je 0x14001d498
mov r8, qword [r13 + 8]
mov ecx, dword [r8 + 0x10]
sub ecx, 1
je 0x14001d427
sub ecx, 1
je 0x14001d420
sub ecx, 2
je 0x14001d414
sub ecx, 1
je 0x14001d3f7
cmp ecx, 1
jne 0x14001d40a
xorps xmm0, xmm0
jmp 0x14001d42f
mov rax, qword [r8 + 8]
test rax, rax
je 0x14001d40a
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x14001d42f
mov rcx, qword [r8]
call fcn.1400320e0
jmp 0x14001d42f
mov rcx, qword [r8]
xor edx, edx
call fcn.140032300
jmp 0x14001d42f
movsd xmm0, qword [r8]
jmp 0x14001d42f
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r8]
cmp dword [rdi + 0x10], 1
mulsd xmm0, qword [0x1401467d8]
cvttsd2si eax, xmm0
mov dword [rdi + 0x64], eax
jne 0x14001d498
test eax, eax
jle 0x14001d498
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [0x14016057c], 0
mov r8d, dword [rdi + 0x64]
lea edx, [rax + r8]
mov dword [rdi + 0x68], edx
je 0x14001d46f
mov ecx, dword [0x1401605b8]
sub ecx, eax
cmp r8d, ecx
jge 0x14001d498
mov rcx, qword [0x140160760]
lea r9, [0x1400059f0]
mov dword [0x1401605b8], edx
mov edx, reloc.WSOCK32.dll_ioctlsocket
call qword [sym.imp.USER32.dll_SetTimer]
test rax, rax
setne byte [0x14016057c]
movd xmm0, dword [rdi + 0x64]
mov eax, 1
cvtdq2pd xmm0, xmm0
mov dword [r15 + 0x10], 2
divsd xmm0, qword [0x1401467d8]
movsd qword [r15], xmm0
jmp 0x14001d6a2
lea rdx, str.BackspaceIsUndo
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d4dd
mov eax, WSAGetLastError
jmp 0x14001d561
lea rdx, str.CaseSensitive
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d4f7
mov eax, reloc.WSOCK32.dll_WSAGetLastError
jmp 0x14001d561
lea rdx, str.FindAnywhere
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d511
mov eax, reloc.WSOCK32.dll_WSACleanup
jmp 0x14001d561
lea rdx, str.VisibleText
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d52b
mov eax, WSAStartup
jmp 0x14001d561
lea rdx, str.VisibleNonText
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d545
mov eax, WSAStartup
jmp 0x14001d561
lea rdx, str.NotifyNonText
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001d69d
mov eax, reloc.WSOCK32.dll_WSAStartup
add rdi, rax
je 0x14001d69d
test esi, esi
je 0x14001d685
mov rbx, qword [r13 + 8]
mov rcx, rbx
call fcn.140093800
sub eax, 1
je 0x14001d66e
mov ecx, dword [rbx + 0x10]
cmp eax, 1
je 0x14001d604
cmp ecx, 6
je 0x14001d5f8
cmp ecx, 4
jne 0x14001d5ac
mov rax, qword [rbx]
cmp byte [rax + 0x23], 0
jne 0x14001d5a6
mov rax, qword [rax + 0x10]
test byte [rax + 0x21], 2
jne 0x14001d5f8
test ecx, ecx
je 0x14001d5c4
sub ecx, 1
je 0x14001d5c7
sub ecx, 1
je 0x14001d5c7
sub ecx, 2
je 0x14001d5d7
cmp ecx, 1
jne 0x14001d5c7
mov r14, qword [rbx]
xor ebx, ebx
cmp word [r14], bx
setne bl
mov byte [rdi], bl
jmp 0x14001d688
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001770
xor ebx, ebx
mov r14, rax
cmp word [rax], bx
setne bl
mov byte [rdi], bl
jmp 0x14001d688
mov ebx, 1
mov byte [rdi], bl
jmp 0x14001d688
sub ecx, 1
je 0x14001d655
sub ecx, 1
je 0x14001d64f
sub ecx, 2
je 0x14001d63d
sub ecx, 1
je 0x14001d62a
cmp ecx, 1
je 0x14001d668
mov rcx, qword [rbx]
call fcn.14010100c
movaps xmm1, xmm0
jmp 0x14001d65d
mov rax, qword [rbx + 8]
test rax, rax
je 0x14001d61d
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rax]
jmp 0x14001d65d
mov rcx, qword [rbx]
mov edx, 1
call fcn.140032300
movaps xmm1, xmm0
jmp 0x14001d65d
movsd xmm1, qword [rbx]
jmp 0x14001d65d
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbx]
xorps xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14001d5f8
jne 0x14001d5f8
xor ebx, ebx
mov byte [rdi], bl
jmp 0x14001d688
mov edx, 1
mov rcx, rbx
call fcn.140093ae0
test rax, rax
setne bl
mov byte [rdi], bl
jmp 0x14001d688
movzx ebx, byte [rdi]
movzx eax, bl
mov qword [r15], rax
mov eax, 1
mov dword [r15 + 0x10], 1
jmp 0x14001d6a2
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