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

Disassembly:
push rbx
push rsi
push rdi
push r13
push r14
sub rsp, 0x20
mov r14d, dword [rsp + 0x78]
mov r13d, r9d
mov rsi, rdx
mov rbx, rcx
test r14d, r14d
jne 0x14001b3b4
lea r8, [0x140103574]
lea rdx, str.Invalid_usage.
lea rcx, [0x140145cd0]
add rsp, 0x20
pop r14
pop r13
pop rdi
pop rsi
pop rbx
jmp fcn.1400570c0
mov qword [rsp + 0x50], rbp
lea rdi, [0x140103574]
mov qword [rsp + 0x58], r12
mov r12, qword [rsp + 0x70]
mov rbp, qword [r12]
mov ecx, dword [rbp + 0x10]
test ecx, ecx
je 0x14001b403
sub ecx, 1
je 0x14001b3e9
sub ecx, 1
je 0x14001b3e9
sub ecx, 2
je 0x14001b3ee
cmp ecx, 1
je 0x14001b403
mov rbp, rdi
jmp 0x14001b407
mov rcx, qword [rbp]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
mov rbp, rax
jmp 0x14001b407
mov rbp, qword [rbp]
mov qword [rsp + 0x60], r15
test r13b, 2
je 0x14001b5d8
lea rdx, str.Start
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b4a8
cmp dword [rbx + 0x10], 1
lea rdi, [rbx + 0x10]
je 0x14001bc08
cmp byte [rbx + 0x6d], al
jne 0x14001b448
mov rax, qword [rbx + 0x28]
xor ecx, ecx
mov dword [rbx + 0x30], ecx
mov word [rax], cx
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14001b457
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_htonl]
cmp dword [rdi + 0x54], 0
jle 0x14001b465
mov rcx, rdi
call fcn.14005c470
mov rax, qword [0x140142758]
or byte [0x1401436e6], 1
cmp qword [0x1401427a0], 0
mov qword [rdi + 8], rax
mov dword [rdi], 1
mov qword [0x140142758], rdi
jne 0x14001bc08
movzx edx, word [0x1401437ac]
call fcn.1400147f0
mov eax, 1
jmp 0x14001bc14
lea rdx, str.Wait
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b55b
cmp r14d, 1
jle 0x14001b4ea
mov rcx, qword [r12 + 8]
cmp dword [rcx + 0x10], 3
je 0x14001b4ea
xor r8d, r8d
lea edx, [rax + 1]
call fcn.1400834b0
mulsd xmm0, qword [0x140128298]
cvttsd2si rbp, xmm0
jmp 0x14001b4ef
mov ebp, 0xffffffff
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rbx + 0x10], 1
mov r14d, eax
jne 0x14001b522
nop
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, r14d
cmp eax, ebp
jae 0x14001b522
mov edx, 1
mov ecx, 0x8000012f
call fcn.140001b10
cmp dword [rbx + 0x10], 1
je 0x14001b500
xor ecx, ecx
mov dword [rsi + 0x10], ecx
movsxd rax, dword [rbx + 0x10]
cmp eax, 6
ja case.0x14001b7bd.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1bc30]
add rax, rcx
jmp rax
lea rdx, str.Match
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, str.Stop
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b5ab
cmp dword [rbx + 0x10], 1
lea r8, [rbx + 0x10]
jne 0x14001bc08
movzx eax, byte [0x1401436e2]
xor ecx, ecx
mov dword [r8], ecx
xor r9d, r9d
mov rcx, qword [0x140142770]
mov edx, 0x41b
mov byte [r8 + 0x6e], al
call qword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x14001bc14
lea rdx, str.KeyOpt
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bc0f
lea r9d, [r14 - 1]
mov rcx, rbx
lea r8, [r12 + 8]
call fcn.14001bc70
jmp 0x14001bc14
mov r15d, r13d
and r15d, 1
lea eax, [r15 + 1]
cmp r14d, eax
je 0x14001b603
mov r8, rdi
lea rdx, str.Invalid_usage.
lea rcx, [0x140145cd0]
call fcn.1400570c0
jmp 0x14001bc14
test r15d, r15d
je 0x14001b720
lea rdx, str.Input
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b97e
mov r9, qword [r12 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x14001b65a
sub ecx, 1
je 0x14001b644
sub ecx, 1
je 0x14001b644
sub ecx, 2
je 0x14001b649
cmp ecx, 1
je 0x14001b65a
mov rax, rdi
jmp 0x14001b65d
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
jmp 0x14001b65d
mov rax, qword [r9]
mov rbp, 0xffffffffffffffff
mov rcx, rbp
nop word [rax + rax]
inc rcx
cmp word [rax + rcx*2], 0
jne 0x14001b670
movsxd rax, dword [rbx + 0x34]
cmp rcx, rax
jbe 0x14001b69e
mov r8, rdi
lea rdx, str.Out_of_memory.
lea rcx, [0x140145cd0]
call fcn.1400570c0
jmp 0x14001bc14
mov r9, qword [r12 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x14001b6bf
sub ecx, 1
je 0x14001b6c2
sub ecx, 1
je 0x14001b6c2
sub ecx, 2
je 0x14001b70c
cmp ecx, 1
jne 0x14001b6c2
mov rdi, qword [r9]
mov rcx, qword [rbx + 0x28]
nop word [rax + rax]
movzx eax, word [rdi]
lea rdi, [rdi + 2]
mov word [rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14001b6d0
xor ecx, ecx
mov dword [rsi + 0x10], ecx
mov rdx, qword [rbx + 0x28]
nop dword [rax]
inc rbp
cmp word [rdx + rbp*2], cx
jne 0x14001b6f0
movsxd r8, ebp
mov rcx, rsi
mov dword [rbx + 0x30], ebp
call fcn.140083aa0
jmp 0x14001bc14
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
mov rdi, rax
jmp 0x14001b6c2
test r13b, 3
jne 0x14001b97e
lea rdx, str.Input
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b757
xor ecx, ecx
mov dword [rsi + 0x10], ecx
mov rcx, rsi
movsxd r8, dword [rbx + 0x30]
mov rdx, qword [rbx + 0x28]
call fcn.140083aa0
jmp 0x14001bc14
lea rdx, str.InProgress
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b787
xor ecx, ecx
mov dword [rsi + 0x10], 1
cmp dword [rbx + 0x10], 1
mov eax, 1
sete cl
mov qword [rsi], rcx
jmp 0x14001bc14
lea rdx, str.EndReason
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b833
xor ecx, ecx
mov dword [rsi + 0x10], ecx
movsxd rax, dword [rbx + 0x10]
cmp eax, 6
ja case.0x14001b7bd.1
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1bc4c]
add rax, rcx
jmp rax
lea rdx, str.Timeout
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, str.EndKey
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, [0x14011d088]
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, str.NewInput
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, str.Stopped
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
mov rdx, rdi
mov eax, 1
mov qword [rsi], rdx
jmp 0x14001bc14
lea rdx, str.EndKey
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b877
xor ecx, ecx
mov dword [rsi + 0x10], ecx
lea rcx, [rbx + 0x10]
cmp dword [rcx], 4
jne 0x14001b971
mov rdx, qword [rsi + 8]
xor r9d, r9d
mov r8d, 0x100
mov qword [rsi], rdx
call fcn.14005cb90
mov eax, 1
jmp 0x14001bc14
lea rdx, str.EndMods
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b93e
mov rax, qword [rsi + 8]
xor ecx, ecx
mov dword [rsi + 0x10], ecx
mov qword [rsi], rax
movzx edx, byte [rbx + 0x7e]
test dl, 1
je 0x14001b8b1
mov dword [rax], 0x5e003c
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 2
je 0x14001b8c4
mov dword [rax], 0x5e003e
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 4
je 0x14001b8d7
mov dword [rax], 0x21003c
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 8
je 0x14001b8ea
mov dword [rax], 0x21003e
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 0x10
je 0x14001b8fd
mov dword [rax], 0x2b003c
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 0x20
je 0x14001b910
mov dword [rax], 0x2b003e
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, 0x40
je 0x14001b923
mov dword [rax], 0x23003c
add rax, 4
movzx edx, byte [rbx + 0x7e]
test dl, dl
jns 0x14001b931
mov dword [rax], 0x23003e
add rax, 4
mov word [rax], cx
mov eax, 1
jmp 0x14001bc14
lea rdx, str.Match
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b97e
xor ecx, ecx
mov dword [rsi + 0x10], ecx
cmp dword [rbx + 0x10], 3
jne 0x14001b971
mov eax, dword [rbx + 0x80]
cmp eax, dword [rbx + 0x50]
jae 0x14001b971
mov ecx, eax
mov rax, qword [rbx + 0x48]
mov rdi, qword [rax + rcx*8]
mov qword [rsi], rdi
mov eax, 1
jmp 0x14001bc14
mov r8d, 2
lea rdx, [0x140119fa4]
mov rcx, rbp
call fcn.1400dc238
test eax, eax
jne 0x14001ba94
add rbp, 4
lea rdx, [0x140119630]
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b9ba
mov r14d, 0x388
jmp 0x14001ba0d
lea rdx, str.KeyDown
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b9d5
mov r14d, 0x390
jmp 0x14001ba0d
lea rdx, str.KeyUp
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001b9f0
mov r14d, 0x3a0
jmp 0x14001ba0d
lea rdx, str.Char
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bc0f
mov r14d, 0x398
test r15d, r15d
je 0x14001ba40
mov rcx, qword [r12 + 8]
call fcn.140083990
mov r15, rax
test rax, rax
je 0x14001ba6b
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.WSOCK32.dll_htonl]
mov rcx, qword [r14 + rbx]
test rcx, rcx
je 0x14001ba3c
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov qword [r14 + rbx], r15
mov rcx, qword [r14 + rbx]
test rcx, rcx
je 0x14001bc08
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_htonl]
mov rax, qword [r14 + rbx]
mov qword [rsi], rax
mov eax, 1
mov dword [rsi + 0x10], 6
jmp 0x14001bc14
mov rcx, qword [r12 + 8]
call fcn.140083340
test eax, eax
jne 0x14001ba2d
mov r8, rdi
lea rdx, str.Invalid_value.
lea rcx, [0x140145cd0]
call fcn.1400570c0
jmp 0x14001bc14
lea rdx, str.MinSendLevel
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bac9
test r15d, r15d
je 0x14001bac0
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140083410
mov byte [rbx + 0x6c], al
jmp 0x14001bbfb
movzx eax, byte [rbx + 0x6c]
jmp 0x14001bbfb
lea rdx, str.Timeout
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bb39
test r15d, r15d
je 0x14001bb13
mov rcx, qword [r12 + 8]
lea edx, [rax + 1]
xor r8d, r8d
call fcn.1400834b0
cmp dword [rbx + 0x10], 1
lea rcx, [rbx + 0x10]
mulsd xmm0, qword [0x140128298]
cvttsd2si eax, xmm0
mov dword [rbx + 0x64], eax
jne 0x14001bb13
test eax, eax
jle 0x14001bb13
call fcn.14005c470
movd xmm0, dword [rbx + 0x64]
mov eax, 1
cvtdq2pd xmm0, xmm0
mov dword [rsi + 0x10], 2
divsd xmm0, qword [0x140128298]
movsd qword [rsi], xmm0
jmp 0x14001bc14
lea rdx, str.BackspaceIsUndo
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bb56
mov eax, WSAGetLastError
jmp 0x14001bbd6
lea rdx, str.CaseSensitive
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bb70
mov eax, reloc.WSOCK32.dll_WSAGetLastError
jmp 0x14001bbd6
lea rdx, str.FindAnywhere
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bb8a
mov eax, reloc.WSOCK32.dll_WSACleanup
jmp 0x14001bbd6
lea rdx, str.VisibleText
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bba4
mov eax, WSAStartup
jmp 0x14001bbd6
lea rdx, str.VisibleNonText
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bbbe
mov eax, WSAStartup
jmp 0x14001bbd6
lea rdx, str.NotifyNonText
mov rcx, rbp
call fcn.1400da910
test eax, eax
jne 0x14001bc0f
mov eax, reloc.WSOCK32.dll_WSAStartup
add rbx, rax
je 0x14001bc0f
test r15d, r15d
je 0x14001bbf8
mov rcx, qword [r12 + 8]
mov edx, 0x41
call fcn.140083130
test eax, eax
setne al
mov byte [rbx], al
jmp 0x14001bbfb
movzx eax, byte [rbx]
movzx eax, al
mov qword [rsi], rax
mov dword [rsi + 0x10], 1
mov eax, 1
jmp 0x14001bc14
mov eax, 4
mov r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret