Function at 0x140041570
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rbp, rdx
mov qword [rsp + 0x38], rcx
cmp rdx, 0x15
jae 0x1400415c1
cmp rbp, 1
jbe 0x140042084
mov r8d, 1
mov rcx, qword [rsp + 0x38]
mov rdx, rbp
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14003d290
mov rax, rbp
shl rax, 4
movabs rdx, 0x7fffffffffffffe0
and rdx, rax
movzx eax, byte [0x140214210]
xor ecx, ecx
call fcn.140157b20
test rax, rax
je 0x1400421ac
mov rsi, rax
movzx eax, byte [0x140214210]
mov edx, 0x100
xor ecx, ecx
call fcn.140157b20
test rax, rax
je 0x1400421b8
mov rdi, rax
mov rax, qword [rsp + 0x38]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x48], rcx
lea rcx, [rax + 0x10]
mov qword [rsp + 0x60], rcx
lea rcx, [rax - 0x10]
mov qword [rsp + 0x58], rcx
add rax, 0xffffffffffffffe0
mov qword [rsp + 0x68], rax
mov eax, 0x10
mov qword [rsp + 0x50], rax
xor eax, eax
xor r15d, r15d
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x30], rsi
jmp 0x140041674
mov r15d, 1
mov rax, qword [rsp + 0x40]
cmp rax, rbp
jae 0x14004204a
mov rbx, rdi
mov rsi, rax
mov r14, rbp
sub r14, rax
mov r13, rax
shl r13, 5
mov rax, qword [rsp + 0x38]
lea rdi, [rax + r13]
cmp r14, 2
jae 0x140041710
mov r12, r14
lea rcx, [r12 + rsi]
mov r13, rcx
sub r13, rsi
jb 0x140042153
cmp rcx, rbp
ja 0x140042153
jae 0x1400417e0
cmp r12, 0xa
jae 0x1400417e0
lea r13, [rsi + 0xa]
cmp r13, rbp
cmovae r13, rbp
mov qword [rsp + 0x40], r13
sub r13, rsi
jb 0x14004216b
cmp r12, 1
adc r12, 0
mov rcx, rdi
mov rdx, r13
mov r8, r12
call fcn.14003d290
cmp r15, qword [rsp + 0x50]
je 0x1400417f0
mov rdi, rbx
jmp 0x14004183e
lea rcx, [rdi + 0x20]
mov rdx, rdi
call fcn.14002eb30
mov r12d, 2
test al, al
je 0x140042000
cmp r14, 2
je 0x140041763
mov rax, qword [rsp + 0x48]
lea rbp, [rax + r13]
nop dword [rax]
mov rdx, rbp
add rbp, 0x20
mov rcx, rbp
call fcn.14002eb30
test al, al
je 0x14004175e
inc r12
cmp r14, r12
jne 0x140041740
mov r12, r14
mov rbp, qword [rsp + 0x28]
mov rcx, r12
add rcx, rsi
jb 0x14004218b
cmp rcx, rbp
ja 0x14004219d
cmp r12, 2
jb 0x14004169d
mov rax, r12
shr rax, 1
add r13, qword [rsp + 0x60]
mov rdx, rcx
shl rcx, 5
add rcx, qword [rsp + 0x58]
nop dword [rax]
movups xmm0, xmmword [r13 - 0x10]
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [r13 - 0x10], xmm1
movups xmmword [rcx - 0x10], xmm0
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [rcx]
movdqu xmmword [r13], xmm1
movdqu xmmword [rcx], xmm0
add r13, 0x20
add rcx, 0xffffffffffffffe0
dec rax
jne 0x1400417a0
mov rcx, rdx
jmp 0x14004169d
mov qword [rsp + 0x40], rcx
cmp r15, qword [rsp + 0x50]
jne 0x1400416fc
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x140214210]
xor ecx, ecx
call fcn.140157b20
test rax, rax
je 0x14004217f
mov rdi, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x50], rax
mov r8, r15
shl r8, 4
mov rcx, rdi
mov rdx, rbx
call fcn.1401af560
mov rcx, qword [0x140214150]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, r15
shl rax, 4
mov qword [rdi + rax], r13
mov qword [rdi + rax + 8], rsi
inc r15
mov rax, r15
cmp r15, 2
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0x70], rdi
jae 0x1400418e2
jmp 0x140041666
mov r12, r13
mov rdx, rsi
mov rbp, qword [rsp + 0x28]
sub rdi, rdx
mov rcx, r12
mov r8, rdi
call fcn.1401af560
mov rax, qword [rsp + 0x88]
add rax, r15
mov qword [r14], rax
mov rax, qword [rsp + 0x90]
mov qword [r14 + 8], rax
mov rcx, qword [rsp + 0x80]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x98]
not rax
mov r8, qword [rsp + 0x78]
add r8, rax
shl r8, 4
call fcn.1401af560
mov rax, qword [rsp + 0xa0]
cmp rax, 1
mov rdi, qword [rsp + 0x70]
jbe 0x140041660
mov r15, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rdi + rcx]
mov rcx, qword [rdi + rcx + 8]
add rcx, rax
cmp rcx, rbp
je 0x140041950
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rdi - 0x20]
cmp r8, rax
jbe 0x140041950
cmp r15, 2
jbe 0x140042034
lea r11, [r15 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rdi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140041965
cmp r15, 3
jbe 0x14004203f
add r8, rcx
cmp qword [rdx + rdi - 0x40], r8
jbe 0x140041965
jmp 0x140041666
cmp r15, 3
jb 0x14004196a
lea r11, [r15 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rdi + rcx]
cmp rcx, rax
jb 0x14004196e
lea r11, [r15 - 2]
cmp r15, r11
jbe 0x140042099
lea r14, [r11 + 1]
cmp r15, r14
jbe 0x1400420e4
mov rax, r11
shl rax, 4
mov r12, qword [rdi + rax + 8]
shl r14, 4
mov rdx, qword [rdi + r14]
mov rbx, qword [rdi + r14 + 8]
add rbx, rdx
mov rsi, rbx
sub rsi, r12
jb 0x14004212f
cmp rbx, rbp
ja 0x140042141
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x98], r11
mov qword [rsp + 0xa0], r10
lea rdx, [rdi + rax]
mov qword [rsp + 0x80], rdx
mov r15, qword [rdi + rax]
add r14, rdi
mov qword [rsp + 0x90], r12
shl r12, 5
add r12, qword [rsp + 0x38]
mov rdi, r15
shl rdi, 5
lea r13, [r12 + rdi]
shl rbx, 5
mov rbp, rsi
sub rbp, r15
cmp rbp, r15
jae 0x140041ce0
mov rdi, rbp
shl rdi, 5
mov rsi, qword [rsp + 0x30]
mov rcx, rsi
mov rdx, r13
mov r8, rdi
call fcn.1401af560
add rdi, rsi
test r15, r15
jle 0x140041870
test rbp, rbp
jle 0x140041870
add rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x28]
mov r10d, 0xff
nop word cs:[rax + rax]
movzx eax, word [rdi - 0x20]
movzx edx, word [r13 - 0x20]
test ax, ax
je 0x140041c40
test dx, dx
je 0x140041c45
movdqu xmm1, xmmword [rdi - 0x1c]
movdqu xmm0, xmmword [r13 - 0x1c]
movd ecx, xmm1
mov edx, ecx
rol dx, 8
movd r8d, xmm0
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm0, 1
mov edx, ecx
rol dx, 8
pextrw r8d, xmm1, 1
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp r8w, cx
setne al
cmp r9w, dx
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm1, 2
mov edx, ecx
rol dx, 8
pextrw r8d, xmm0, 2
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm1, 3
mov edx, ecx
rol dx, 8
pextrw r8d, xmm0, 3
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm1, 4
mov edx, ecx
rol dx, 8
pextrw r8d, xmm0, 4
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm1, 5
mov edx, ecx
rol dx, 8
pextrw r8d, xmm0, 5
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw ecx, xmm1, 6
mov edx, ecx
rol dx, 8
pextrw r8d, xmm0, 6
mov r9d, r8d
rol r9w, 8
xor eax, eax
cmp cx, r8w
setne al
cmp dx, r9w
cmovb eax, r10d
test al, al
jne 0x140041c00
pextrw eax, xmm1, 7
mov edx, eax
rol dx, 8
pextrw ecx, xmm0, 7
mov r8d, ecx
rol r8w, 8
cmp ax, cx
setne al
mov cl, 0xff
cmp dx, r8w
jb 0x140041c51
mov ecx, eax
test al, al
jne 0x140041c51
movzx eax, word [r13 - 4]
mov cl, 0xff
cmp word [rdi - 4], ax
jb 0x140041c51
jne 0x140041cd6
mov eax, dword [r13 - 0xc]
cmp dword [rdi - 0xc], eax
jb 0x140041c51
mov cl, 1
jne 0x140041c51
mov eax, dword [rdi - 8]
xor ecx, ecx
cmp eax, dword [r13 - 8]
jmp 0x140041c4a
test dx, dx
je 0x140041ca3
xor ecx, ecx
cmp ax, dx
setne cl
cmovb ecx, r10d
xor eax, eax
xor edx, edx
cmp cl, 0xff
setne al
sete dl
shl rdx, 5
sub r13, rdx
shl rax, 5
sub rdi, rax
cmp cl, 0xff
mov rax, rdi
cmove rax, r13
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmmword [rbx], xmm0
cmp r13, r12
jbe 0x140041fe0
add rbx, 0xffffffffffffffe0
cmp rdi, rsi
ja 0x140041a60
jmp 0x140041fe0
mov eax, dword [rdi - 0x1e]
mov ecx, dword [r13 - 0x1e]
bswap eax
bswap ecx
xor edx, edx
cmp eax, ecx
seta dl
sbb edx, 0
setne al
movzx ecx, al
cmovs ecx, r10d
test cl, cl
jne 0x140041c51
movzx eax, word [rdi - 0x1a]
xor ecx, ecx
cmp ax, word [r13 - 0x1a]
jmp 0x140041c4a
mov cl, 1
jmp 0x140041c51
mov rbp, qword [rsp + 0x30]
mov rcx, rbp
mov rdx, r12
mov r8, rdi
call fcn.1401af560
add rdi, rbp
test r15, r15
mov rax, r15
jle 0x140041fe5
mov r15, rax
cmp rsi, rax
mov rbp, qword [rsp + 0x28]
jle 0x140041ff2
add rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov rdx, rsi
mov r11d, 0xff
nop word cs:[rax + rax]
movzx eax, word [r13]
movzx r8d, word [rdx]
test ax, ax
je 0x140041f30
test r8w, r8w
je 0x140041f36
movdqu xmm1, xmmword [r13 + 4]
movdqu xmm0, xmmword [rdx + 4]
movd ecx, xmm1
mov r8d, ecx
rol r8w, 8
movd r9d, xmm0
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm0, 1
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm1, 1
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp r9w, cx
setne al
cmp r10w, r8w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm1, 2
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm0, 2
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm1, 3
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm0, 3
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm1, 4
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm0, 4
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm1, 5
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm0, 5
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw ecx, xmm1, 6
mov r8d, ecx
rol r8w, 8
pextrw r9d, xmm0, 6
mov r10d, r9d
rol r10w, 8
xor eax, eax
cmp cx, r9w
setne al
cmp r8w, r10w
cmovb eax, r11d
test al, al
jne 0x140041ef0
pextrw eax, xmm1, 7
mov r8d, eax
rol r8w, 8
pextrw ecx, xmm0, 7
mov r9d, ecx
rol r9w, 8
cmp ax, cx
setne al
mov cl, 0xff
cmp r8w, r9w
jb 0x140041f43
nop word cs:[rax + rax]
mov ecx, eax
test al, al
jne 0x140041f43
movzx eax, word [rdx + 0x1c]
mov cl, 0xff
cmp word [r13 + 0x1c], ax
jb 0x140041f43
jne 0x140041fd2
mov eax, dword [rdx + 0x14]
cmp dword [r13 + 0x14], eax
jb 0x140041f43
mov cl, 1
jne 0x140041f43
mov eax, dword [r13 + 0x18]
xor ecx, ecx
cmp eax, dword [rdx + 0x18]
jmp 0x140041f3c
test r8w, r8w
je 0x140041f9c
xor ecx, ecx
cmp ax, r8w
setne cl
cmovb ecx, r11d
xor r8d, r8d
xor eax, eax
cmp cl, 0xff
setne r8b
sete cl
mov r9, rdx
cmove r9, r13
movdqu xmm0, xmmword [r9]
movdqu xmm1, xmmword [r9 + 0x10]
movdqu xmmword [r12 + 0x10], xmm1
movdqu xmmword [r12], xmm0
add r12, 0x20
shl r8, 5
add rdx, r8
cmp rdx, rdi
jae 0x14004187b
mov al, cl
shl rax, 5
add r13, rax
cmp r13, rbx
jb 0x140041d30
jmp 0x14004187b
mov eax, dword [r13 + 2]
mov ecx, dword [rdx + 2]
bswap eax
bswap ecx
xor r8d, r8d
cmp eax, ecx
seta r8b
sbb r8d, 0
setne al
movzx ecx, al
cmovs ecx, r11d
test cl, cl
jne 0x140041f43
movzx eax, word [r13 + 6]
xor ecx, ecx
cmp ax, word [rdx + 6]
jmp 0x140041f3c
mov cl, 1
jmp 0x140041f43
mov r12, r13
jmp 0x140041ff7
mov r15, rax
mov rsi, qword [rsp + 0x30]
jmp 0x140041873
mov rsi, qword [rsp + 0x30]
mov rdx, rsi
jmp 0x14004187b
cmp r14, 2
je 0x140041699
add r13, qword [rsp + 0x48]
nop
mov rdx, r13
add r13, 0x20
mov rcx, r13
call fcn.14002eb30
test al, al
jne 0x140041699
inc r12
cmp r14, r12
jne 0x140042010
jmp 0x140041696
mov r15d, 2
jmp 0x140041666
mov r15d, 3
jmp 0x140041666
mov rcx, qword [0x140214150]
xor edx, edx
mov r8, rdi
mov rdi, qword [sym.imp.kernel32.dll_HeapFree]
call rdi
mov rcx, qword [0x140214150]
xor edx, edx
mov r8, rsi
mov rax, rdi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp rax
nop
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 1
lea rax, [0x1401f79a8]
mov qword [rsp + 0xb8], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xc0], xmm0
lea rdx, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
lea rcx, [rsp + 0xa8]
call fcn.1401b1c50
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 1
lea rax, [0x1401f79a8]
mov qword [rsp + 0xb8], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xc0], xmm0
lea rdx, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
lea rcx, [rsp + 0xa8]
call fcn.1401b1c50
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov rcx, r12
mov rdx, rbx
call fcn.1401b2060
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov rcx, rbx
mov rdx, rbp
call fcn.1401b1d90
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov edx, 0x2c
call fcn.1401b1e10
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov rcx, rsi
mov rdx, qword [rsp + 0x40]
call fcn.1401b2060
lea rcx, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
call fcn.1401b2240
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov rdx, rcx
mov rcx, rsi
call fcn.1401b2060
lea r8, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
mov rdx, rbp
call fcn.1401b1d90
lea rcx, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
call fcn.1401b2240
lea rcx, str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slice_sort.rs
call fcn.1401b2240
int3