Function at 0x180028d1c
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x350
mov r10, rcx
xor ecx, ecx
mov dword [rsp + 0x30], r8d
mov r14, rdx
mov dword [rsp + 0x1c0], r9d
lea r8d, [rcx + 1]
mov dword [rsp + 0x3a0], ecx
cmp r8, 0x64
jge 0x180029036
movsxd r9, dword [rsp + r8*4 + 0x1bc]
movsxd r11, dword [rsp + r8*4 + 0x2c]
dec r8
mov eax, r9d
sub eax, r11d
cmp eax, 0xa
jge 0x180028e4a
cmp r11d, r9d
je 0x180028e26
cmp eax, 3
jle 0x180028dd6
lea edx, [r9 - 4]
movsxd rcx, edx
cmp rcx, r11
jl 0x180028dd6
add edx, 4
movsxd rsi, dword [r10 + rcx*4]
mov ebx, edx
lea rax, [rcx + 4]
mov ebp, dword [r14 + rsi*4]
cmp edx, r9d
jg 0x180028dc7
mov edi, dword [r10 + rax*4]
cmp ebp, dword [r14 + rdi*4]
jbe 0x180028dc7
add ebx, 4
mov dword [r10 + rax*4 - 0x10], edi
add rax, 4
cmp ebx, r9d
jle 0x180028dac
dec rcx
dec edx
mov dword [r10 + rax*4 - 0x10], esi
cmp rcx, r11
jge 0x180028d99
lea edx, [r9 - 1]
movsxd rcx, edx
cmp rcx, r11
jl 0x180028e1f
inc edx
movsxd rsi, dword [r10 + rcx*4]
mov ebx, edx
lea rax, [rcx + 1]
mov ebp, dword [r14 + rsi*4]
cmp edx, r9d
jg 0x180028e10
mov edi, dword [r10 + rax*4]
cmp ebp, dword [r14 + rdi*4]
jbe 0x180028e10
inc ebx
mov dword [r10 + rax*4 - 4], edi
inc rax
cmp ebx, r9d
jle 0x180028df7
dec rcx
dec edx
mov dword [r10 + rax*4 - 4], esi
cmp rcx, r11
jge 0x180028de4
mov ecx, dword [rsp + 0x3a0]
test r8, r8
jg 0x180028d53
mov rbx, qword [rsp + 0x390]
add rsp, 0x350
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
imul ecx, ecx, 0x1dc5
mov eax, 0xaaaaaaab
inc ecx
and ecx, 0x7fff
mov dword [rsp + 0x3a0], ecx
mul ecx
shr edx, 1
lea eax, [rdx + rdx*2]
sub ecx, eax
jne 0x180028e75
mov ecx, dword [r10 + r11*4]
jmp 0x180028e92
cmp ecx, 1
jne 0x180028e8e
lea eax, [r9 + r11]
movsxd rcx, eax
sar rcx, 1
mov eax, dword [r10 + rcx*4]
mov edi, dword [r14 + rax*4]
jmp 0x180028e96
mov ecx, dword [r10 + r9*4]
mov edi, dword [r14 + rcx*4]
mov rdx, r9
mov r15d, r11d
mov r12d, r11d
mov dword [rsp + 0x3a8], r9d
mov esi, r9d
mov r13, r11
mov qword [rsp + 0x20], rdx
mov rbx, r11
mov rbp, r11
cmp rbx, rdx
jg 0x180028f35
mov ecx, dword [r10 + rbx*4]
mov eax, dword [r14 + rcx*4]
sub eax, edi
jne 0x180028ee8
mov eax, dword [r10 + rbp*4]
inc r15d
inc r12d
mov dword [r10 + rbx*4], eax
inc rbx
mov dword [r10 + rbp*4], ecx
inc rbp
cmp rbx, rdx
jle 0x180028ebd
jmp 0x180028f30
test eax, eax
jg 0x180028f30
inc r12d
inc rbx
jmp 0x180028eb8
mov ecx, dword [r10 + rdx*4]
mov eax, dword [r14 + rcx*4]
sub eax, edi
jne 0x180028f27
mov rax, qword [rsp + 0x20]
dec dword [rsp + 0x3a8]
mov eax, dword [r10 + rax*4]
mov dword [r10 + rdx*4], eax
mov rax, qword [rsp + 0x20]
mov dword [r10 + rax*4], ecx
dec rax
mov qword [rsp + 0x20], rax
jmp 0x180028f2b
test eax, eax
js 0x180028f35
dec esi
dec rdx
cmp rbx, rdx
jle 0x180028ef4
cmp r12d, esi
jg 0x180028f5a
mov eax, dword [r10 + rdx*4]
mov ecx, dword [r10 + rbx*4]
inc r12d
mov dword [r10 + rbx*4], eax
mov dword [r10 + rdx*4], ecx
inc rbx
dec esi
dec rdx
jmp 0x180028eb8
mov edi, dword [rsp + 0x3a8]
cmp edi, r15d
jl 0x180028e1f
mov eax, r15d
mov ebp, r12d
sub eax, r11d
sub ebp, r15d
cmp eax, ebp
mov ebx, ebp
cmovl ebx, eax
mov eax, r12d
sub eax, ebx
movsxd rcx, eax
test ebx, ebx
jle 0x180028fa6
lea rdx, [r10 + rcx*4]
sub r13, rcx
mov eax, dword [rdx]
mov ecx, dword [rdx + r13*4]
dec ebx
mov dword [rdx + r13*4], eax
mov dword [rdx], ecx
add rdx, 4
test ebx, ebx
jg 0x180028f90
mov eax, r9d
sub eax, edi
sub edi, esi
cmp eax, edi
cmovl edi, eax
mov eax, r9d
sub eax, edi
inc eax
movsxd rcx, eax
test edi, edi
jle 0x180028fde
movsxd rbx, r12d
lea rdx, [r10 + rcx*4]
sub rbx, rcx
mov eax, dword [rdx]
mov ecx, dword [rdx + rbx*4]
dec edi
mov dword [rdx + rbx*4], eax
mov dword [rdx], ecx
add rdx, 4
test edi, edi
jg 0x180028fca
sub esi, dword [rsp + 0x3a8]
lea edx, [rbp + r11 - 1]
mov ecx, r9d
lea ebx, [rsi + r9 + 1]
mov eax, edx
sub ecx, ebx
sub eax, r11d
cmp eax, ecx
mov ecx, dword [rsp + 0x3a0]
jle 0x180029022
mov dword [rsp + r8*4 + 0x1c0], edx
mov dword [rsp + r8*4 + 0x34], ebx
mov dword [rsp + r8*4 + 0x1c4], r9d
add r8, 2
jmp 0x180028e26
mov dword [rsp + r8*4 + 0x30], ebx
mov dword [rsp + r8*4 + 0x1c4], edx
mov dword [rsp + r8*4 + 0x34], r11d
jmp 0x180029019
mov ecx, 3
call qword [sym.imp.msvcrt.dll_exit]
int3