Function at 0x4aba40
Capabilities:
Load assembly via iassembly

Disassembly:
lea r12, [rsp - 0x158]
cmp r12, qword [r14 + 0x10]
jbe 0x4ac87e
push rbp
mov rbp, rsp
sub rsp, 0x1d0
movq qword [rsp + 0x1c8], xmm15
mov byte [rsp + 0x67], 0
mov rax, qword [0x0058d230]
mov rbx, qword [0x0058d238]
mov rcx, qword [0x0058d240]
mov edi, 5
call sym.main.shuffleStratagems
test rbx, rbx
jbe 0x4ac865
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x160], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x170], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsp + 0x180], xmm0
mov rdx, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x170]
mov rdi, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
mov r8, qword [rsp + 0x188]
mov rax, rdx
call sym.main.Stratagem.getKeys
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xa0], rbx
mov edx, dword [0x005863d0]
mov r9d, dword [0x005863cc]
mov r10, qword [0x0059c0a0]
mov r11, qword [r10]
lea rcx, [0x004dd071]
mov edi, 0xe
mov eax, r9d
mov ebx, edx
mov rdx, r10
call r11
lea rdx, sym.github.com_gen2brain_raylib_go_raylib.CloseWindow
mov qword [rsp + 0x1c8], rdx
mov byte [rsp + 0x67], 1
mov rdx, qword [0x0059c370]
mov r9, qword [rdx]
nop
mov eax, 0x3c
nop
call r9
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xc8]
xor edx, edx
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x78]
xor edi, edi
xor r8d, r8d
mov r9d, 0x64
xor r10d, r10d
jmp 0x4abbe7
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov rdx, qword [0x0059c260]
mov rbx, qword [rdx]
call rbx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x78], rsi
mov r11, qword [0x0059c0b0]
mov r12, qword [r11]
mov rdx, r11
call r12
test al, al
jne 0x4ac592
cmp byte [0x006225a8], 0
jne 0x4abec8
mov rax, qword [rsp + 0x90]
lea r9, [rax + 1]
mov rcx, qword [rsp + 0x78]
nop dword [rax]
cmp rcx, r9
jle 0x4abe0e
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0xa0]
nop dword [rax]
cmp r10, r11
jl 0x4abd49
cmp rcx, r9
jbe 0x4ac85a
mov qword [rsp + 0xb8], r9
lea rdx, [rax + rax*2]
shl rdx, 4
mov r9, qword [rsp + 0xc0]
lea r10, [rdx + r9]
lea r10, [r10 + 0x30]
movups xmm0, xmmword [r10]
lea r10, [rdx + r9]
lea r10, [r10 + 0x40]
lea rdx, [rdx + r9]
lea rdx, [rdx + 0x50]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [r10]
movups xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rdx]
movups xmmword [rsp + 0xf0], xmm0
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
call sym.main.Stratagem.getKeys
mov r9, qword [rsp + 0x70]
add r9, 0xf
mov rdi, qword [rsp + 0x80]
add rdi, 0xf
cmp r9, 0x64
mov edx, 0x64
cmovg r9, rdx
xor r10d, r10d
mov rcx, qword [rsp + 0xb8]
jmp 0x4abd69
mov rbx, r11
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x80]
mov r9, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], r10
mov rdx, qword [0x0059c490]
mov rsi, qword [rdx]
call rsi
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
cmp rcx, rbx
jae 0x4ac84f
mov rsi, qword [rsp + 0xc8]
mov rdi, qword [rsi + rcx*8]
cmp eax, edi
jne 0x4abdd4
lea rax, [rcx + 1]
mov rcx, rax
jmp 0x4abde1
cmp eax, 0x100
je 0x4abde1
test eax, eax
je 0x4abde1
xor ecx, ecx
mov rax, rsi
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x80]
mov r8, rcx
mov r9, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x90]
jmp 0x4abebe
mov rax, qword [0x0058d230]
mov rbx, qword [0x0058d238]
mov rcx, qword [0x0058d240]
mov edi, 5
call sym.main.shuffleStratagems
test rbx, rbx
jbe 0x4ac845
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x100], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x110], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsp + 0x120], xmm0
mov rdx, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x120]
mov r8, qword [rsp + 0x128]
mov rax, rdx
call sym.main.Stratagem.getKeys
xor ecx, ecx
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x80]
xor r8d, r8d
mov r9d, 0x64
mov r10, qword [rsp + 0x68]
jmp 0x4abfda
mov rdx, qword [0x0059c468]
mov rcx, qword [rdx]
mov eax, 0x52
call rcx
test al, al
jne 0x4abf25
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x80]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
nop dword [rax]
jmp 0x4abfda
mov rax, qword [0x0058d230]
mov rbx, qword [0x0058d238]
mov rcx, qword [0x0058d240]
mov edi, 5
nop
call sym.main.shuffleStratagems
test rbx, rbx
jbe 0x4ac837
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x78], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsp + 0x150], xmm0
mov rdx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x150]
mov r8, qword [rsp + 0x158]
mov rax, rdx
call sym.main.Stratagem.getKeys
mov byte [0x006225a8], 0
xor ecx, ecx
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
xor edi, edi
xor r8d, r8d
mov r9d, 0x64
xor r10d, r10d
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xa0], rbx
mov r11, qword [0x0059c258]
mov r12, qword [r11]
mov rdx, r11
call r12
mov eax, dword [0x005863d8]
mov dword [rsp + 0x5f], eax
mov rdx, qword [0x0059c250]
mov rax, qword [rdx]
mov rcx, qword [rsp + 0x5f]
mov rbx, rax
mov rax, rcx
call rbx
cmp byte [0x006225a8], 0
je 0x4ac1ac
mov r9d, dword [0x005863d4]
mov r10d, dword [0x005863cc]
mov dword [rsp + 0x5b], r9d
xorps xmm0, xmm0
cvtsi2ss xmm0, r10d
movss xmm1, dword [0x00505f34]
divss xmm0, xmm1
cvttss2si ecx, xmm0
add ecx, 0x19
mov rdx, qword [0x0059cb58]
mov r9, qword [rdx]
mov r8, qword [rsp + 0x5b]
lea rax, [0x004db692]
mov ebx, 9
mov edi, 0xc8
mov esi, 0x14
call r9
movups xmmword [rsp + 0x1b0], xmm15
mov rax, qword [rsp + 0x80]
nop
call sym.runtime.convT64
lea r9, [0x004bbd60]
mov qword [rsp + 0x1b0], r9
mov qword [rsp + 0x1b8], rax
lea rax, [0x004dd07f]
mov ebx, 0xe
lea rcx, [rsp + 0x1b0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Sprintf
mov r9d, dword [0x005863d4]
mov r10d, dword [0x005863cc]
mov dword [rsp + 0x57], r9d
xorps xmm0, xmm0
cvtsi2ss xmm0, r10d
movss xmm1, dword [0x00505f34]
divss xmm0, xmm1
cvttss2si ecx, xmm0
add ecx, 0xfffffff9
mov rdx, qword [0x0059cb58]
mov r9, qword [rdx]
mov r8, qword [rsp + 0x57]
mov edi, 0xe6
mov esi, 0x14
call r9
mov r9d, dword [0x005863d4]
mov r10d, dword [0x005863cc]
mov dword [rsp + 0x53], r9d
xorps xmm0, xmm0
cvtsi2ss xmm0, r10d
movss xmm1, dword [0x00505f34]
divss xmm0, xmm1
cvttss2si ecx, xmm0
add ecx, 0xffffff83
mov rdx, qword [0x0059cb58]
mov r9, qword [rdx]
mov r8, qword [rsp + 0x53]
lea rax, [0x004e5528]
mov ebx, 0x24
mov edi, 0x10e
mov esi, 0x14
call r9
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
jmp 0x4abb92
movups xmmword [rsp + 0x190], xmm15
movups xmmword [rsp + 0x1a0], xmm15
mov rax, qword [rsp + 0x90]
lea rcx, [rax + 1]
mov rax, rcx
call sym.runtime.convT64
lea rcx, [0x004bbd60]
mov qword [rsp + 0x190], rcx
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x78]
call sym.runtime.convT64
lea rcx, [0x004bbd60]
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x1a8], rax
lea rax, [0x004daf99]
mov ebx, 5
mov edi, 2
mov rsi, rdi
lea rcx, [rsp + 0x190]
call sym.fmt.Sprintf
mov ecx, dword [0x005863d4]
mov dword [rsp + 0x4f], ecx
mov rdx, qword [0x0059cb58]
mov rcx, qword [rdx]
mov r8, qword [rsp + 0x4f]
mov edi, 0x14
mov esi, edi
mov r9, rcx
mov ecx, esi
call r9
mov ecx, dword [0x005863d4]
mov dword [rsp + 0x4b], ecx
mov rdx, qword [0x0059cb58]
mov rcx, qword [rdx]
mov r8, qword [rsp + 0x4b]
lea rax, [0x004db0b9]
mov ebx, 6
mov edi, 0x32
mov esi, 0x14
mov r9, rcx
mov ecx, esi
call r9
movups xmmword [rsp + 0x1b0], xmm15
mov rax, qword [rsp + 0x80]
nop dword [rax + rax]
call sym.runtime.convT64
lea rcx, [0x004bbd60]
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x1b8], rax
lea rax, [rsp + 0x1b0]
mov ebx, 1
mov rcx, rbx
call sym.fmt.Sprint
mov ecx, dword [0x005863d4]
mov dword [rsp + 0x47], ecx
mov rdx, qword [0x0059cb58]
mov rcx, qword [rdx]
mov r8, qword [rsp + 0x47]
mov edi, 0x46
mov esi, 0x14
mov r9, rcx
mov ecx, esi
call r9
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
jae 0x4ac832
lea r8, [rax + rax*2]
shl r8, 4
mov qword [rsp + 0xb8], r8
mov r9, qword [rsp + 0xc0]
mov r10, qword [r9 + r8 + 0x10]
mov qword [rsp + 0x1c0], r10
mov rbx, qword [r9 + r8 + 0x18]
mov qword [rsp + 0xb0], rbx
xor edx, edx
jmp 0x4ac5e0
mov r10, qword [r9 + r8 + 0x28]
movzx r11d, byte [0x005863dc]
movzx r12d, byte [0x005863dd]
movzx r13d, byte [0x005863de]
movzx r15d, byte [0x005863df]
mov rdx, qword [r9 + r8 + 0x20]
cmp r10, 0x1f
jne 0x4ac3f8
mov byte [rsp + 0x66], r15b
mov byte [rsp + 0x65], r13b
mov byte [rsp + 0x64], r12b
mov byte [rsp + 0x63], r11b
mov rax, rdx
lea rbx, [0x004e427e]
mov ecx, 0x1f
nop
call sym.runtime.memequal
test al, al
je 0x4ac3c3
mov r15d, 0xffffffff
mov r13d, 0xffffffc9
mov r12d, 0xffffffad
mov r11d, 0x49
jmp 0x4ac3f8
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
mov r8, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xc0]
movzx r11d, byte [rsp + 0x63]
movzx r12d, byte [rsp + 0x64]
movzx r13d, byte [rsp + 0x65]
movzx r15d, byte [rsp + 0x66]
mov r8d, dword [0x005863cc]
mov byte [rsp + 0x43], r11b
mov byte [rsp + 0x44], r12b
mov byte [rsp + 0x45], r13b
mov byte [rsp + 0x46], r15b
mov r9d, r8d
shr r8d, 0x1f
lea eax, [r9 + r8]
sar eax, 1
add eax, 0xffffff1d
mov rdx, qword [0x0059c668]
mov r8, qword [rdx]
mov rsi, qword [rsp + 0x43]
mov ebx, 0x118
mov ecx, 0x78
mov edi, ecx
call r8
mov r8d, dword [0x005863d4]
mov r9, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xc0]
mov rax, qword [r10 + r9]
mov rbx, qword [r10 + r9 + 8]
mov r11d, dword [0x005863cc]
mov dword [rsp + 0x3f], r8d
mov r8d, r11d
shr r11d, 0x1f
lea ecx, [r8 + r11]
sar ecx, 1
add ecx, 0xffffff9c
mov rdx, qword [0x0059cb58]
mov r8, qword [rdx]
mov r11, qword [rsp + 0x3f]
mov edi, 0x122
mov esi, 0x1e
mov r12, r8
mov r8, r11
nop
call r12
mov r8d, dword [0x005863d4]
mov r9, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xc0]
mov rax, qword [r10 + r9 + 0x20]
mov rbx, qword [r10 + r9 + 0x28]
mov r9d, dword [0x005863cc]
mov dword [rsp + 0x3b], r8d
mov r8d, r9d
shr r9d, 0x1f
lea ecx, [r8 + r9]
sar ecx, 1
add ecx, 0xffffff9c
mov rdx, qword [0x0059cb58]
mov r8, qword [rdx]
mov r9, qword [rsp + 0x3b]
mov edi, 0x140
mov esi, 0x17
mov r11, r8
mov r8, r9
nop
call r11
mov r8, qword [rsp + 0x70]
test r8, r8
jg 0x4ac514
mov byte [0x006225a8], 1
mov r9, qword [rsp + 0x68]
cmp r9, 8
jl 0x4ac528
lea r9, [r8 - 1]
xor r10d, r10d
jmp 0x4ac52f
lea r10, [r9 + 1]
mov r9, r8
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x68], r10
mov r8d, dword [0x005863c8]
mov r11d, dword [0x005863cc]
mov dword [rsp + 0x37], r8d
mov r8d, r11d
shr r11d, 0x1f
lea eax, [r8 + r11]
sar eax, 1
add eax, 0xffffff29
mov rcx, r9
shl rcx, 2
mov rdx, qword [0x0059c668]
mov r8, qword [rdx]
mov rsi, qword [rsp + 0x37]
mov ebx, 0x226
mov edi, 0x23
nop
call r8
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
jmp 0x4abb92
mov byte [rsp + 0x67], 0
call sym.github.com_gen2brain_raylib_go_raylib.CloseWindow
add rsp, 0x1d0
pop rbp
ret
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x1c0]
mov rdx, qword [rsp + 0xa8]
nop word [rax + rax]
cmp rdx, rbx
jge 0x4ac34b
movzx esi, byte [r10 + rdx]
cmp esi, 0x80
jge 0x4ac5fc
lea r11, [rdx + 1]
jmp 0x4ac649
mov qword [rsp + 0x88], rdx
mov rax, r10
mov rcx, rdx
call sym.runtime.decoderune
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x1c0]
mov esi, eax
mov r11, rbx
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb0]
movzx r12d, byte [0x005863d4]
movzx r13d, byte [0x005863d5]
movzx r15d, byte [0x005863d6]
movzx edi, byte [0x005863d7]
mov r10, qword [rsp + 0x98]
cmp r10, rdx
jle 0x4ac694
movzx r12d, byte [0x005863c8]
movzx r13d, byte [0x005863c9]
movzx r15d, byte [0x005863ca]
movzx edi, byte [0x005863cb]
mov qword [rsp + 0xa8], r11
nop dword [rax]
cmp esi, 0x6c
jg 0x4ac740
cmp esi, 0x64
je 0x4ac6fb
cmp esi, 0x6c
jne 0x4ac74e
mov rsi, qword [0x00586418]
sub rsi, qword [r9 + r8 + 0x18]
mov r10, qword [0x00586428]
imul rdx, r10
add rdx, rsi
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
mov rdx, qword [0x00586420]
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
mov eax, r12d
mov ebx, r13d
mov ecx, r15d
call sym.main.DrawLeftArrow
jmp 0x4ac5a5
mov rsi, qword [0x00586418]
sub rsi, qword [r9 + r8 + 0x18]
mov r10, qword [0x00586428]
imul rdx, r10
add rdx, rsi
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
mov rdx, qword [0x00586420]
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
mov eax, r12d
mov ebx, r13d
mov ecx, r15d
call sym.main.DrawDownArrow
jmp 0x4ac5a5
cmp esi, 0x72
je 0x4ac7ee
cmp esi, 0x75
je 0x4ac7aa
movzx eax, byte [0x005863dc]
movzx ebx, byte [0x005863dd]
movzx ecx, byte [0x005863de]
movzx edi, byte [0x005863df]
mov rsi, qword [0x00586418]
sub rsi, qword [r9 + r8 + 0x18]
mov r10, qword [0x00586428]
imul rdx, r10
add rdx, rsi
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
mov rdx, qword [0x00586420]
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
nop dword [rax + rax]
call sym.main.DrawUpArrow
jmp 0x4ac5a5
mov rsi, qword [0x00586418]
sub rsi, qword [r9 + r8 + 0x18]
mov r10, qword [0x00586428]
imul rdx, r10
add rdx, rsi
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
mov rdx, qword [0x00586420]
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
mov eax, r12d
mov ebx, r13d
mov ecx, r15d
call sym.main.DrawUpArrow
jmp 0x4ac5a5
mov rsi, qword [0x00586418]
sub rsi, qword [r9 + r8 + 0x18]
mov r10, qword [0x00586428]
imul rdx, r10
add rdx, rsi
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
mov rdx, qword [0x00586420]
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
mov eax, r12d
mov ebx, r13d
mov ecx, r15d
call sym.main.DrawRightArrow
jmp 0x4ac5a5
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
nop dword [rax]
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
mov rax, rcx
mov rcx, rbx
call sym.runtime.panicIndex
mov rax, r9
nop dword [rax]
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
nop
call sym.runtime.deferreturn
add rsp, 0x1d0
pop rbp
ret
nop
call sym.runtime.morestack_noctxt.abi0
jmp sym.main.main