Function at 0x48eb00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
xor eax, eax
mov rsi, rcx
mov rdi, r8
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0x138], rdx
rep stosq qword [rdi], rax
mov qword [rsp + 0x140], r8
xor edx, edx
mov rcx, r9
mov r8d, 0x40000
mov r13, r9
call sym.memset
movsxd r11, dword [rsp + 0x150]
mov eax, dword [rsp + 0x150]
mov r10, qword [rsp + 0x140]
lea rdi, [rsi + r11 - 1]
sub eax, 1
mov r9, r11
mov dword [rsp + 0xcc], eax
movzx edx, byte [rdi]
mov qword [rsp + 0xc0], rdi
mov dword [rsp + 0xc8], r9d
test eax, eax
js 0x48ebb4
movsxd rcx, eax
lea r8, [rsi + rcx - 1]
jmp 0x48eba2
movzx ecx, byte [r8]
sub r8, 1
cmp edx, ecx
jg 0x48ec4d
mov edx, ecx
movsxd rcx, edx
mov ebx, eax
sub eax, 1
add dword [r10 + rcx*4], 1
cmp eax, 0xffffffff
jne 0x48eb90
mov rax, qword [rsp + 0x140]
xor r10d, r10d
xor r9d, r9d
xor ecx, ecx
mov ebx, 1
mov edx, 1
mov r8d, dword [rax]
mov dword [rax], 0
add r8d, dword [r13]
nop dword [rax + rax]
mov eax, edx
or eax, r9d
cdqe
lea rax, [r13 + rax*4]
add ecx, dword [rax]
mov dword [rax], ecx
mov eax, edx
add edx, 1
shl eax, 8
or eax, r10d
cdqe
add r8d, dword [r13 + rax*4]
cmp edx, 0x100
jne 0x48ebe0
mov rdi, qword [rsp + 0x140]
movsxd rax, ebx
mov r9d, ebx
lea edx, [rbx + 1]
shl r9d, 8
lea rax, [rdi + rax*4]
mov r10d, dword [rax]
add r10d, r8d
add r8d, ecx
mov dword [rax], r8d
mov eax, ebx
or eax, r9d
cdqe
add r10d, dword [r13 + rax*4]
mov r8d, r10d
cmp ebx, 0xff
je 0x48ecb0
mov r10d, ebx
mov ebx, edx
jmp 0x48ebe0
mov r8d, ecx
mov rdi, qword [rsp + 0x138]
shl r8d, 8
or edx, r8d
movsxd rdx, edx
add dword [r13 + rdx*4], 1
mov dword [rdi + r9*4 - 4], eax
lea eax, [rbx - 2]
cmp ebx, 1
je 0x48fc31
movsxd r8, eax
mov edx, ecx
add r8, rsi
jmp 0x48ec9d
shl ecx, 8
sub eax, 1
sub r8, 1
or ecx, edx
movsxd rcx, ecx
add dword [r13 + rcx*4], 1
cmp eax, 0xffffffff
je 0x48eca7
mov ecx, edx
movzx edx, byte [r8]
cmp edx, ecx
jle 0x48ec83
sub r9, 1
jmp 0x48eb7a
mov eax, dword [rsp + 0x150]
sub eax, dword [rsp + 0xc8]
mov dword [rsp + 0xa4], eax
test eax, eax
jle 0x48fbea
cdqe
mov rbx, qword [rsp + 0x138]
mov rdi, rax
sub r11, rax
shl rax, 2
mov qword [rsp + 0xb8], rax
add rax, rbx
lea r12, [rbx + r11*4]
mov qword [rsp + 0xa8], rax
lea eax, [rdi - 2]
movsxd rdx, eax
cmp eax, 0xffffffff
je 0x48ed39
movsxd rcx, dword [r12 + rdx*4]
mov rdi, qword [rsp + 0x138]
movzx eax, byte [rsi + rcx + 1]
movzx ecx, byte [rsi + rcx]
shl ecx, 8
or eax, ecx
cdqe
lea rcx, [r13 + rax*4]
mov eax, dword [rcx]
sub eax, 1
mov dword [rcx], eax
cdqe
mov dword [rdi + rax*4], edx
sub rdx, 1
cmp edx, 0xffffffff
jne 0x48ed03
mov rax, qword [rsp + 0xb8]
mov edi, dword [rsp + 0xa4]
mov dword [rsp + 0x98], 0xfe
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x148], r13
movsxd rdx, dword [r12 + rax - 4]
lea ebx, [rdi - 1]
mov dword [rsp + 0x7c], edi
mov dword [rsp + 0xa0], ebx
movzx eax, byte [rsi + rdx + 1]
movzx edx, byte [rsi + rdx]
shl edx, 8
or eax, edx
cdqe
lea rdx, [r13 + rax*4]
mov r13, rsi
mov rsi, r12
mov eax, dword [rdx]
sub eax, 1
mov dword [rdx], eax
cdqe
mov dword [rcx + rax*4], ebx
mov ebx, dword [rsp + 0x150]
lea eax, [rdi + rdi]
sub ebx, eax
mov dword [rsp + 0xb0], ebx
mov eax, dword [rsp + 0x98]
mov r12, r13
mov dword [rsp + 0x60], 0xff
mov r13, rsi
shl eax, 8
mov dword [rsp + 0x9c], eax
jmp 0x48ede7
sub dword [rsp + 0x60], 1
mov eax, dword [rsp + 0x60]
cmp eax, dword [rsp + 0x98]
je 0x48f621
mov eax, dword [rsp + 0x9c]
mov rdi, qword [rsp + 0x148]
or eax, dword [rsp + 0x60]
movsxd rdx, dword [rsp + 0x7c]
cdqe
mov edi, dword [rdi + rax*4]
mov eax, edx
sub eax, edi
mov dword [rsp + 0x7c], edi
cmp eax, 1
jle 0x48edd1
movsxd rax, edi
mov rdi, qword [rsp + 0x138]
lea rax, [rdi + rax*4]
lea rsi, [rdi + rdx*4]
mov ebx, dword [rax]
mov rdi, rax
lea rax, [rax + 4]
mov qword [rsp + 0x50], rsi
cmp dword [rsp + 0xa0], ebx
cmovne rax, rdi
mov dword [rsp + 0xb4], ebx
sub rsi, rax
mov qword [rsp + 0x58], rax
movsxd rax, dword [rsp + 0xb0]
mov r9, rsi
cmp eax, 0x3ff
jg 0x48f163
mov r10, rsi
sar r10, 2
cmp rax, r10
jge 0x48ef20
mov r11d, r10d
cmp r10d, 0xfffff
jg 0x48f9ee
test r10d, 0xffff0000
je 0x48f96c
mov eax, r10d
test r10d, 0xff000000
je 0x48f9d5
shr eax, 0x18
lea rdi, [0x0058fb60]
mov r8d, dword [rdi + rax*4]
add r8d, 0x18
cmp r8d, 0xf
jle 0x48f933
mov eax, r8d
lea rdx, [0x0058f760]
and eax, 0xfffffffe
lea ecx, [rax - 6]
mov eax, r10d
sar eax, cl
mov ecx, r8d
cdqe
sar ecx, 1
mov eax, dword [rdx + rax*4]
sub ecx, 7
shl eax, cl
mov ecx, eax
mov eax, r11d
cdq
idiv ecx
lea eax, [rcx + rax + 1]
sar eax, 1
mov ecx, eax
cmp r8d, 0x17
jle 0x48ef03
mov eax, r11d
cdq
idiv ecx
lea eax, [rcx + rax + 1]
sar eax, 1
mov ecx, eax
mov eax, ecx
imul eax, ecx
cmp eax, r10d
setg al
movzx eax, al
sub ecx, eax
cmp dword [rsp + 0xb0], ecx
jl 0x48f995
mov eax, dword [rsp + 0xb0]
mov rbp, qword [rsp + 0x50]
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x68], rax
cmp r9, 0x1000
jle 0x48f191
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x70], rbp
mov rdi, rax
nop word [rax + rax]
mov r14, rdi
add rdi, 0x1000
mov rdx, r13
mov rcx, r12
mov r9, rdi
mov r8, r14
mov ebp, 0x400
call sym.ss_mintrosort.constprop.0
mov rax, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x48]
sub rax, rdi
mov esi, ebx
sar rax, 2
cmp ebx, eax
mov rbx, qword [rsp + 0x68]
cmovl esi, eax
mov eax, dword [rsp + 0x40]
cmovl rbx, rdi
mov r15d, eax
test al, 1
je 0x48eff8
nop dword [rax + rax]
movsxd rax, ebp
mov dword [rsp + 0x30], esi
mov r9, r14
mov rcx, r12
shl rax, 2
mov qword [rsp + 0x28], rbx
sar r15d, 1
add ebp, ebp
lea rdx, [r14 + rax]
sub r14, rax
mov qword [rsp + 0x20], rdx
mov r8, r14
mov rdx, r13
call sym.ss_swapmerge.constprop.0
test r15b, 1
jne 0x48efc0
mov rax, qword [rsp + 0x70]
add dword [rsp + 0x40], 1
sub rax, rdi
cmp rax, 0x1000
jg 0x48ef70
mov rbp, qword [rsp + 0x70]
mov r8, rdi
mov rdx, r13
mov rcx, r12
mov ebx, 0x400
mov r9, rbp
call sym.ss_mintrosort.constprop.0
mov r9, rdi
mov esi, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x68]
mov r14d, dword [rsp + 0x48]
jmp 0x48f046
add ebx, ebx
sar esi, 1
je 0x48f07f
test sil, 1
je 0x48f040
movsxd rax, ebx
mov r15, r9
mov dword [rsp + 0x30], r14d
mov rdx, r13
shl rax, 2
mov qword [rsp + 0x28], rdi
mov rcx, r12
add ebx, ebx
mov qword [rsp + 0x20], rbp
sub r15, rax
mov r8, r15
call sym.ss_swapmerge.constprop.0
sar esi, 1
mov r9, r15
jne 0x48f046
mov eax, dword [rsp + 0x80]
test eax, eax
jne 0x48f1b3
mov edi, dword [rsp + 0xb4]
cmp dword [rsp + 0xa0], edi
jne 0x48edd1
mov rcx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
movsxd rax, dword [rcx - 4]
movsxd r10, dword [r13 + rax*4]
mov r11, rax
mov eax, dword [rsp + 0x150]
sub eax, 2
cmp rsi, rcx
jbe 0x48f155
cdqe
add r10, 2
lea r8, [r12 + rax + 2]
jmp 0x48f0ec
mov dword [rcx - 4], ebx
add rcx, 4
cmp rsi, rcx
jbe 0x48f150
mov ebx, dword [rcx]
test ebx, ebx
js 0x48f0e0
movsxd rax, ebx
lea r9, [r13 + rax*4]
lea rax, [r12 + r10]
movsxd rdx, dword [r9]
movsxd r9, dword [r9 + 4]
lea rdx, [r12 + rdx + 2]
lea r9, [r12 + r9 + 2]
cmp rdx, r9
jae 0x48f13a
cmp rax, r8
jb 0x48f132
jmp 0x48f13a
add rax, 1
add rdx, 1
cmp r8, rax
jbe 0x48f150
cmp r9, rdx
jbe 0x48f13a
movzx edi, byte [rdx]
cmp byte [rax], dil
je 0x48f120
cmp r8, rax
jbe 0x48f150
cmp rdx, r9
jae 0x48f0e0
movzx eax, byte [rax]
movzx edx, byte [rdx]
sub eax, edx
test eax, eax
jg 0x48f0e0
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x58]
mov dword [rax - 4], r11d
jmp 0x48edd1
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x80], 0
mov rbp, qword [rsp + 0x50]
mov qword [rsp + 0x68], rax
cmp r9, 0x1000
jg 0x48ef55
mov r8, qword [rsp + 0x58]
mov r9, rbp
mov rdx, r13
mov rcx, r12
call sym.ss_mintrosort.constprop.0
mov eax, dword [rsp + 0x80]
test eax, eax
je 0x48f08e
mov rdi, qword [rsp + 0x50]
mov r8, rbp
mov rdx, r13
mov rcx, r12
mov r9, rdi
call sym.ss_mintrosort.constprop.0
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x68], r13
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
movsxd rax, dword [rax - 4]
test eax, eax
js 0x48f5b6
mov rdi, qword [rsp + 0x68]
mov dword [rsp + 0x70], 0
lea rdx, [rdi + rax*4]
mov rdi, qword [rsp + 0x58]
mov rax, rbp
sub rax, rdi
sar rax, 2
mov r10d, eax
mov r9d, eax
sar r10d, 1
test eax, eax
jle 0x48f60c
movsxd rax, dword [rdx]
mov r14, qword [rsp + 0x68]
mov r13d, 0xffffffff
lea rbx, [r12 + rax + 2]
movsxd rax, dword [rdx + 4]
lea r8, [r12 + rax + 2]
cmp rbx, r8
setb sil
nop dword [rax]
movsxd rax, r10d
lea r11, [rdi + rax*4]
movsxd rdx, dword [r11]
test edx, edx
jns 0x48f253
not edx
movsxd rdx, edx
lea rdx, [r14 + rdx*4]
movsxd rax, dword [rdx]
movsxd rdx, dword [rdx + 4]
lea rax, [r12 + rax + 2]
lea rcx, [r12 + rdx + 2]
cmp rax, rcx
jae 0x48f5ae
mov rdx, rbx
test sil, sil
jne 0x48f292
jmp 0x48f5ae
add rax, 1
add rdx, 1
cmp rcx, rax
jbe 0x48f29b
cmp r8, rdx
jbe 0x48f29b
movzx r15d, byte [rdx]
cmp byte [rax], r15b
je 0x48f280
cmp rax, rcx
jae 0x48f508
cmp rdx, r8
jae 0x48f5a0
movzx eax, byte [rax]
movzx edx, byte [rdx]
sub eax, edx
jns 0x48f5d0
not r9d
lea rdi, [r11 + 4]
and r9d, 1
sub r10d, r9d
mov r9d, r10d
mov r10d, r9d
sar r10d, 1
test r9d, r9d
jg 0x48f240
cmp rbp, rdi
jbe 0x48f4d8
test r13d, r13d
jne 0x48f2eb
not dword [rdi]
mov r8, qword [rsp + 0x48]
mov rax, rbp
sub rax, rdi
mov rdx, rax
mov qword [rsp + 0x80], rax
mov rax, r8
sub rax, rbp
sar rdx, 2
sar rax, 2
mov r10d, edx
mov r9d, eax
test eax, eax
jle 0x48f4c1
test edx, edx
jle 0x48f4c1
mov rcx, rdi
cmp edx, eax
je 0x48f42b
mov rax, rbp
lea rbx, [rbp - 5]
lea r13, [rbp + 1]
mov qword [rsp + 0x88], rdi
not rax
mov qword [rsp + 0x90], r12
lea rsi, [rbp - 4]
mov rdi, rbx
mov r12, rax
nop dword [rax + rax]
cmp r10d, r9d
jge 0x48f520
mov r11, rsi
lea rax, [rcx - 1]
mov ebx, dword [r8 - 4]
lea rdx, [r8 - 4]
sub r11, rcx
mov r14d, 0
lea r15d, [r10 + 1]
and r11, 0xfffffffffffffffc
neg r11
cmp rdi, rax
cmovae r14, r11
sub r11, 4
cmp rdi, rax
mov rax, 0xfffffffffffffffc
cmovb r11, rax
sub r14, 8
nop dword [rax]
mov qword [rsp + 0x40], rdx
mov rax, rsi
mov r8, rdx
nop dword [rax + rax]
mov edx, dword [rax]
sub rax, 4
sub r8, 4
mov dword [r8 + 4], edx
mov edx, dword [r8]
mov dword [rax + 4], edx
cmp rax, rcx
jae 0x48f3c0
mov rdx, qword [rsp + 0x40]
sub r9d, r15d
lea r8, [rdx + r11]
mov dword [r8], ebx
cmp r10d, r9d
jge 0x48f400
mov ebx, dword [r8 - 4]
add rdx, r14
jmp 0x48f3b0
test r10d, r10d
jle 0x48f5f7
test r9d, r9d
jle 0x48f5f7
cmp r10d, r9d
jne 0x48f360
mov rdi, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
lea rax, [rbp + 0xf]
sub rax, rcx
cmp rax, 0x1e
lea eax, [r9 - 1]
jbe 0x48f8f5
cmp eax, 2
jbe 0x48f8f5
mov edx, r9d
xor eax, eax
shr edx, 2
shl rdx, 4
nop dword [rax]
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm2, xmmword [rbp + rax]
movups xmmword [rcx + rax], xmm2
movups xmmword [rbp + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x48f458
mov edx, r9d
and edx, 0xfffffffc
mov eax, edx
shl rax, 2
add rcx, rax
add rbp, rax
mov eax, r9d
sub eax, edx
cmp edx, r9d
je 0x48f4c1
mov edx, dword [rcx]
mov r8d, dword [rbp]
mov dword [rcx], r8d
mov dword [rbp], edx
cmp eax, 1
je 0x48f4c1
mov edx, dword [rcx + 4]
mov r8d, dword [rbp + 4]
mov dword [rcx + 4], r8d
mov dword [rbp + 4], edx
cmp eax, 2
je 0x48f4c1
mov eax, dword [rcx + 8]
mov edx, dword [rbp + 8]
mov dword [rcx + 8], edx
mov dword [rbp + 8], eax
mov rsi, qword [rsp + 0x80]
sub qword [rsp + 0x48], rsi
cmp qword [rsp + 0x58], rdi
je 0x48f4f7
mov rbp, rdi
mov r14d, dword [rsp + 0x70]
sub qword [rsp + 0x48], 4
test r14d, r14d
jne 0x48f5db
cmp rbp, qword [rsp + 0x48]
jne 0x48f1d8
mov r13, qword [rsp + 0x68]
jmp 0x48f08e
cmp rdx, r8
jb 0x48f2bb
mov r9d, r10d
xor r13d, r13d
jmp 0x48f2cc
lea rbx, [r12 + r8]
mov eax, 0
mov r11d, dword [rcx]
lea r15d, [r9 + 1]
and rbx, 0xfffffffffffffffc
cmp r8, r13
mov edx, 4
cmovae rax, rbx
add rbx, 4
cmp r8, r13
cmovb rbx, rdx
lea r14, [rax + 8]
nop
mov qword [rsp + 0x40], rcx
mov rax, rbp
mov rdx, rcx
nop dword [rax + rax]
mov ecx, dword [rax]
add rax, 4
add rdx, 4
mov dword [rdx - 4], ecx
mov ecx, dword [rdx]
mov dword [rax - 4], ecx
cmp rax, r8
jb 0x48f560
mov rcx, qword [rsp + 0x40]
sub r10d, r15d
lea rax, [rcx + rbx]
add rcx, r14
mov dword [rax], r11d
cmp r10d, r9d
jle 0x48f400
mov r11d, dword [rax + 4]
jmp 0x48f550
mov r9d, r10d
mov r13d, 1
jmp 0x48f2cc
mov rdx, rbx
jmp 0x48f29b
mov rdi, qword [rsp + 0x68]
not eax
mov dword [rsp + 0x70], 1
cdqe
lea rdx, [rdi + rax*4]
jmp 0x48f1fa
mov r13d, eax
mov r9d, r10d
jmp 0x48f2cc
mov rax, qword [rsp + 0x48]
mov r13d, dword [rax - 4]
sub rax, 4
test r13d, r13d
js 0x48f5e0
mov qword [rsp + 0x48], rax
jmp 0x48f4ec
mov rdi, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
jmp 0x48f4c1
cmp qword [rsp + 0x58], rbp
jae 0x48f4d8
mov r13, qword [rsp + 0x68]
jmp 0x48f08e
mov edi, dword [rsp + 0x7c]
sub eax, 1
mov rsi, r13
mov r13, r12
mov dword [rsp + 0x98], eax
test edi, edi
jg 0x48edb0
mov r13, qword [rsp + 0x148]
mov eax, dword [rsp + 0xa0]
mov rsi, r12
mov r9, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x138]
movsxd rcx, eax
lea edx, [rax - 1]
mov ebx, dword [r8 + rcx*4]
movsxd rdx, edx
test ebx, ebx
jns 0x48f6f4
nop dword [rax]
mov edx, dword [r8 + rcx*4]
mov r10d, ecx
not edx
mov dword [r8 + rcx*4], edx
movsxd rdx, edx
sub rcx, 1
mov dword [r9 + rdx*4], eax
movsxd rdx, dword [r8 + rcx*4]
test edx, edx
js 0x48f678
mov dword [r9 + rdx*4], eax
mov eax, r10d
sub eax, 2
jns 0x48f65f
mov rax, qword [rsp + 0x138]
mov edi, dword [rsp + 0xa4]
mov eax, dword [rax]
test edi, 0xffff0000
je 0x48f721
test edi, 0xff000000
je 0x48fce7
shr edi, 0x18
movsxd rdx, edi
lea rdi, [0x0058fb60]
mov edx, dword [rdi + rdx*4]
add edx, 0x18
jmp 0x48f73f
mov r11d, dword [r8 + rdx*4]
lea rcx, [rdx - 1]
test r11d, r11d
js 0x48f917
mov rdx, rcx
movsxd rcx, dword [r8 + rdx*4 + 4]
lea r10d, [rdx + 1]
mov dword [r9 + rcx*4], r10d
cmp edx, 0xffffffff
jne 0x48f6e0
mov rdi, qword [rsp + 0x138]
not eax
mov dword [rdi], eax
mov edi, dword [rsp + 0xa4]
test edi, 0xffff0000
jne 0x48f6bd
test edi, 0xff00
jne 0x48fccf
movzx edx, byte [rsp + 0xa4]
lea rdi, [0x0058fb60]
mov edx, dword [rdi + rdx*4]
add edx, edx
mov r14d, dword [rsp + 0xc8]
sub r14d, dword [rsp + 0x150]
lea r12, [rsp + 0xd0]
movsxd rcx, edx
sar edx, 0x1f
imul rcx, rcx, 0x55555556
shr rcx, 0x20
mov edi, ecx
sub edi, edx
mov dword [rsp + 0xd0], edi
mov edi, dword [rsp + 0xa4]
mov dword [rsp + 0xd8], edi
mov dword [rsp + 0xd4], edi
mov rdi, qword [rsp + 0xa8]
lea rbp, [rdi + 4]
cmp r14d, eax
jge 0x48f843
mov qword [rsp + 0x148], r13
mov r15, rdi
mov qword [rsp + 0x130], rsi
mov rsi, rbp
mov rbp, qword [rsp + 0x138]
mov rbx, rbp
xor edi, edi
xor edx, edx
jmp 0x48f7fb
test edx, edx
je 0x48f7d0
movsxd rax, edx
mov dword [rbx + rax*4], edx
movsxd rax, dword [r15 + rcx*4]
lea r13, [rbp + rax*4 + 4]
mov rax, r13
sub rax, rbx
cmp rax, 4
jg 0x48fc40
sete dl
mov rbx, r13
movzx edx, dl
neg edx
cmp r15, rbx
jbe 0x48f814
mov eax, dword [rbx]
movsxd rcx, eax
lea r8, [rcx*4]
test eax, eax
jns 0x48f7c6
sub rbx, r8
add edx, eax
cmp r15, rbx
ja 0x48f7f9
test edx, edx
je 0x48f81e
movsxd rax, edx
mov dword [rbx + rax*4], edx
test edi, edi
je 0x48f833
mov rax, rsi
sub rax, r15
add rsi, rax
mov eax, dword [rbp]
cmp r14d, eax
jl 0x48f7bd
mov rsi, qword [rsp + 0x130]
mov r13, qword [rsp + 0x148]
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rsp + 0xcc]
mov r9, qword [rsp + 0xa8]
add r9, qword [rsp + 0xb8]
movzx edx, byte [rax]
test ecx, ecx
js 0x48fa12
lea eax, [rcx - 1]
je 0x48fa12
movsxd rcx, eax
add rcx, rsi
jmp 0x48f88d
sub rcx, 1
cmp eax, 0xffffffff
je 0x48fa12
mov r8d, edx
movzx edx, byte [rcx]
mov r10d, eax
sub eax, 1
cmp r8d, edx
jle 0x48f880
cmp eax, 0xffffffff
je 0x48f9ff
cdqe
jmp 0x48f8b6
sub rax, 1
mov ecx, eax
cmp eax, 0xffffffff
je 0x48f8c4
mov r8d, edx
movzx edx, byte [rsi + rax]
mov ecx, eax
cmp edx, r8d
jle 0x48f8ab
test r10d, r10d
je 0x48f8dc
mov r8d, r10d
mov eax, r10d
sub r8d, ecx
not eax
cmp r8d, 2
cmovl r10d, eax
movsxd rax, dword [r9 - 4]
mov rdi, qword [rsp + 0x138]
sub r9, 4
mov dword [rdi + rax*4], r10d
jmp 0x48f865
lea r8, [rbp + rax*4 + 4]
mov eax, dword [rcx]
mov edx, dword [rbp]
add rbp, 4
add rcx, 4
mov dword [rcx - 4], edx
mov dword [rbp - 4], eax
cmp r8, rbp
jne 0x48f8fa
jmp 0x48f4c1
mov edi, edx
sub edi, eax
mov dword [r8 + rdx*4 + 4], edi
test edx, edx
jle 0x48f6a4
movsxd rcx, edx
mov rax, rcx
jmp 0x48f678
cmp r8d, 7
jle 0x48fc19
mov eax, r8d
lea rdx, [0x0058f760]
sar r8d, 1
and eax, 0xfffffffe
lea ecx, [rax - 6]
mov eax, r10d
sar eax, cl
mov ecx, 7
cdqe
sub ecx, r8d
mov eax, dword [rdx + rax*4]
sar eax, cl
lea ecx, [rax + 1]
jmp 0x48ef03
test r10d, 0xff00
je 0x48fc05
mov eax, r10d
lea rdi, [0x0058fb60]
sar eax, 8
cdqe
mov r8d, dword [rdi + rax*4]
add r8d, 8
jmp 0x48eeb1
cmp ecx, 0x400
mov eax, 0x400
cmovle eax, ecx
mov dword [rsp + 0x48], eax
cdqe
shl rax, 2
neg rax
add rax, qword [rsp + 0x50]
mov r9, rax
mov qword [rsp + 0x68], rax
mov rbp, rax
mov eax, dword [rsp + 0x48]
sub r9, qword [rsp + 0x58]
mov dword [rsp + 0x80], eax
jmp 0x48ef48
sar eax, 0x10
lea rdi, [0x0058fb60]
cdqe
mov r8d, dword [rdi + rax*4]
add r8d, 0x10
jmp 0x48eeb1
mov dword [rsp + 0x48], 0x400
mov rax, 0xfffffffffffff000
jmp 0x48f9b0
movsxd rax, dword [r9 - 4]
mov rdi, qword [rsp + 0x138]
mov dword [rdi + rax*4], 0
mov eax, dword [rsp + 0x150]
mov rbx, qword [rsp + 0x138]
mov r15d, 0xfe
mov dword [r13 + 0x3fffc], eax
mov rax, qword [rsp + 0x138]
sub rax, 4
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xa0]
nop word cs:[rax + rax]
mov rdi, qword [rsp + 0x140]
mov dword [rsp + 0x58], r15d
mov r10d, 0xff
mov dword [rsp + 0x48], r15d
mov edi, dword [rdi + r15*4 + 4]
mov qword [rsp + 0x50], r15
lea ecx, [rdi - 1]
mov edi, r15d
shl edi, 8
mov dword [rsp + 0x40], edi
nop
mov edx, r10d
mov edi, ecx
shl edx, 8
or edx, dword [rsp + 0x48]
movsxd rdx, edx
lea rdx, [r13 + rdx*4]
sub edi, dword [rdx]
mov dword [rdx], ecx
mov edx, dword [rsp + 0x40]
or edx, r10d
movsxd rdx, edx
mov r8d, dword [r13 + rdx*4]
cmp r8d, eax
jg 0x48fcc8
movsxd rbp, eax
movsxd rsi, edi
mov r9d, eax
mov r12d, eax
lea r14, [rsi*4 + 4]
lea rcx, [rbp*4 - 0xc]
sub r9d, r8d
lea rdx, [r14 - 0x10]
cmp rcx, r14
lea r11, [rbp*4 + 4]
setge r15b
cmp rdx, r11
setge r14b
or r15b, r14b
je 0x48fc90
cmp r9d, 3
jbe 0x48fc90
add r9d, 1
add rcx, rbx
add rdx, rbx
xor r11d, r11d
mov esi, r9d
shr esi, 2
neg rsi
shl rsi, 4
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rcx + r11]
movups xmmword [rdx + r11], xmm1
sub r11, 0x10
cmp rsi, r11
jne 0x48fb20
mov ecx, r9d
mov edx, edi
and ecx, 0xfffffffc
sub eax, ecx
sub edx, ecx
cmp ecx, r9d
je 0x48fb8c
movsxd rcx, eax
mov r9d, dword [rbx + rcx*4]
movsxd rcx, edx
sub edx, 1
mov dword [rbx + rcx*4], r9d
lea ecx, [rax - 1]
cmp r8d, ecx
jg 0x48fb8c
movsxd rcx, ecx
movsxd rdx, edx
sub eax, 2
lea r9, [rcx*4]
mov ecx, dword [rbx + rcx*4]
lea r11, [rdx*4]
mov dword [rbx + rdx*4], ecx
cmp r8d, eax
jg 0x48fb8c
mov eax, dword [rbx + r9 - 4]
mov dword [rbx + r11 - 4], eax
lea eax, [r8 - 1]
sub r8d, r12d
lea ecx, [rdi + r8 - 1]
sub r10d, 1
cmp r10d, dword [rsp + 0x50]
jne 0x48fa80
mov edi, dword [rsp + 0x40]
mov edx, dword [rsp + 0x48]
mov r8d, ecx
mov r15, qword [rsp + 0x50]
or edx, edi
movsxd rdx, edx
sub r15, 1
lea r9, [r13 + rdx*4]
mov edx, dword [rsp + 0x58]
sub r8d, dword [r9]
add edx, 1
add r8d, 1
or edx, edi
movsxd rdx, edx
mov dword [r13 + rdx*4], r8d
mov dword [r9], ecx
cmp r15, 0xffffffffffffffff
jne 0x48fa50
mov eax, dword [rsp + 0xa4]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, r10b
lea rdi, [0x0058fb60]
mov r8d, dword [rdi + rax*4]
jmp 0x48eeb1
movsxd r10, r10d
lea rax, [0x0058f760]
mov eax, dword [rax + r10*4]
sar eax, 4
mov ecx, eax
jmp 0x48ef13
mov edx, ecx
jmp 0x48eca7
mov qword [rsp + 0x28], r12
mov r9, rbx
mov r8, rbp
mov rdx, rsi
mov qword [rsp + 0x20], r13
mov rcx, r15
mov dword [rsp + 0xdc], 0
call sym.tr_introsort.constprop.0
mov eax, dword [rsp + 0xdc]
test eax, eax
je 0x48fc7d
add edi, eax
mov rbx, r13
xor edx, edx
jmp 0x48f7f4
sub rbx, r13
mov rdx, rbx
mov rbx, r13
sar rdx, 2
jmp 0x48f7f4
sub r11, 4
shl r9, 2
sub rsi, rbp
lea rax, [rbx + r11]
add r11, qword [rsp + 0x60]
sub r11, r9
nop word [rax + rax]
mov edx, dword [rax]
mov dword [rax + rsi*4], edx
sub rax, 4
cmp r11, rax
jne 0x48fcb0
jmp 0x48fb8c
mov ecx, edi
jmp 0x48fb98
sar edi, 8
movsxd rdx, edi
lea rdi, [0x0058fb60]
mov edx, dword [rdi + rdx*4]
add edx, 8
jmp 0x48f73f
mov edx, edi
lea rdi, [0x0058fb60]
sar edx, 0x10
movsxd rdx, edx
mov edx, dword [rdi + rdx*4]
add edx, 0x10
jmp 0x48f73f