Function at 0x140169c00
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0xda0
mov rax, qword [0x140293028]
xor rax, rsp
mov qword [rsp + 0xd80], rax
mov ebp, dword [rsp + 0xe08]
mov rdi, r9
mov qword [rsp + 0x78], r9
mov r11, r8
mov r9d, dword [rsp + 0xe00]
mov r10, rdx
mov dword [rsp + 0x40], r9d
mov r13, rcx
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x60], rcx
cmp ebp, 4
jl 0x140169c85
mov ecx, 2
call fcn.1401b47e0
mov rcx, rax
lea rdx, str.________main_sort_initialise_..._n
call fcn.1400735d0
mov r9d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x68]
mov eax, 0x10000
xor r15d, r15d
nop dword [rax]
mov dword [rdi + rax*4], r15d
sub rax, 1
jns 0x140169c90
movzx edx, byte [r10]
lea r14d, [r9 - 1]
movsxd rsi, r14d
shl edx, 8
mov rbx, rsi
mov dword [rsp + 0x58], r14d
cmp rsi, 3
jl 0x140169d58
lea r8, [r10 - 2]
lea r10, [rsi + 1]
add r8, rbx
shr r10, 2
lea r9, [rsi - 2]
mov eax, r10d
lea r9, [r11 + r9*2]
neg eax
lea esi, [rsi + rax*4]
nop dword [rax]
mov word [r9 + 4], r15w
lea r9, [r9 - 8]
movzx ecx, byte [r8 + 2]
lea r8, [r8 - 4]
sar edx, 8
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rdi + rax*4]
mov word [r9 + 0xa], r15w
movzx edx, byte [r8 + 5]
shl edx, 8
or edx, ecx
movsxd rax, edx
sar edx, 8
inc dword [rdi + rax*4]
mov word [r9 + 8], r15w
movzx ecx, byte [r8 + 4]
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rdi + rax*4]
mov word [r9 + 6], r15w
movzx edx, byte [r8 + 3]
shl edx, 8
or edx, ecx
movsxd rax, edx
inc dword [rdi + rax*4]
sub r10, 1
jne 0x140169ce0
mov r9d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
movsxd r8, esi
test esi, esi
js 0x140169d82
nop
mov eax, edx
mov word [r11 + r8*2], r15w
movzx ecx, byte [r8 + r10]
sar eax, 8
shl ecx, 8
mov edx, ecx
or edx, eax
movsxd rax, edx
inc dword [rdi + rax*4]
sub r8, 1
jns 0x140169d60
movzx eax, byte [r10]
movsxd rcx, r9d
mov byte [rcx + r10], al
mov word [r11 + rcx*2], r15w
movzx eax, byte [r10 + 1]
mov byte [rcx + r10 + 1], al
mov word [r11 + rcx*2 + 2], r15w
movzx eax, byte [r10 + 2]
mov byte [rcx + r10 + 2], al
mov word [r11 + rcx*2 + 4], r15w
movzx eax, byte [r10 + 3]
mov byte [rcx + r10 + 3], al
mov word [r11 + rcx*2 + 6], r15w
movzx eax, byte [r10 + 4]
mov byte [rcx + r10 + 4], al
mov word [r11 + rcx*2 + 8], r15w
movzx eax, byte [r10 + 5]
mov byte [rcx + r10 + 5], al
mov word [r11 + rcx*2 + 0xa], r15w
movzx eax, byte [r10 + 6]
mov byte [rcx + r10 + 6], al
mov word [r11 + rcx*2 + 0xc], r15w
movzx eax, byte [r10 + 7]
mov byte [rcx + r10 + 7], al
mov word [r11 + rcx*2 + 0xe], r15w
movzx eax, byte [r10 + 8]
mov byte [rcx + r10 + 8], al
mov word [r11 + rcx*2 + 0x10], r15w
movzx eax, byte [r10 + 9]
mov byte [rcx + r10 + 9], al
mov word [r11 + rcx*2 + 0x12], r15w
movzx eax, byte [r10 + 0xa]
mov byte [rcx + r10 + 0xa], al
mov word [r11 + rcx*2 + 0x14], r15w
movzx eax, byte [r10 + 0xb]
mov byte [rcx + r10 + 0xb], al
mov word [r11 + rcx*2 + 0x16], r15w
movzx eax, byte [r10 + 0xc]
mov byte [rcx + r10 + 0xc], al
mov word [r11 + rcx*2 + 0x18], r15w
movzx eax, byte [r10 + 0xd]
mov byte [rcx + r10 + 0xd], al
mov word [r11 + rcx*2 + 0x1a], r15w
movzx eax, byte [r10 + 0xe]
mov byte [rcx + r10 + 0xe], al
mov word [r11 + rcx*2 + 0x1c], r15w
movzx eax, byte [r10 + 0xf]
mov byte [rcx + r10 + 0xf], al
mov word [r11 + rcx*2 + 0x1e], r15w
movzx eax, byte [r10 + 0x10]
mov byte [rcx + r10 + 0x10], al
mov word [r11 + rcx*2 + 0x20], r15w
movzx eax, byte [r10 + 0x11]
mov byte [rcx + r10 + 0x11], al
mov word [r11 + rcx*2 + 0x22], r15w
movzx eax, byte [r10 + 0x12]
mov byte [rcx + r10 + 0x12], al
mov word [r11 + rcx*2 + 0x24], r15w
movzx eax, byte [r10 + 0x13]
mov byte [rcx + r10 + 0x13], al
mov word [r11 + rcx*2 + 0x26], r15w
movzx eax, byte [r10 + 0x14]
mov byte [rcx + r10 + 0x14], al
mov word [r11 + rcx*2 + 0x28], r15w
movzx eax, byte [r10 + 0x15]
mov byte [rcx + r10 + 0x15], al
mov word [r11 + rcx*2 + 0x2a], r15w
movzx eax, byte [r10 + 0x16]
mov byte [rcx + r10 + 0x16], al
mov word [r11 + rcx*2 + 0x2c], r15w
movzx eax, byte [r10 + 0x17]
mov byte [rcx + r10 + 0x17], al
mov word [r11 + rcx*2 + 0x2e], r15w
movzx eax, byte [r10 + 0x18]
mov byte [rcx + r10 + 0x18], al
mov word [r11 + rcx*2 + 0x30], r15w
movzx eax, byte [r10 + 0x19]
mov byte [rcx + r10 + 0x19], al
mov word [r11 + rcx*2 + 0x32], r15w
movzx eax, byte [r10 + 0x1a]
mov byte [rcx + r10 + 0x1a], al
mov word [r11 + rcx*2 + 0x34], r15w
movzx eax, byte [r10 + 0x1b]
mov byte [rcx + r10 + 0x1b], al
mov word [r11 + rcx*2 + 0x36], r15w
movzx eax, byte [r10 + 0x1c]
mov byte [rcx + r10 + 0x1c], al
mov word [r11 + rcx*2 + 0x38], r15w
movzx eax, byte [r10 + 0x1d]
mov byte [rcx + r10 + 0x1d], al
mov word [r11 + rcx*2 + 0x3a], r15w
movzx eax, byte [r10 + 0x1e]
mov byte [rcx + r10 + 0x1e], al
mov word [r11 + rcx*2 + 0x3c], r15w
movzx eax, byte [r10 + 0x1f]
mov byte [rcx + r10 + 0x1f], al
mov word [r11 + rcx*2 + 0x3e], r15w
movzx eax, byte [r10 + 0x20]
mov byte [rcx + r10 + 0x20], al
mov word [r11 + rcx*2 + 0x40], r15w
movzx eax, byte [r10 + 0x21]
mov byte [rcx + r10 + 0x21], al
mov word [r11 + rcx*2 + 0x42], r15w
cmp ebp, 4
jl 0x140169fc5
mov ecx, 2
call fcn.1401b47e0
mov rcx, rax
lea rdx, str.________bucket_sorting_..._n
call fcn.1400735d0
mov r10, qword [rsp + 0x48]
lea rcx, [rdi + 8]
mov edx, 0x4000
nop
mov eax, dword [rcx - 8]
add dword [rcx - 4], eax
mov eax, dword [rcx - 4]
add dword [rcx], eax
mov eax, dword [rcx]
add dword [rcx + 4], eax
mov eax, dword [rcx + 4]
add dword [rcx + 8], eax
lea rcx, [rcx + 0x10]
sub rdx, 1
jne 0x140169fd0
movzx r8d, byte [r10]
mov r9d, r14d
shl r8w, 8
cmp r14d, 3
jl 0x14016a0ca
add r10, 0xfffffffffffffffe
lea r11d, [r14 - 2]
add r10, rbx
movzx edx, byte [r10 + 2]
lea r10, [r10 - 4]
shr r8w, 8
shl dx, 8
or dx, r8w
movzx eax, dx
shr dx, 8
mov ecx, dword [rdi + rax*4]
dec ecx
mov dword [rdi + rax*4], ecx
movsxd rax, ecx
mov dword [r13 + rax*4], r9d
sub r9d, 4
movzx r8d, byte [r10 + 5]
shl r8w, 8
or r8w, dx
movzx eax, r8w
shr r8w, 8
mov ecx, dword [rdi + rax*4]
dec ecx
mov dword [rdi + rax*4], ecx
lea eax, [r11 + 1]
movsxd rcx, ecx
mov dword [r13 + rcx*4], eax
movzx edx, byte [r10 + 4]
shl dx, 8
or dx, r8w
movzx eax, dx
shr dx, 8
mov ecx, dword [rdi + rax*4]
dec ecx
mov dword [rdi + rax*4], ecx
movsxd rax, ecx
mov dword [r13 + rax*4], r11d
movzx r8d, byte [r10 + 3]
shl r8w, 8
or r8w, dx
movzx eax, r8w
mov ecx, dword [rdi + rax*4]
dec ecx
mov dword [rdi + rax*4], ecx
lea eax, [r11 - 1]
movsxd rcx, ecx
sub r11d, 4
mov dword [r13 + rcx*4], eax
cmp r9d, 3
jge 0x14016a011
mov r10, qword [rsp + 0x48]
test r9d, r9d
js 0x14016a115
movsxd rdx, r9d
add rdx, r10
nop word [rax + rax]
movzx ecx, byte [rdx]
lea rdx, [rdx - 1]
shl cx, 8
movzx eax, r8w
shr ax, 8
movzx r8d, cx
or r8w, ax
movzx eax, r8w
mov ecx, dword [rdi + rax*4]
dec ecx
mov dword [rdi + rax*4], ecx
movsxd rax, ecx
mov dword [r13 + rax*4], r9d
sub r9d, 1
jns 0x14016a0e0
mov ecx, r15d
mov rax, r15
nop dword [rax + rax]
cmp rax, 0x100
jae 0x14016a6a2
mov dword [rsp + rax*4 + 0x80], ecx
inc ecx
mov byte [rsp + rax + 0xc80], r15b
inc rax
cmp ecx, 0xff
jle 0x14016a120
mov qword [rsp + 0xd98], r12
mov r11d, 1
nop word [rax + rax]
lea r11d, [r11 + r11*2]
inc r11d
cmp r11d, 0x100
jle 0x14016a160
mov eax, 0x55555556
imul r11d
mov r11d, edx
shr r11d, 0x1f
add r11d, edx
mov r15d, r11d
cmp r11d, 0xff
jg 0x14016a261
lfence
movsxd rbp, r11d
mov r14, rbp
nop dword [rax + rax]
mov r12d, dword [rsp + rbp*4 + 0x80]
mov r10d, r15d
mov eax, r12d
mov r9, rbp
shl eax, 8
movsxd rcx, eax
mov eax, r12d
shl eax, 8
cdqe
mov ebx, dword [rdi + rcx*4 + 0x400]
sub ebx, dword [rdi + rax*4]
mov rax, rbp
sub rax, r14
mov r8d, dword [rsp + rax*4 + 0x80]
mov ecx, r8d
shl ecx, 8
movsxd rdx, ecx
shl r8d, 8
movsxd rcx, r8d
mov edx, dword [rdi + rdx*4 + 0x400]
sub edx, dword [rdi + rcx*4]
cmp edx, ebx
jbe 0x14016a246
lea esi, [r11 - 1]
nop dword [rax]
mov ecx, dword [rsp + rax*4 + 0x80]
sub r10d, r11d
mov dword [rsp + r9*4 + 0x80], ecx
mov r9, rax
cmp r10d, esi
jle 0x14016a246
lfence
sub rax, r14
mov r8d, dword [rsp + rax*4 + 0x80]
mov ecx, r8d
shl ecx, 8
movsxd rdx, ecx
shl r8d, 8
movsxd rcx, r8d
mov edx, dword [rdi + rdx*4 + 0x400]
sub edx, dword [rdi + rcx*4]
cmp edx, ebx
ja 0x14016a200
inc r15d
mov dword [rsp + r9*4 + 0x80], r12d
inc rbp
cmp r15d, 0xff
jle 0x14016a1a0
cmp r11d, 1
jne 0x14016a170
xor r11d, r11d
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x70], r11
nop dword [rax + rax]
movsxd rbx, dword [rsp + r11*4 + 0x80]
xor r14d, r14d
mov dword [rsp + 0x50], ebx
mov rax, rbx
xor r12d, r12d
cmp r14d, ebx
je 0x14016a368
shl rax, 8
add rax, r12
mov ebp, dword [rdi + rax*4]
lea r15, [rdi + rax*4]
bt ebp, 0x15
jb 0x14016a35e
mov esi, dword [r15 + 4]
btr ebp, 0x15
btr esi, 0x15
dec esi
cmp esi, ebp
jle 0x14016a35e
lfence
mov r13d, esi
sub r13d, ebp
cmp dword [rsp + 0xe08], 4
jl 0x14016a312
mov ecx, 2
lea ebx, [r13 + 1]
call fcn.1401b47e0
mov dword [rsp + 0x28], ebx
lea rdx, str.________qsort__0x_x__0x_x____done__d___this__d_n
mov ebx, dword [rsp + 0x50]
mov rcx, rax
mov eax, dword [rsp + 0x44]
mov r8d, ebx
mov r9d, r14d
mov dword [rsp + 0x20], eax
call fcn.1400735d0
mov rax, qword [rsp + 0xe10]
mov r9d, dword [rsp + 0x40]
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call fcn.1401697e0
mov ecx, dword [rsp + 0x44]
mov rax, qword [rsp + 0xe10]
inc ecx
add ecx, r13d
mov dword [rsp + 0x44], ecx
cmp dword [rax], 0
jl 0x14016a678
or dword [r15], 0x200000
movsxd rax, ebx
inc r14d
inc r12
cmp r14d, 0xff
jle 0x14016a295
lea rcx, [rsp + 0xc80]
add rcx, rax
mov qword [rsp + 0x50], rcx
cmp byte [rcx], 0
jne 0x14016a6be
lea rbp, [rax*4]
xor ecx, ecx
lea rdx, [rdi + rbp]
mov r8, rdx
nop word [rax + rax]
mov eax, dword [r8]
lea r8, [r8 + 0x400]
btr eax, 0x15
mov dword [rsp + rcx + 0x480], eax
mov eax, dword [r8 - 0x3fc]
btr eax, 0x15
dec eax
mov dword [rsp + rcx + 0x880], eax
add rcx, 4
cmp rcx, 0x3fc
jle 0x14016a3b0
mov r13, qword [rsp + 0x60]
lea r15, [rsp + 0x480]
mov ecx, dword [r15 + rbp]
mov eax, ebx
mov esi, dword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
shl eax, 8
cdqe
mov r9d, dword [rdi + rax*4]
lea r12, [rdi + rax*4]
btr r9d, 0x15
cmp r9d, ecx
jge 0x14016a481
movsxd rax, r9d
lea r10, [rax*4]
add r10, r13
nop word [rax + rax]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x14016a443
lea r8d, [rsi - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0xc80], 0
jne 0x14016a46e
movsxd rcx, dword [rsp + r11*4 + 0x480]
lea eax, [rcx + 1]
mov dword [r13 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x480], eax
mov ecx, dword [rsp + rbp + 0x480]
inc r9d
add r10, 4
cmp r9d, ecx
jl 0x14016a430
mov r8d, dword [rsp + rbp + 0x880]
shl ebx, 8
movsxd rax, ebx
lea rbx, [rdi + rax*4]
mov r9d, dword [rbx + 0x400]
btr r9d, 0x15
dec r9d
cmp r9d, r8d
jle 0x14016a516
movsxd rax, r9d
lea r10, [rax*4]
add r10, r13
nop word [rax + rax]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x14016a4d3
lea r8d, [rsi - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0xc80], 0
jne 0x14016a4fe
movsxd rcx, dword [rsp + r11*4 + 0x880]
lea eax, [rcx - 1]
mov dword [r13 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x880], eax
mov r8d, dword [rsp + rbp + 0x880]
dec r9d
sub r10, 4
cmp r9d, r8d
jg 0x14016a4c0
mov ecx, dword [r15 + rbp]
lea eax, [rcx - 1]
cmp eax, r8d
je 0x14016a531
test ecx, ecx
jne 0x14016a6a8
cmp r8d, dword [rsp + 0x58]
jne 0x14016a6a8
mov eax, 0x80
nop word [rax + rax]
or dword [rdx], 0x200000
or dword [rdx + 0x400], 0x200000
lea rdx, [rdx + 0x800]
sub rax, 1
jne 0x14016a540
mov rax, qword [rsp + 0x50]
mov r11, qword [rsp + 0x70]
mov byte [rax], 1
cmp r11, 0xff
jge 0x14016a62a
mov r8d, dword [r12]
xor r10d, r10d
mov edx, dword [rbx + 0x400]
btr r8d, 0x15
btr edx, 0x15
sub edx, r8d
cmp edx, 0xfffe
jle 0x14016a5b1
nop dword [rax + rax]
inc r10d
mov eax, edx
mov ecx, r10d
sar eax, cl
cmp eax, 0xfffe
jg 0x14016a5a0
lea ebx, [rdx - 1]
mov dword [rsp + 0x50], ebx
movsxd r9, ebx
test ebx, ebx
js 0x14016a619
lfence
mov edi, dword [rsp + 0x40]
mov rbx, qword [rsp + 0x68]
movsxd rcx, r8d
add rcx, r9
lea r11, [rcx*4]
add r11, r13
nop dword [rax]
movsxd rdx, dword [r11]
mov r8d, r9d
mov ecx, r10d
sar r8d, cl
mov word [rbx + rdx*2], r8w
cmp edx, 0x22
jge 0x14016a601
lea eax, [rdi + rdx]
movsxd rdx, eax
mov word [rbx + rdx*2], r8w
sub r11, 4
sub r9d, 1
jns 0x14016a5e0
mov rdi, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x50]
mov r11, qword [rsp + 0x70]
mov ecx, r10d
sar ebx, cl
cmp ebx, 0xffff
jg 0x14016a6b3
inc r11
mov qword [rsp + 0x70], r11
cmp r11, 0xff
jle 0x14016a280
cmp dword [rsp + 0xe08], 4
jl 0x14016a678
mov ebx, dword [rsp + 0x40]
mov ecx, 2
sub ebx, dword [rsp + 0x44]
call fcn.1401b47e0
mov r9d, dword [rsp + 0x44]
lea rdx, str._________d_pointers___d_sorted___d_scanned_n
mov r8d, dword [rsp + 0x40]
mov rcx, rax
mov dword [rsp + 0x20], ebx
call fcn.1400735d0
mov r12, qword [rsp + 0xd98]
mov rcx, qword [rsp + 0xd80]
xor rcx, rsp
call fcn.140185380
add rsp, 0xda0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.140185d74
int3
mov ecx, 0x3ef
call fcn.14015f400
int3
mov ecx, 0x3ea
call fcn.14015f400
int3
mov ecx, 0x3ee
call fcn.14015f400
int3