Function at 0x14001b580
Capabilities:
Execute command

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
mov rax, qword [0x14002b040]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor edi, edi
mov dword [rbp - 0x79], edi
xor ecx, ecx
cmp dword [0x14002b7cc], ecx
jle 0x14001b5ea
xor edx, edx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [0x14002b7e8]
mov byte [rax + rdx + 0x18], dil
inc ecx
lea rdx, [rdx + 0x70]
cmp ecx, dword [0x14002b7cc]
jl 0x14001b5d0
cmp dword [0x14002b7c4], edi
je 0x14001b855
call fcn.1400179c0
cmp dword [0x14002b768], 0
je 0x14001bf20
mov edx, dword [0x14002b7c4]
lea rcx, [0x1400263c8]
call fcn.1400010a0
lea rcx, [0x1400263e0]
call fcn.1400010a0
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x31
je 0x14001b65a
cmp al, 0x32
je 0x14001bc71
cmp al, 0x33
je 0x14001b961
cmp al, 0x34
je 0x14001b71b
cmp al, 0x35
je 0x14001b711
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x31
jne 0x14001b630
inc edi
mov dword [rbp - 0x79], edi
mov ecx, 1
call fcn.14001cc80
call fcn.1400179c0
dec dword [0x14002b7c4]
lea rcx, [0x140026428]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
mov rbx, qword [0x14002b7d8]
mov eax, dword [rbx - 0x70]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx - 0x6c]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx - 0x68]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx - 0x64]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx - 0x60]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx - 0x5c]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx - 0x58]
mov byte [rbp - 0x51], al
lea rdx, [rbx - 0x50]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx - 0x30]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx - 0x10]
mov qword [rbp - 9], rax
mov rax, qword [rbx - 8]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.140019650
lea rcx, [0x14002469c]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.14001dfa0
jmp 0x14001b82a
call fcn.140017d80
jmp 0x14001b82a
cmp dword [0x14002b770], 0
jne 0x14001b730
lea rcx, [0x1400264c8]
jmp 0x14001bc9e
lea rcx, [0x1400264d8]
call fcn.1400010a0
xor edi, edi
cmp dword [0x14002b770], edi
jle 0x14001b81a
xor esi, esi
nop dword [rax]
lea r14d, [rdi + 1]
mov edx, r14d
lea rcx, [0x140024548]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp - 0x71], rax
mov rbx, qword [0x14002e590]
add rbx, rsi
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.140019650
lea rcx, [0x14002454c]
call fcn.1400010a0
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub edi, eax
cmp edi, 4
jne 0x14001b806
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov edi, r14d
add rsi, 0x70
cmp r14d, dword [0x14002b770]
jl 0x14001b750
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov edi, dword [rbp - 0x79]
cmp dword [0x14002b7c4], 0
jne 0x14001b5f6
cmp edi, 2
jne 0x14001b855
mov edx, 1
mov ecx, edx
call fcn.14001ce80
cmp dword [0x14002b768], 0
je 0x14001bf20
mov eax, dword [0x14002b7c8]
cmp eax, 4
jle 0x14001bf20
nop dword [rax]
nop dword [rax + rax]
lea edx, [rax - 4]
lea rcx, [0x140026548]
call fcn.1400010a0
lea rcx, [0x140026570]
call fcn.1400010a0
xor r14d, r14d
cmp dword [0x14002b7c8], r14d
jle 0x14001b936
xor edi, edi
mov esi, 1
mov edx, esi
lea rcx, [0x140024548]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
mov rbx, qword [0x14002b7d0]
add rbx, rdi
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.140019650
inc r14d
add rdi, 0x70
inc esi
cmp r14d, dword [0x14002b7c8]
jl 0x14001b8a2
lea rcx, [0x14002454c]
call fcn.1400010a0
call fcn.140019790
cmp eax, 1
jl 0x14001b958
cmp eax, dword [0x14002b7c8]
jle 0x14001be85
lea rcx, [0x140026588]
jmp 0x14001b93d
xor edi, edi
cmp dword [0x14002b7cc], edi
jle 0x14001b9f7
xor esi, esi
lea rax, [rbp - 0x69]
mov qword [rbp - 0x71], rax
mov rbx, qword [0x14002b7e8]
add rbx, rsi
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.14001c800
test al, al
jne 0x14001ba08
inc edi
add rsi, 0x70
cmp edi, dword [0x14002b7cc]
jl 0x14001b971
lea rcx, [0x140026480]
call fcn.1400010a0
jmp 0x14001b81a
lea rcx, [0x140026450]
call fcn.1400010a0
lea rcx, [0x140026498]
call fcn.1400010a0
xor r15d, r15d
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xf], xmm1
xor r14d, r14d
mov qword [rbp + 0x1f], r14
xor esi, esi
mov dword [rbp - 0x71], esi
cmp dword [0x14002b7cc], esi
jle 0x14001bb06
xor eax, eax
mov rdi, qword [rbp + 0x17]
nop dword [rax]
lea rcx, [rbp - 0x69]
mov qword [rbp + 7], rcx
cdqe
imul rbx, rax, 0x70
add rbx, qword [0x14002b7e8]
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.14001c800
test al, al
je 0x14001baf3
cmp rdi, r14
je 0x14001bad8
mov dword [rdi], esi
add rdi, 4
mov qword [rbp + 0x17], rdi
jmp 0x14001baf0
lea r8, [rbp - 0x71]
mov rdx, rdi
lea rcx, [rbp + 0xf]
call fcn.1400171e0
mov r14, qword [rbp + 0x1f]
mov rdi, qword [rbp + 0x17]
inc r15d
inc esi
mov dword [rbp - 0x71], esi
mov eax, esi
cmp esi, dword [0x14002b7cc]
jl 0x14001ba50
xor esi, esi
movsxd r13, r15d
mov rdi, qword [rbp + 0xf]
test r15d, r15d
jle 0x14001bbb3
mov r12d, 1
nop
mov edx, r12d
lea rcx, [0x140024548]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
movsxd rax, dword [rdi + rsi*4]
imul rbx, rax, 0x70
add rbx, qword [0x14002b7e8]
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.140019650
inc r12d
inc rsi
cmp rsi, r13
jl 0x14001bb20
lea rcx, [0x14002454c]
call fcn.1400010a0
call fcn.140019790
cmp eax, 1
jl 0x14001bc27
cmp eax, r15d
jg 0x14001bc27
cdqe
lea rbx, [rdi + rax*4]
movsxd r8, dword [rbx - 4]
imul r9, r8, 0x70
mov rax, qword [0x14002b7e8]
cmp byte [r9 + rax + 0x18], 0
je 0x14001bc06
lea rcx, [0x1400264b0]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
jmp 0x14001bc27
mov edx, 1
mov ecx, r8d
call qword [r9 + rax + 0x60]
movsxd rax, dword [rbx - 4]
imul rcx, rax, 0x70
mov rax, qword [0x14002b7e8]
mov byte [rcx + rax + 0x18], 1
test rdi, rdi
je 0x14001b827
sub r14, rdi
sar r14, 2
lea rdx, [r14*4]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14001bc64
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001be7e
mov rcx, rdi
call fcn.14002181c
jmp 0x14001b827
xor ecx, ecx
mov edx, dword [0x14002b7c8]
test edx, edx
jle 0x14001bc97
mov rax, qword [0x14002b7d0]
add rax, 8
cmp dword [rax], 3
jne 0x14001bcb5
inc ecx
add rax, 0x70
cmp ecx, edx
jl 0x14001bc88
lea rcx, [0x140026438]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
jmp 0x14001b82a
lea rcx, [0x140026450]
call fcn.1400010a0
lea rcx, [0x140026468]
call fcn.1400010a0
xor r14d, r14d
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xf], xmm1
xor edi, edi
mov qword [rbp + 0x1f], rdi
xor ebx, ebx
mov dword [rbp - 0x71], ebx
mov r8d, dword [0x14002b7c8]
test r8d, r8d
jle 0x14001bd50
xor eax, eax
mov rdx, qword [rbp + 0x17]
nop word [rax + rax]
cdqe
imul rcx, rax, 0x70
mov rax, qword [0x14002b7d0]
cmp dword [rcx + rax + 8], 3
je 0x14001bd44
cmp rdx, rdi
je 0x14001bd25
mov dword [rdx], ebx
add rdx, 4
mov qword [rbp + 0x17], rdx
jmp 0x14001bd3a
lea r8, [rbp - 0x71]
lea rcx, [rbp + 0xf]
call fcn.1400171e0
mov rdi, qword [rbp + 0x1f]
mov rdx, qword [rbp + 0x17]
inc r14d
mov r8d, dword [0x14002b7c8]
inc ebx
mov dword [rbp - 0x71], ebx
mov eax, ebx
cmp ebx, r8d
jl 0x14001bd00
xor r15d, r15d
movsxd r13, r14d
mov rsi, qword [rbp + 0xf]
test r14d, r14d
jle 0x14001be03
mov r12d, 1
nop dword [rax]
mov edx, r12d
lea rcx, [0x140024548]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
movsxd rax, dword [rsi + r15*4]
imul rbx, rax, 0x70
add rbx, qword [0x14002b7d0]
mov eax, dword [rbx]
mov dword [rbp - 0x69], eax
mov eax, dword [rbx + 4]
mov dword [rbp - 0x65], eax
mov eax, dword [rbx + 8]
mov dword [rbp - 0x61], eax
mov eax, dword [rbx + 0xc]
mov dword [rbp - 0x5d], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x59], eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0x55], eax
movzx eax, byte [rbx + 0x18]
mov byte [rbp - 0x51], al
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140016ed0
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140016ed0
mov rax, qword [rbx + 0x60]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x68]
mov qword [rbp - 1], rax
lea rcx, [rbp - 0x69]
call fcn.140019650
inc r12d
inc r15
cmp r15, r13
jl 0x14001bd70
lea rcx, [0x14002454c]
call fcn.1400010a0
call fcn.140019790
cmp eax, 1
jl 0x14001be38
cmp eax, r14d
jg 0x14001be38
cdqe
movsxd rcx, dword [rsi + rax*4 - 4]
imul r8, rcx, 0x70
xor edx, edx
mov rax, qword [0x14002b7d0]
call qword [r8 + rax + 0x60]
nop
test rsi, rsi
je 0x14001b827
sub rdi, rsi
sar rdi, 2
lea rdx, [rdi*4]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14001be71
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001be7e
mov rcx, rsi
call fcn.14002181c
jmp 0x14001b827
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cdqe
imul rbx, rax, 0x70
add rbx, 0xffffffffffffff90
mov rax, qword [0x14002b7d0]
mov dword [rax + rbx + 0x10], 3
mov r8, qword [0x14002b7d0]
add r8, rbx
mov rax, qword [0x14002e598]
cmp rax, qword [0x14002e5a0]
je 0x14001becd
mov rdx, r8
mov rcx, rax
call fcn.140001370
add qword [0x14002e598], 0x70
jmp 0x14001bedc
mov rdx, rax
lea rcx, [0x14002e590]
call fcn.140017370
mov r8, qword [0x14002b7d0]
add r8, rbx
lea rdx, [rbp - 0x71]
lea rcx, [0x14002b7d0]
call fcn.140016d80
dec dword [0x14002b7c8]
inc dword [0x14002b770]
mov ecx, 1
call fcn.14001c2a0
mov eax, dword [0x14002b7c8]
cmp eax, 4
jg 0x14001b870
call fcn.1400179c0
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1400217c0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret