Function at 0x140231420
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xdb0
mov rax, qword [0x1402cbc00]
xor rax, rsp
mov qword [rsp + 0xd90], rax
mov ebp, dword [rsp + 0xe18]
mov rdi, r9
mov qword [rsp + 0x80], r9
mov rsi, r8
mov r9d, dword [rsp + 0xe10]
mov r10, rdx
mov dword [rsp + 0x40], r9d
mov r13, rcx
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x60], rcx
cmp ebp, 4
jl 0x1402314a3
mov ecx, 2
call fcn.1401f0068
mov rcx, rax
lea rdx, str.________main_sort_initialise_..._n
call fcn.140001c70
mov r9d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
mov eax, 0x10000
xor r12d, r12d
nop dword [rax + rax]
mov dword [rdi + rax*4], r12d
sub rax, 1
jns 0x1402314b0
movzx edx, byte [r10]
lea r14d, [r9 - 1]
movsxd r11, r14d
shl edx, 8
mov rbx, r11
mov dword [rsp + 0x58], r14d
cmp r11, 3
jl 0x140231578
lea r8, [r10 - 2]
lea r10, [r11 + 1]
add r8, rbx
shr r10, 2
lea r9, [rsi - 4]
mov eax, r10d
lea r9, [r9 + r11*2]
neg eax
lea r11d, [r11 + rax*4]
nop word [rax + rax]
mov word [r9 + 4], r12w
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], r12w
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], r12w
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], r12w
movzx edx, byte [r8 + 3]
shl edx, 8
or edx, ecx
movsxd rax, edx
inc dword [rdi + rax*4]
sub r10, 1
jne 0x140231500
mov r9d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
movsxd r8, r11d
test r11d, r11d
js 0x1402315a2
mov eax, edx
mov word [rsi + r8*2], r12w
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 0x140231580
movzx eax, byte [r10]
movsxd rcx, r9d
mov byte [rcx + r10], al
mov word [rsi + rcx*2], r12w
movzx eax, byte [r10 + 1]
mov byte [rcx + r10 + 1], al
mov word [rsi + rcx*2 + 2], r12w
movzx eax, byte [r10 + 2]
mov byte [rcx + r10 + 2], al
mov word [rsi + rcx*2 + 4], r12w
movzx eax, byte [r10 + 3]
mov byte [rcx + r10 + 3], al
mov word [rsi + rcx*2 + 6], r12w
movzx eax, byte [r10 + 4]
mov byte [rcx + r10 + 4], al
mov word [rsi + rcx*2 + 8], r12w
movzx eax, byte [r10 + 5]
mov byte [rcx + r10 + 5], al
mov word [rsi + rcx*2 + 0xa], r12w
movzx eax, byte [r10 + 6]
mov byte [rcx + r10 + 6], al
mov word [rsi + rcx*2 + 0xc], r12w
movzx eax, byte [r10 + 7]
mov byte [rcx + r10 + 7], al
mov word [rsi + rcx*2 + 0xe], r12w
movzx eax, byte [r10 + 8]
mov byte [rcx + r10 + 8], al
mov word [rsi + rcx*2 + 0x10], r12w
movzx eax, byte [r10 + 9]
mov byte [rcx + r10 + 9], al
mov word [rsi + rcx*2 + 0x12], r12w
movzx eax, byte [r10 + 0xa]
mov byte [rcx + r10 + 0xa], al
mov word [rsi + rcx*2 + 0x14], r12w
movzx eax, byte [r10 + 0xb]
mov byte [rcx + r10 + 0xb], al
mov word [rsi + rcx*2 + 0x16], r12w
movzx eax, byte [r10 + 0xc]
mov byte [rcx + r10 + 0xc], al
mov word [rsi + rcx*2 + 0x18], r12w
movzx eax, byte [r10 + 0xd]
mov byte [rcx + r10 + 0xd], al
mov word [rsi + rcx*2 + 0x1a], r12w
movzx eax, byte [r10 + 0xe]
mov byte [rcx + r10 + 0xe], al
mov word [rsi + rcx*2 + 0x1c], r12w
movzx eax, byte [r10 + 0xf]
mov byte [rcx + r10 + 0xf], al
mov word [rsi + rcx*2 + 0x1e], r12w
movzx eax, byte [r10 + 0x10]
mov byte [rcx + r10 + 0x10], al
mov word [rsi + rcx*2 + 0x20], r12w
movzx eax, byte [r10 + 0x11]
mov byte [rcx + r10 + 0x11], al
mov word [rsi + rcx*2 + 0x22], r12w
movzx eax, byte [r10 + 0x12]
mov byte [rcx + r10 + 0x12], al
mov word [rsi + rcx*2 + 0x24], r12w
movzx eax, byte [r10 + 0x13]
mov byte [rcx + r10 + 0x13], al
mov word [rsi + rcx*2 + 0x26], r12w
movzx eax, byte [r10 + 0x14]
mov byte [rcx + r10 + 0x14], al
mov word [rsi + rcx*2 + 0x28], r12w
movzx eax, byte [r10 + 0x15]
mov byte [rcx + r10 + 0x15], al
mov word [rsi + rcx*2 + 0x2a], r12w
movzx eax, byte [r10 + 0x16]
mov byte [rcx + r10 + 0x16], al
mov word [rsi + rcx*2 + 0x2c], r12w
movzx eax, byte [r10 + 0x17]
mov byte [rcx + r10 + 0x17], al
mov word [rsi + rcx*2 + 0x2e], r12w
movzx eax, byte [r10 + 0x18]
mov byte [rcx + r10 + 0x18], al
mov word [rsi + rcx*2 + 0x30], r12w
movzx eax, byte [r10 + 0x19]
mov byte [rcx + r10 + 0x19], al
mov word [rsi + rcx*2 + 0x32], r12w
movzx eax, byte [r10 + 0x1a]
mov byte [rcx + r10 + 0x1a], al
mov word [rsi + rcx*2 + 0x34], r12w
movzx eax, byte [r10 + 0x1b]
mov byte [rcx + r10 + 0x1b], al
mov word [rsi + rcx*2 + 0x36], r12w
movzx eax, byte [r10 + 0x1c]
mov byte [rcx + r10 + 0x1c], al
mov word [rsi + rcx*2 + 0x38], r12w
movzx eax, byte [r10 + 0x1d]
mov byte [rcx + r10 + 0x1d], al
mov word [rsi + rcx*2 + 0x3a], r12w
movzx eax, byte [r10 + 0x1e]
mov byte [rcx + r10 + 0x1e], al
mov word [rsi + rcx*2 + 0x3c], r12w
movzx eax, byte [r10 + 0x1f]
mov byte [rcx + r10 + 0x1f], al
mov word [rsi + rcx*2 + 0x3e], r12w
movzx eax, byte [r10 + 0x20]
mov byte [rcx + r10 + 0x20], al
mov word [rsi + rcx*2 + 0x40], r12w
movzx eax, byte [r10 + 0x21]
mov byte [rcx + r10 + 0x21], al
mov word [rsi + rcx*2 + 0x42], r12w
cmp ebp, 4
jl 0x1402317e5
mov ecx, 2
call fcn.1401f0068
mov rcx, rax
lea rdx, str.________bucket_sorting_..._n
call fcn.140001c70
mov r10, qword [rsp + 0x50]
lea r8, [rdi + 8]
mov r9d, 0x4000
nop
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 0x1402317f0
movzx r8d, byte [r10]
mov r9d, r14d
shl r8w, 8
cmp r14d, 3
jl 0x1402318f8
add r10, 0xfffffffffffffffe
movzx edx, r8w
add r10, rbx
lea r11d, [r14 - 2]
nop
movzx eax, byte [r10 + 2]
lea r10, [r10 - 4]
shl ax, 8
movzx ecx, ax
shr rdx, 8
or rdx, rcx
ror cx, 8
mov eax, dword [rdi + rdx*4]
dec eax
mov dword [rdi + rdx*4], eax
cdqe
mov dword [r13 + rax*4], r9d
sub r9d, 4
movzx eax, byte [r10 + 5]
shl ax, 8
movzx edx, ax
movzx eax, cx
or rax, rdx
ror dx, 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 eax, byte [r10 + 4]
shl ax, 8
movzx r8d, ax
movzx eax, dx
or rax, r8
ror r8w, 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 eax, byte [r10 + 3]
shl ax, 8
or r8w, ax
movzx edx, r8w
mov eax, dword [rdi + rdx*4]
dec eax
mov dword [rdi + rdx*4], eax
movsxd rcx, eax
lea eax, [r11 - 1]
sub r11d, 4
mov dword [r13 + rcx*4], eax
cmp r9d, 3
jge 0x140231840
mov r10, qword [rsp + 0x50]
test r9d, r9d
js 0x140231940
movsxd rdx, r9d
add rdx, r10
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
shl ax, 8
shr r8w, 8
or ax, r8w
movzx r8d, ax
mov ecx, dword [rdi + r8*4]
dec ecx
movsxd rax, ecx
mov dword [rdi + r8*4], ecx
mov dword [r13 + rax*4], r9d
sub r9d, 1
jns 0x140231910
mov ecx, r12d
mov rax, r12
nop word [rax + rax]
cmp rax, 0x100
jae 0x140231ec9
mov dword [rsp + rax*4 + 0x90], ecx
inc ecx
mov byte [rsp + rax + 0xc90], r12b
inc rax
cmp ecx, 0xff
jle 0x140231950
mov qword [rsp + 0xda8], r15
mov r11d, 1
nop word [rax + rax]
lea r11d, [r11 + r11*2]
inc r11d
cmp r11d, 0x100
jle 0x140231990
mov eax, 0x55555556
imul r11d
mov r11d, edx
shr r11d, 0x1f
add r11d, edx
mov r14d, r11d
cmp r11d, 0xff
jg 0x140231a96
movsxd rsi, r11d
mov r10, rsi
nop dword [rax + rax]
mov r15d, dword [rsp + rsi*4 + 0x90]
mov r9d, r14d
mov ecx, r15d
mov rax, rsi
shl ecx, 8
movsxd rdx, ecx
mov ecx, r15d
shl ecx, 8
movsxd rcx, ecx
mov ebx, dword [rdi + rdx*4 + 0x400]
sub ebx, dword [rdi + rcx*4]
mov rcx, rsi
sub rcx, r10
mov r8d, dword [rsp + rcx*4 + 0x90]
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 0x140231a7b
lea ebp, [r11 - 1]
nop word [rax + rax]
mov rdx, rax
sub r9d, r11d
sub rdx, r10
mov ecx, dword [rsp + rdx*4 + 0x90]
mov dword [rsp + rax*4 + 0x90], ecx
mov rax, rdx
cmp r9d, ebp
jle 0x140231a7b
mov rcx, rdx
sub rcx, r10
mov r8d, dword [rsp + rcx*4 + 0x90]
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 0x140231a30
inc r14d
mov dword [rsp + rax*4 + 0x90], r15d
inc rsi
cmp r14d, 0xff
jle 0x1402319d0
cmp r11d, 1
jne 0x1402319a0
mov ebp, r12d
mov dword [rsp + 0x44], r12d
mov r14, r12
mov qword [rsp + 0x78], r12
movsxd rsi, dword [rsp + r14*4 + 0x90]
mov r14d, r12d
mov rbx, rsi
mov dword [rsp + 0x48], esi
mov qword [rsp + 0x68], rbx
cmp r14d, esi
je 0x140231bb0
mov rax, rbx
shl rax, 8
add rax, r12
mov ebp, dword [rdi + rax*4]
lea r15, [rdi + rax*4]
bt ebp, 0x15
jb 0x140231ba5
mov esi, dword [r15 + 4]
btr ebp, 0x15
btr esi, 0x15
dec esi
cmp esi, ebp
jle 0x140231ba1
mov r13d, esi
sub r13d, ebp
cmp dword [rsp + 0xe18], 4
jl 0x140231b47
mov ecx, 2
lea ebx, [r13 + 1]
call fcn.1401f0068
mov r8d, dword [rsp + 0x48]
lea rdx, str.________qsort__0x_x__0x_x____done__d___this__d_n
mov rcx, rax
mov dword [rsp + 0x28], ebx
mov eax, dword [rsp + 0x44]
mov r9d, r14d
mov dword [rsp + 0x20], eax
call fcn.140001c70
mov rbx, qword [rsp + 0x68]
mov rax, qword [rsp + 0xe20]
mov r9d, dword [rsp + 0x40]
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call fcn.140230bb0
mov ebp, dword [rsp + 0x44]
mov rax, qword [rsp + 0xe20]
inc ebp
add ebp, r13d
mov dword [rsp + 0x44], ebp
cmp dword [rax], 0
jl 0x140231e9f
mov esi, dword [rsp + 0x48]
jmp 0x140231ba9
mov esi, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x44]
or dword [r15], 0x200000
inc r14d
inc r12
cmp r14d, 0xff
jle 0x140231ac7
lea rax, [rsp + 0xc90]
add rax, rbx
mov qword [rsp + 0x68], rax
cmp byte [rax], 0
je 0x140231be2
mov ecx, 0x3ee
call fcn.1402278a0
lea r15, [rbx*4]
xor ecx, ecx
lea rbx, [r15 + rdi]
mov rdx, rbx
mov eax, dword [rdx]
lea rdx, [rdx + 0x400]
btr eax, 0x15
mov dword [rsp + rcx + 0x490], eax
mov eax, dword [rdx - 0x3fc]
btr eax, 0x15
dec eax
mov dword [rsp + rcx + 0x890], eax
add rcx, 4
cmp rcx, 0x3fc
jle 0x140231bf3
mov r13, qword [rsp + 0x60]
mov eax, esi
mov r11d, dword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
shl eax, 8
cdqe
mov r8d, dword [rdi + rax*4]
lea r12, [rdi + rax*4]
btr r8d, 0x15
cmp r8d, dword [rsp + r15 + 0x490]
jge 0x140231cae
movsxd rax, r8d
lea r9, [rax*4]
add r9, r13
mov eax, dword [r9]
lea edx, [rax - 1]
test edx, edx
jns 0x140231c72
lea edx, [r11 - 1]
add edx, eax
movsxd rax, edx
movzx r10d, byte [rax + r14]
cmp byte [rsp + r10 + 0xc90], 0
jne 0x140231c9d
movsxd rcx, dword [rsp + r10*4 + 0x490]
lea eax, [rcx + 1]
mov dword [r13 + rcx*4], edx
mov dword [rsp + r10*4 + 0x490], eax
inc r8d
add r9, 4
cmp r8d, dword [rsp + r15 + 0x490]
jl 0x140231c62
mov ecx, dword [rsp + r15 + 0x890]
shl esi, 8
movsxd rax, esi
lea rsi, [rdi + rax*4]
mov r8d, dword [rsi + 0x400]
btr r8d, 0x15
dec r8d
cmp r8d, ecx
jle 0x140231d31
movsxd rax, r8d
lea r9, [rax*4]
add r9, r13
mov eax, dword [r9]
lea edx, [rax - 1]
test edx, edx
jns 0x140231cf2
lea edx, [r11 - 1]
add edx, eax
movsxd rax, edx
movzx r10d, byte [rax + r14]
cmp byte [rsp + r10 + 0xc90], 0
jne 0x140231d1d
movsxd rcx, dword [rsp + r10*4 + 0x890]
lea eax, [rcx - 1]
mov dword [r13 + rcx*4], edx
mov dword [rsp + r10*4 + 0x890], eax
mov ecx, dword [rsp + r15 + 0x890]
dec r8d
sub r9, 4
cmp r8d, ecx
jg 0x140231ce2
mov edx, dword [rsp + r15 + 0x490]
lea eax, [rdx - 1]
cmp eax, ecx
je 0x140231d54
test edx, edx
jne 0x140231d4a
cmp ecx, dword [rsp + 0x58]
je 0x140231d54
mov ecx, 0x3ef
call fcn.1402278a0
mov eax, 0x80
nop dword [rax]
or dword [rbx], 0x200000
or dword [rbx + 0x400], 0x200000
lea rbx, [rbx + 0x800]
sub rax, 1
jne 0x140231d60
mov rax, qword [rsp + 0x68]
mov r14, qword [rsp + 0x78]
mov byte [rax], 1
cmp r14, 0xff
jge 0x140231e52
mov r8d, dword [r12]
xor r12d, r12d
mov edx, dword [rsi + 0x400]
btr r8d, 0x15
btr edx, 0x15
mov r10d, r12d
sub edx, r8d
cmp edx, 0xfffe
jle 0x140231dd1
nop dword [rax + rax]
inc r10d
mov eax, edx
mov ecx, r10d
sar eax, cl
cmp eax, 0xfffe
jg 0x140231dc0
lea ebx, [rdx - 1]
movsxd r9, ebx
test ebx, ebx
js 0x140231e39
mov edi, dword [rsp + 0x40]
mov rbp, qword [rsp + 0x70]
movsxd rcx, r8d
add rcx, r9
lea r11, [rcx*4]
add r11, r13
nop word [rax + rax]
movsxd rdx, dword [r11]
mov r8d, r9d
mov ecx, r10d
sar r8d, cl
mov word [rbp + rdx*2], r8w
cmp edx, 0x22
jge 0x140231e23
lea eax, [rdi + rdx]
movsxd rdx, eax
mov word [rbp + rdx*2], r8w
sub r11, 4
sub r9d, 1
jns 0x140231e00
mov rdi, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x44]
mov ecx, r10d
sar ebx, cl
cmp ebx, 0xffff
jle 0x140231e55
mov ecx, 0x3ea
call fcn.1402278a0
jmp 0x140231e55
xor r12d, r12d
inc r14
mov qword [rsp + 0x78], r14
cmp r14, 0xff
jle 0x140231ab0
cmp dword [rsp + 0xe18], 4
jl 0x140231e9f
mov ebx, dword [rsp + 0x40]
mov ecx, 2
sub ebx, ebp
call fcn.1401f0068
mov r8d, dword [rsp + 0x40]
lea rdx, str._________d_pointers___d_sorted___d_scanned_n
mov rcx, rax
mov dword [rsp + 0x20], ebx
mov r9d, ebp
call fcn.140001c70
mov r15, qword [rsp + 0xda8]
mov rcx, qword [rsp + 0xd90]
xor rcx, rsp
call fcn.1401e1190
add rsp, 0xdb0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.1401e1794
int3