Function at 0x1400d0c40
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd88
mov rax, qword [0x1403a73d0]
xor rax, rsp
mov qword [rsp + 0xd70], rax
movsxd r13, dword [rsp + 0xdf0]
mov rbx, r8
mov ebp, dword [rsp + 0xdf8]
mov rdi, r9
mov qword [rsp + 0x68], rbx
mov r10, rdx
mov dword [rsp + 0x44], r13d
mov r15, rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rcx
cmp ebp, 4
jl 0x1400d0cb8
mov ecx, 2
call fcn.1402aeab8
mov rcx, rax
lea rdx, str.________main_sort_initialise_..._n
call fcn.140017a50
mov r10, qword [rsp + 0x48]
mov eax, 0x10000
xor ecx, ecx
nop
mov dword [rdi + rax*4], ecx
sub rax, 1
jns 0x1400d0cc0
movzx edx, byte [r10]
lea r12d, [r13 - 1]
movsxd r14, r12d
shl edx, 8
mov rsi, r14
cmp r14, 3
jl 0x1400d0d89
lea r11, [r14 + 1]
shr r11, 2
lea r8, [r14 - 2]
mov eax, r11d
lea r9, [rbx - 4]
add r8, r10
lea r9, [r9 + r14*2]
neg eax
lea r14d, [r14 + rax*4]
nop dword [rax]
nop dword [rax + rax]
mov word [r9 + 4], cx
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]
xor eax, eax
mov word [r9 + 0xa], ax
movzx edx, byte [r8 + 5]
shl edx, 8
or edx, ecx
movsxd rax, edx
sar edx, 8
inc dword [rdi + rax*4]
xor eax, eax
mov word [r9 + 8], ax
movzx ecx, byte [r8 + 4]
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rdi + rax*4]
xor eax, eax
mov word [r9 + 6], ax
movzx edx, byte [r8 + 3]
shl edx, 8
or edx, ecx
mov ecx, 0
movsxd rax, edx
inc dword [rdi + rax*4]
sub r11, 1
jne 0x1400d0d10
movsxd r8, r14d
test r14d, r14d
js 0x1400d0db8
mov word [rbx + r8*2], cx
mov eax, edx
movzx ecx, byte [r8 + r10]
shl ecx, 8
sar eax, 8
mov edx, ecx
or edx, eax
mov ecx, 0
movsxd rax, edx
inc dword [rdi + rax*4]
sub r8, 1
jns 0x1400d0d91
movzx eax, byte [r10]
mov rcx, r13
mov byte [r13 + r10], al
xor r13d, r13d
mov word [rbx + rcx*2], r13w
movzx eax, byte [r10 + 1]
mov byte [rcx + r10 + 1], al
mov word [rbx + rcx*2 + 2], r13w
movzx eax, byte [r10 + 2]
mov byte [rcx + r10 + 2], al
mov word [rbx + rcx*2 + 4], r13w
movzx eax, byte [r10 + 3]
mov byte [rcx + r10 + 3], al
mov word [rbx + rcx*2 + 6], r13w
movzx eax, byte [r10 + 4]
mov byte [rcx + r10 + 4], al
mov word [rbx + rcx*2 + 8], r13w
movzx eax, byte [r10 + 5]
mov byte [rcx + r10 + 5], al
mov word [rbx + rcx*2 + 0xa], r13w
movzx eax, byte [r10 + 6]
mov byte [rcx + r10 + 6], al
mov word [rbx + rcx*2 + 0xc], r13w
movzx eax, byte [r10 + 7]
mov byte [rcx + r10 + 7], al
mov word [rbx + rcx*2 + 0xe], r13w
movzx eax, byte [r10 + 8]
mov byte [rcx + r10 + 8], al
mov word [rbx + rcx*2 + 0x10], r13w
movzx eax, byte [r10 + 9]
mov byte [rcx + r10 + 9], al
mov word [rbx + rcx*2 + 0x12], r13w
movzx eax, byte [r10 + 0xa]
mov byte [rcx + r10 + 0xa], al
mov word [rbx + rcx*2 + 0x14], r13w
movzx eax, byte [r10 + 0xb]
mov byte [rcx + r10 + 0xb], al
mov word [rbx + rcx*2 + 0x16], r13w
movzx eax, byte [r10 + 0xc]
mov byte [rcx + r10 + 0xc], al
mov word [rbx + rcx*2 + 0x18], r13w
movzx eax, byte [r10 + 0xd]
mov byte [rcx + r10 + 0xd], al
mov word [rbx + rcx*2 + 0x1a], r13w
movzx eax, byte [r10 + 0xe]
mov byte [rcx + r10 + 0xe], al
mov word [rbx + rcx*2 + 0x1c], r13w
movzx eax, byte [r10 + 0xf]
mov byte [rcx + r10 + 0xf], al
mov word [rbx + rcx*2 + 0x1e], r13w
movzx eax, byte [r10 + 0x10]
mov byte [rcx + r10 + 0x10], al
mov word [rbx + rcx*2 + 0x20], r13w
movzx eax, byte [r10 + 0x11]
mov byte [rcx + r10 + 0x11], al
mov word [rbx + rcx*2 + 0x22], r13w
movzx eax, byte [r10 + 0x12]
mov byte [rcx + r10 + 0x12], al
mov word [rbx + rcx*2 + 0x24], r13w
movzx eax, byte [r10 + 0x13]
mov byte [rcx + r10 + 0x13], al
mov word [rbx + rcx*2 + 0x26], r13w
movzx eax, byte [r10 + 0x14]
mov byte [rcx + r10 + 0x14], al
mov word [rbx + rcx*2 + 0x28], r13w
movzx eax, byte [r10 + 0x15]
mov byte [rcx + r10 + 0x15], al
mov word [rbx + rcx*2 + 0x2a], r13w
movzx eax, byte [r10 + 0x16]
mov byte [rcx + r10 + 0x16], al
mov word [rbx + rcx*2 + 0x2c], r13w
movzx eax, byte [r10 + 0x17]
mov byte [rcx + r10 + 0x17], al
mov word [rbx + rcx*2 + 0x2e], r13w
movzx eax, byte [r10 + 0x18]
mov byte [rcx + r10 + 0x18], al
mov word [rbx + rcx*2 + 0x30], r13w
movzx eax, byte [r10 + 0x19]
mov byte [rcx + r10 + 0x19], al
mov word [rbx + rcx*2 + 0x32], r13w
movzx eax, byte [r10 + 0x1a]
mov byte [rcx + r10 + 0x1a], al
mov word [rbx + rcx*2 + 0x34], r13w
movzx eax, byte [r10 + 0x1b]
mov byte [rcx + r10 + 0x1b], al
mov word [rbx + rcx*2 + 0x36], r13w
movzx eax, byte [r10 + 0x1c]
mov byte [rcx + r10 + 0x1c], al
mov word [rbx + rcx*2 + 0x38], r13w
movzx eax, byte [r10 + 0x1d]
mov byte [rcx + r10 + 0x1d], al
mov word [rbx + rcx*2 + 0x3a], r13w
movzx eax, byte [r10 + 0x1e]
mov byte [rcx + r10 + 0x1e], al
mov word [rbx + rcx*2 + 0x3c], r13w
movzx eax, byte [r10 + 0x1f]
mov byte [rcx + r10 + 0x1f], al
mov word [rbx + rcx*2 + 0x3e], r13w
movzx eax, byte [r10 + 0x20]
mov byte [rcx + r10 + 0x20], al
mov word [rbx + rcx*2 + 0x40], r13w
movzx eax, byte [r10 + 0x21]
mov byte [rcx + r10 + 0x21], al
mov word [rbx + rcx*2 + 0x42], r13w
cmp ebp, 4
jl 0x1400d0ffe
lea ecx, [r13 + 2]
call fcn.1402aeab8
mov rcx, rax
lea rdx, str.________bucket_sorting_..._n
call fcn.140017a50
mov r10, qword [rsp + 0x48]
lea r8, [rdi + 8]
mov r9d, 0x4000
nop dword [rax + rax]
mov ecx, dword [r8 + 4]
mov eax, dword [r8 - 8]
add dword [r8 - 4], eax
mov edx, dword [r8 - 4]
add edx, dword [r8]
mov dword [r8], edx
lea r8, [r8 + 0x10]
add ecx, edx
add dword [r8 - 8], ecx
mov dword [r8 - 0xc], ecx
sub r9, 1
jne 0x1400d1010
movzx r8d, byte [r10]
mov r9d, r12d
shl r8w, 8
cmp r12d, 3
jl 0x1400d110a
add r10, 0xfffffffffffffffe
movzx ebx, r8w
add r10, rsi
lea r11d, [r12 - 2]
movzx edx, byte [r10 + 2]
lea r10, [r10 - 4]
movzx eax, dx
shr rbx, 8
shl ax, 8
movzx ecx, ax
or rcx, rbx
mov eax, dword [rdi + rcx*4]
dec eax
mov dword [rdi + rcx*4], eax
cdqe
mov dword [r15 + rax*4], r9d
sub r9d, 4
movzx r8d, byte [r10 + 5]
movzx eax, r8w
shl ax, 8
movzx ecx, ax
or rcx, rdx
mov eax, dword [rdi + rcx*4]
dec eax
mov dword [rdi + rcx*4], eax
movsxd rcx, eax
lea eax, [r11 + 1]
mov dword [r15 + rcx*4], eax
movzx edx, byte [r10 + 4]
movzx eax, dx
shl ax, 8
movzx ecx, ax
or rcx, r8
mov eax, dword [rdi + rcx*4]
dec eax
mov dword [rdi + rcx*4], eax
cdqe
mov dword [r15 + rax*4], r11d
movzx r8d, byte [r10 + 3]
shl r8w, 8
or r8w, dx
movzx ebx, r8w
mov eax, dword [rdi + rbx*4]
dec eax
mov dword [rdi + rbx*4], eax
movsxd rcx, eax
lea eax, [r11 - 1]
sub r11d, 4
mov dword [r15 + rcx*4], eax
cmp r9d, 3
jge 0x1400d1060
mov r10, qword [rsp + 0x48]
test r9d, r9d
js 0x1400d1154
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 [r15 + rax*4], r9d
sub r9d, 1
jns 0x1400d1120
mov ecx, r13d
mov rax, r13
nop word [rax + rax]
cmp rax, 0x100
jae 0x1400d1666
mov dword [rsp + rax*4 + 0x70], ecx
inc ecx
mov byte [rsp + rax + 0xc70], r13b
inc rax
cmp ecx, 0xff
jle 0x1400d1160
mov r10d, 1
nop dword [rax + rax]
lea r10d, [r10 + r10*2]
inc r10d
cmp r10d, 0x100
jle 0x1400d1190
mov eax, 0x55555556
imul r10d
mov r10d, edx
shr r10d, 0x1f
add r10d, edx
mov ebp, r10d
cmp r10d, 0xff
jg 0x1400d1261
movsxd rbx, r10d
mov r9, rbx
nop dword [rax + rax]
mov r14d, dword [rsp + rbx*4 + 0x70]
mov r8d, ebp
mov ecx, r14d
mov rax, rbx
shl ecx, 8
movsxd rdx, ecx
mov rcx, rbx
sub rcx, r9
mov r11d, dword [rdi + rdx*4 + 0x400]
sub r11d, dword [rdi + rdx*4]
mov edx, dword [rsp + rcx*4 + 0x70]
shl edx, 8
movsxd rcx, edx
mov edx, dword [rdi + rcx*4 + 0x400]
sub edx, dword [rdi + rcx*4]
cmp edx, r11d
jbe 0x1400d124b
lea esi, [r10 - 1]
mov rdx, rax
sub r8d, r10d
sub rdx, r9
mov ecx, dword [rsp + rdx*4 + 0x70]
mov dword [rsp + rax*4 + 0x70], ecx
mov rax, rdx
cmp r8d, esi
jle 0x1400d124b
mov rcx, rdx
sub rcx, r9
mov edx, dword [rsp + rcx*4 + 0x70]
shl edx, 8
movsxd rcx, edx
mov edx, dword [rdi + rcx*4 + 0x400]
sub edx, dword [rdi + rcx*4]
cmp edx, r11d
ja 0x1400d1213
inc ebp
mov dword [rsp + rax*4 + 0x70], r14d
inc rbx
cmp ebp, 0xff
jle 0x1400d11d0
cmp r10d, 1
jne 0x1400d11a0
mov esi, r13d
mov dword [rsp + 0x40], r13d
mov r11, r13
mov qword [rsp + 0x60], r13
nop dword [rax + rax]
movsxd rbx, dword [rsp + r11*4 + 0x70]
mov r14d, r13d
mov dword [rsp + 0x50], ebx
mov rax, rbx
mov r12, r13
cmp r14d, ebx
je 0x1400d1386
shl rax, 8
add rax, r12
mov ebp, dword [rdi + rax*4]
lea r15, [rdi + rax*4]
bt ebp, 0x15
jb 0x1400d137c
mov esi, dword [r15 + 4]
btr ebp, 0x15
btr esi, 0x15
dec esi
cmp esi, ebp
jle 0x1400d1378
mov r13d, esi
sub r13d, ebp
cmp dword [rsp + 0xdf8], 4
jl 0x1400d130c
mov ecx, 2
lea ebx, [r13 + 1]
call fcn.1402aeab8
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 + 0x40]
mov r8d, ebx
mov r9d, r14d
mov dword [rsp + 0x20], eax
call fcn.140017a50
mov rax, qword [rsp + 0xe00]
mov r9d, dword [rsp + 0x44]
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call fcn.1400d0800
mov esi, dword [rsp + 0x40]
mov rax, qword [rsp + 0xe00]
inc esi
add esi, r13d
mov dword [rsp + 0x40], esi
cmp dword [rax], 0
jge 0x1400d137c
mov rcx, qword [rsp + 0xd70]
xor rcx, rsp
call fcn.14010f500
add rsp, 0xd88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov esi, dword [rsp + 0x40]
or dword [r15], 0x200000
movsxd rax, ebx
inc r14d
inc r12
cmp r14d, 0xff
jle 0x1400d1292
lea rcx, [rsp + 0xc70]
add rcx, rax
mov qword [rsp + 0x50], rcx
cmp byte [rcx], 0
jne 0x1400d1682
lea r12, [rax*4]
xor eax, eax
lea rdx, [r12 + rdi]
mov ecx, eax
mov r8, rdx
nop word [rax + rax]
mov eax, dword [r8]
lea r8, [r8 + 0x400]
btr eax, 0x15
mov dword [rsp + rcx + 0x470], eax
mov eax, dword [r8 - 0x3fc]
btr eax, 0x15
dec eax
mov dword [rsp + rcx + 0x870], eax
add rcx, 4
cmp rcx, 0x3fc
jle 0x1400d13d0
mov r15, qword [rsp + 0x58]
mov eax, ebx
mov r13d, dword [rsp + 0x44]
mov r14, qword [rsp + 0x48]
shl eax, 8
cdqe
mov r9d, dword [rdi + rax*4]
lea rbp, [rdi + rax*4]
btr r9d, 0x15
cmp r9d, dword [rsp + r12 + 0x470]
jge 0x1400d148e
movsxd rax, r9d
lea r10, [r15 + rax*4]
nop word [rax + rax]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x1400d1453
lea r8d, [r13 - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0xc70], 0
jne 0x1400d147d
movsxd rcx, dword [rsp + r11*4 + 0x470]
lea eax, [rcx + 1]
mov dword [r15 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x470], eax
inc r9d
add r10, 4
cmp r9d, dword [rsp + r12 + 0x470]
jl 0x1400d1440
mov ecx, dword [rsp + r12 + 0x870]
shl ebx, 8
movsxd rax, ebx
lea rbx, [rdi + rax*4]
mov r9d, dword [rbx + 0x400]
btr r9d, 0x15
dec r9d
cmp r9d, ecx
jle 0x1400d1511
movsxd rax, r9d
lea r10, [r15 + rax*4]
nop dword [rax + rax]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x1400d14d3
lea r8d, [r13 - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0xc70], 0
jne 0x1400d14fd
movsxd rcx, dword [rsp + r11*4 + 0x870]
lea eax, [rcx - 1]
mov dword [r15 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x870], eax
mov ecx, dword [rsp + r12 + 0x870]
dec r9d
sub r10, 4
cmp r9d, ecx
jg 0x1400d14c0
mov r8d, dword [rsp + r12 + 0x470]
lea eax, [r8 - 1]
cmp eax, ecx
je 0x1400d1536
test r8d, r8d
jne 0x1400d166c
lea eax, [r13 - 1]
cmp ecx, eax
jne 0x1400d166c
mov eax, 0x80
nop dword [rax + rax]
or dword [rdx], 0x200000
or dword [rdx + 0x400], 0x200000
lea rdx, [rdx + 0x800]
sub rax, 1
jne 0x1400d1540
mov rax, qword [rsp + 0x50]
mov r11, qword [rsp + 0x60]
mov byte [rax], 1
cmp r11, 0xff
jge 0x1400d1612
mov r8d, dword [rbp]
xor eax, eax
mov edx, dword [rbx + 0x400]
btr r8d, 0x15
btr edx, 0x15
mov r10d, eax
sub edx, r8d
cmp edx, 0xfffe
jle 0x1400d15b1
nop word [rax + rax]
inc r10d
mov eax, edx
mov ecx, r10d
sar eax, cl
cmp eax, 0xfffe
jg 0x1400d15a0
lea ebx, [rdx - 1]
movsxd r9, ebx
test ebx, ebx
js 0x1400d1605
mov rsi, qword [rsp + 0x68]
movsxd rcx, r8d
add rcx, r9
lea r11, [r15 + rcx*4]
nop word [rax + rax]
movsxd rdx, dword [r11]
mov r8d, r9d
mov ecx, r10d
sar r8d, cl
mov word [rsi + rdx*2], r8w
cmp edx, 0x22
jge 0x1400d15f2
lea eax, [rdx + r13]
movsxd rdx, eax
mov word [rsi + rdx*2], r8w
sub r11, 4
sub r9d, 1
jns 0x1400d15d0
mov esi, dword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
mov ecx, r10d
sar ebx, cl
cmp ebx, 0xffff
jg 0x1400d1677
inc r11
mov qword [rsp + 0x60], r11
cmp r11, 0xff
jg 0x1400d162b
xor r13d, r13d
jmp 0x1400d1280
cmp dword [rsp + 0xdf8], 4
jl 0x1400d1354
mov ebx, r13d
mov ecx, 2
sub ebx, esi
call fcn.1402aeab8
mov rcx, rax
mov dword [rsp + 0x20], ebx
mov r9d, esi
lea rdx, str._________d_pointers___d_sorted___d_scanned_n
mov r8d, r13d
call fcn.140017a50
jmp 0x1400d1354
call fcn.14010fbd4
int3
mov ecx, 0x3ef
call fcn.1400beaf0
int3
mov ecx, 0x3ea
call fcn.1400beaf0
int3
mov ecx, 0x3ee
call fcn.1400beaf0
int3