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

Disassembly:
push rbx
push r12
push r14
sub rsp, 0x1f0
mov rax, qword [0x140031008]
xor rax, rsp
mov qword [rsp + 0x1d0], rax
mov rbx, qword [rcx]
xor edx, edx
lea rcx, [rsp + 0x34]
mov dword [rsp + 0x30], 0x5b
mov r8d, 0xc4
mov r14d, 0xa
call fcn.140015400
lea rdx, str.History
lea rcx, [rsp + 0x32]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [0x14002a480]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movzx r9d, word [rsp + 0x30]
xor r12d, r12d
test r9w, r9w
je 0x1400030d1
movzx eax, word [rbx]
mov r8d, r12d
test ax, ax
je 0x1400030ce
movzx r10d, word [rsp + 0x32]
lea rdx, [rbx + 2]
cmp ax, r9w
je 0x140003095
mov rbx, rdx
jmp 0x1400030c6
lea rax, [rsp + 0x32]
mov r8, rbx
mov rbx, rdx
test r10w, r10w
je 0x1400030c1
movzx ecx, word [rbx]
test cx, cx
je 0x140003113
cmp cx, word [rax]
jne 0x140003113
add rax, 2
add rbx, 2
cmp word [rax], r12w
jne 0x1400030a6
test r8, r8
jne 0x1400030ce
movzx eax, word [rbx]
test ax, ax
jne 0x140003086
mov rbx, r8
mov qword [rsp + 0x1e8], rdi
test rbx, rbx
je 0x140003121
mov r9d, 1
mov dword [rsp + 0x20], r12d
lea r8, [rsp + 0x20]
mov rcx, rbx
lea rdx, str.MaxMemories
call fcn.140002100
mov r14d, dword [rsp + 0x20]
cmp r14d, 0x64
ja 0x14000311b
test r14d, r14d
jle 0x1400031b7
jmp 0x140003121
mov rbx, rdx
mov r8, r12
jmp 0x1400030c6
mov r14d, 0xa
call qword [sym.imp.KERNEL32.dll_GetTickCount]
test dword [0x14003314c], 0x400
mov edi, eax
je 0x140003161
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, 0xbb8
ja 0x1400031b4
test dword [0x14003314c], 0x400
jne 0x140003135
movsxd rdi, r14d
shl rdi, 3
cmp qword [0x1400372f8], r12
jne 0x14000318a
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
jmp 0x1400031a8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x1400372f8]
mov r9, rdi
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov qword [0x1400372f8], rax
test rax, rax
jne 0x1400031b7
mov r14d, r12d
mov qword [rsp + 0x218], rbp
mov qword [rsp + 0x220], rsi
mov qword [rsp + 0x1e0], r15
mov dword [0x140031a80], r14d
test rbx, rbx
je 0x14000340c
mov r9d, 3
mov dword [rsp + 0x20], r12d
lea r8, [rsp + 0x20]
mov rcx, rbx
lea rdx, str.Flag
call fcn.140002100
test eax, eax
je 0x14000320c
mov eax, dword [rsp + 0x20]
mov dword [0x140031a84], eax
test r14d, r14d
je 0x140003324
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [0x14003314c]
bt eax, 0xa
jae 0x140003260
nop dword [rax]
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, 0xbb8
ja 0x140003324
mov eax, dword [0x14003314c]
bt eax, 0xa
jb 0x140003230
mov rsi, qword [0x1400372f8]
bts eax, 0xa
mov dword [0x14003314c], eax
test r14d, r14d
jle 0x14000331a
mov edi, 1
nop
lea rdx, str.Item_02u
mov ebp, edi
test edi, edi
js 0x1400032ad
mov r8d, edi
lea rdx, str.Item_02u
lea rcx, [rsp + 0x100]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x100]
mov r9d, 3
mov dword [rsi], r12d
mov r8, rsi
mov rcx, rbx
call fcn.140002100
test eax, eax
je 0x140003314
lea rdx, str.Option_02u
test edi, edi
js 0x1400032f0
mov r8d, edi
lea rdx, str.Option_02u
lea rcx, [rsp + 0x100]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x100]
lea r8, [rsi + 4]
mov r9d, 3
mov rcx, rbx
mov dword [r8], r12d
call fcn.140002100
inc edi
add rsi, 8
cmp ebp, r14d
jl 0x140003280
mov eax, dword [0x14003314c]
btr eax, 0xa
mov dword [0x14003314c], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx - 4]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15d, r12d
mov r14, r12
mov rbp, rax
mov esi, 1
nop word [rax + rax]
lea rdx, str.Excluded_03u
test esi, esi
js 0x14000337b
mov r8d, esi
lea rdx, str.Excluded_03u
lea rcx, [rsp + 0x100]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x100]
mov r9d, 3
mov dword [rsp + 0x20], r12d
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.140002100
test eax, eax
je 0x1400033d8
movsxd rdi, esi
shl rdi, 2
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r9, rdi
mov r8, rbp
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rbp, rax
test rax, rax
je 0x1400033d6
mov eax, dword [rsp + 0x20]
inc r15d
inc esi
mov dword [r14 + rbp], eax
add r14, 4
jmp 0x140003350
jmp 0x140003411
mov dword [0x1400330c0], r15d
test rbp, rbp
je 0x14000340c
cmp qword [0x140033568], r12
je 0x140003405
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x140033568]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [0x140033568], rbp
mov eax, 1
mov r15, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x1e8]
mov rsi, qword [rsp + 0x220]
mov rbp, qword [rsp + 0x218]
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.140013ba0
add rsp, 0x1f0
pop r14
pop r12
pop rbx
ret