Function at 0x140019350
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 [0x140028040]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor edi, edi
mov dword [rbp - 0x79], edi
xor ecx, ecx
cmp dword [0x1400287cc], ecx
jle 0x1400193ba
xor edx, edx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [0x1400287e8]
mov byte [rax + rdx + 0x18], dil
inc ecx
lea rdx, [rdx + 0x70]
cmp ecx, dword [0x1400287cc]
jl 0x1400193a0
cmp dword [0x1400287c4], edi
je 0x140019625
call fcn.140015f50
cmp dword [0x140028768], 0
je 0x140019cd0
mov edx, dword [0x1400287c4]
lea rcx, [0x1400237d8]
call fcn.1400010a0
lea rcx, [0x1400237f0]
call fcn.1400010a0
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x31
je 0x140019422
cmp al, 0x32
je 0x140019a41
cmp al, 0x33
je 0x140019731
cmp al, 0x34
je 0x1400194d9
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x31
jne 0x140019400
inc edi
mov dword [rbp - 0x79], edi
mov ecx, 1
call fcn.14001aa30
call fcn.140015f50
dec dword [0x1400287c4]
lea rcx, [0x140023830]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
mov rbx, qword [0x1400287d8]
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.140015460
nop
lea rdx, [rbx - 0x30]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.140017a30
lea rcx, [0x1400217ec]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call fcn.14001b9f0
jmp 0x1400195fa
cmp dword [0x140028770], 0
jne 0x140019500
lea rcx, [0x1400238d0]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
jmp 0x1400195fa
lea rcx, [0x1400238e0]
call fcn.1400010a0
xor edi, edi
cmp dword [0x140028770], edi
jle 0x1400195ea
xor esi, esi
nop dword [rax]
lea r14d, [rdi + 1]
mov edx, r14d
lea rcx, [0x140021550]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp - 0x71], rax
mov rbx, qword [0x14002b590]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.140017a30
lea rcx, [0x140021554]
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 0x1400195d6
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 [0x140028770]
jl 0x140019520
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 [0x1400287c4], 0
jne 0x1400193c6
cmp edi, 2
jne 0x140019625
mov edx, 1
mov ecx, edx
call fcn.14001ac30
cmp dword [0x140028768], 0
je 0x140019cd0
mov eax, dword [0x1400287c8]
cmp eax, 4
jle 0x140019cd0
nop dword [rax]
nop dword [rax + rax]
lea edx, [rax - 4]
lea rcx, [0x140023950]
call fcn.1400010a0
lea rcx, [0x140023978]
call fcn.1400010a0
xor r14d, r14d
cmp dword [0x1400287c8], r14d
jle 0x140019706
xor edi, edi
mov esi, 1
mov edx, esi
lea rcx, [0x140021550]
call fcn.1400010a0
lea rax, [rbp - 0x69]
mov qword [rbp + 7], rax
mov rbx, qword [0x1400287d0]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.140017a30
inc r14d
add rdi, 0x70
inc esi
cmp r14d, dword [0x1400287c8]
jl 0x140019672
lea rcx, [0x140021554]
call fcn.1400010a0
call fcn.140017b40
cmp eax, 1
jl 0x140019728
cmp eax, dword [0x1400287c8]
jle 0x140019c35
lea rcx, [0x140023990]
jmp 0x14001970d
xor edi, edi
cmp dword [0x1400287cc], edi
jle 0x1400197c7
xor esi, esi
lea rax, [rbp - 0x69]
mov qword [rbp - 0x71], rax
mov rbx, qword [0x1400287e8]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.14001a5b0
test al, al
jne 0x1400197d8
inc edi
add rsi, 0x70
cmp edi, dword [0x1400287cc]
jl 0x140019741
lea rcx, [0x140023888]
call fcn.1400010a0
jmp 0x1400195ea
lea rcx, [0x140023858]
call fcn.1400010a0
lea rcx, [0x1400238a0]
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 [0x1400287cc], esi
jle 0x1400198d6
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 [0x1400287e8]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.14001a5b0
test al, al
je 0x1400198c3
cmp rdi, r14
je 0x1400198a8
mov dword [rdi], esi
add rdi, 4
mov qword [rbp + 0x17], rdi
jmp 0x1400198c0
lea r8, [rbp - 0x71]
mov rdx, rdi
lea rcx, [rbp + 0xf]
call fcn.140015770
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 [0x1400287cc]
jl 0x140019820
xor esi, esi
movsxd r13, r15d
mov rdi, qword [rbp + 0xf]
test r15d, r15d
jle 0x140019983
mov r12d, 1
nop
mov edx, r12d
lea rcx, [0x140021550]
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 [0x1400287e8]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.140017a30
inc r12d
inc rsi
cmp rsi, r13
jl 0x1400198f0
lea rcx, [0x140021554]
call fcn.1400010a0
call fcn.140017b40
cmp eax, 1
jl 0x1400199f7
cmp eax, r15d
jg 0x1400199f7
cdqe
lea rbx, [rdi + rax*4]
movsxd r8, dword [rbx - 4]
imul r9, r8, 0x70
mov rax, qword [0x1400287e8]
cmp byte [r9 + rax + 0x18], 0
je 0x1400199d6
lea rcx, [0x1400238b8]
call fcn.1400010a0
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
jmp 0x1400199f7
mov edx, 1
mov ecx, r8d
call qword [r9 + rax + 0x60]
movsxd rax, dword [rbx - 4]
imul rcx, rax, 0x70
mov rax, qword [0x1400287e8]
mov byte [rcx + rax + 0x18], 1
test rdi, rdi
je 0x1400195f7
sub r14, rdi
sar r14, 2
lea rdx, [r14*4]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140019a34
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140019c2e
mov rcx, rdi
call fcn.14001efcc
jmp 0x1400195f7
xor ecx, ecx
mov edx, dword [0x1400287c8]
test edx, edx
jle 0x140019a67
mov rax, qword [0x1400287d0]
add rax, 8
cmp dword [rax], 3
jne 0x140019a73
inc ecx
add rax, 0x70
cmp ecx, edx
jl 0x140019a58
lea rcx, [0x140023840]
jmp 0x1400194e9
lea rcx, [0x140023858]
call fcn.1400010a0
lea rcx, [0x140023870]
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 [0x1400287c8]
test r8d, r8d
jle 0x140019b03
xor eax, eax
mov rdx, qword [rbp + 0x17]
cdqe
imul rcx, rax, 0x70
mov rax, qword [0x1400287d0]
cmp dword [rcx + rax + 8], 3
je 0x140019af7
cmp rdx, rdi
je 0x140019ad8
mov dword [rdx], ebx
add rdx, 4
mov qword [rbp + 0x17], rdx
jmp 0x140019aed
lea r8, [rbp - 0x71]
lea rcx, [rbp + 0xf]
call fcn.140015770
mov rdi, qword [rbp + 0x1f]
mov rdx, qword [rbp + 0x17]
inc r14d
mov r8d, dword [0x1400287c8]
inc ebx
mov dword [rbp - 0x71], ebx
mov eax, ebx
cmp ebx, r8d
jl 0x140019ab3
xor r15d, r15d
movsxd r13, r14d
mov rsi, qword [rbp + 0xf]
test r14d, r14d
jle 0x140019bb3
mov r12d, 1
nop dword [rax]
mov edx, r12d
lea rcx, [0x140021550]
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 [0x1400287d0]
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.140015460
nop
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x29]
call fcn.140015460
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.140017a30
inc r12d
inc r15
cmp r15, r13
jl 0x140019b20
lea rcx, [0x140021554]
call fcn.1400010a0
call fcn.140017b40
cmp eax, 1
jl 0x140019be8
cmp eax, r14d
jg 0x140019be8
cdqe
movsxd rcx, dword [rsi + rax*4 - 4]
imul r8, rcx, 0x70
xor edx, edx
mov rax, qword [0x1400287d0]
call qword [r8 + rax + 0x60]
nop
test rsi, rsi
je 0x1400195f7
sub rdi, rsi
sar rdi, 2
lea rdx, [rdi*4]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140019c21
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140019c2e
mov rcx, rsi
call fcn.14001efcc
jmp 0x1400195f7
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 [0x1400287d0]
mov dword [rax + rbx + 0x10], 3
mov r8, qword [0x1400287d0]
add r8, rbx
mov rax, qword [0x14002b598]
cmp rax, qword [0x14002b5a0]
je 0x140019c7d
mov rdx, r8
mov rcx, rax
call fcn.140001370
add qword [0x14002b598], 0x70
jmp 0x140019c8c
mov rdx, rax
lea rcx, [0x14002b590]
call fcn.140015900
mov r8, qword [0x1400287d0]
add r8, rbx
lea rdx, [rbp - 0x71]
lea rcx, [0x1400287d0]
call fcn.140015310
dec dword [0x1400287c8]
inc dword [0x140028770]
mov ecx, 1
call fcn.14001a050
mov eax, dword [0x1400287c8]
cmp eax, 4
jg 0x140019640
call fcn.140015f50
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14001ef70
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