Function at 0x14002db80
Capabilities:
Change the wallpaper

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
lea rdx, [0x1400b24c4]
lea rcx, [rsp + 0x28]
mov r8d, 0xb
call fcn.14007ff70
movzx eax, byte [rsp + 0x40]
cmp al, 2
je 0x14002e1b9
mov rsi, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
test al, al
je 0x14002dd60
mov qword [rsp + 0x20], 7
lea r9, [0x1400b239c]
lea rcx, [rsp + 0x28]
mov rdx, rsi
call fcn.1400863b0
mov rdi, qword [rsp + 0x28]
mov r14, qword [rsp + 0x38]
lea rdx, str.wallpaper_albabat.jpg
lea rcx, [rsp + 0x70]
mov r8d, 0x15
call fcn.14000f9e0
mov rbx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x88]
mov rdx, rdi
mov r8, r14
mov r9, rbx
call fcn.1400863b0
cmp qword [rsp + 0x78], 0
je 0x14002dc4e
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x30], 0
je 0x14002dc68
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r15, r15
je 0x14002dc7f
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x98]
lea rcx, [rsp + 0x28]
mov rdx, rsi
mov r8, rdi
call fcn.140084cf0
cmp dword [rsp + 0x28], 2
jne 0x14002dd14
mov rax, qword [rsp + 0x30]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x14002e17c
test rcx, rcx
je 0x14002e17c
lea rdi, [rax - 1]
mov rbx, qword [rax - 1]
mov r14, qword [rax + 7]
mov rcx, rbx
call qword [r14]
cmp qword [r14 + 8], 0
je 0x14002dcfd
cmp qword [r14 + 0x10], 0x11
jb 0x14002dceb
mov rbx, qword [rbx - 8]
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14002e17c
lea rcx, [rsp + 0x28]
mov rdx, rsi
mov r8, rdi
call fcn.1400433d0
cmp qword [rsp + 0x28], 0
jne 0x14002e229
mov r15, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
lea r14, [r15 + rax]
test rax, rax
je 0x14002de0a
movzx ecx, byte [r15]
movzx r13d, cl
test r13b, r13b
js 0x14002de1c
inc r15
jmp 0x14002deb9
test r8, r8
je 0x14002dbce
lea rax, [rsp + 0x41]
lea rcx, [rsi + r8]
mov r9, rsi
jmp 0x14002dd9c
add r9, 2
cmp rdx, rcx
cmovne rdx, r9
nop word cs:[rax + rax]
mov r9, rdx
cmp rdx, rcx
je 0x14002dbce
lea rdx, [r9 + 1]
movzx r10d, byte [r9]
test r10b, r10b
jns 0x14002dd90
cmp r10b, 0xe0
jb 0x14002dd77
cmp r10b, 0xed
jne 0x14002dddf
cmp rdx, rcx
je 0x14002dbce
lea rdx, [r9 + 2]
cmp rdx, rcx
je 0x14002dbce
cmp byte [r9 + 1], 0x9f
ja 0x14002e1cc
add r9, 3
mov rdx, r9
jmp 0x14002dd90
add r9, 2
cmp rdx, rcx
cmove r9, rdx
xor edx, edx
cmp r9, rcx
setne dl
add rdx, r9
cmp r10b, 0xf0
jb 0x14002dd90
xor r9d, r9d
cmp rdx, rcx
setne r9b
add rdx, r9
jmp 0x14002dd90
xor ebx, ebx
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
xor ecx, ecx
jmp 0x14002dee1
mov eax, r13d
and eax, 0x1f
movzx edx, byte [r15 + 1]
and edx, 0x3f
cmp r13b, 0xdf
jbe 0x14002de6d
movzx r13d, byte [r15 + 2]
shl edx, 6
and r13d, 0x3f
or r13d, edx
cmp cl, 0xf0
jb 0x14002de7b
movzx ecx, byte [r15 + 3]
add r15, 4
and eax, 7
shl eax, 0x12
shl r13d, 6
and ecx, 0x3f
or ecx, r13d
or ecx, eax
mov r13d, ecx
cmp r13d, 0xffff
ja 0x14002de8e
jmp 0x14002deb9
add r15, 2
shl eax, 6
or eax, edx
mov r13d, eax
jmp 0x14002deb9
add r15, 3
shl eax, 0xc
or r13d, eax
cmp r13d, 0xffff
jbe 0x14002deb9
lea ecx, [r13 + 0xff0000]
shr ecx, 0xa
or ecx, 0xd800
and r13d, 0x3ff
or r13d, 0xdc00
mov eax, 2
mov ebx, r13d
mov r13d, ecx
jmp 0x14002dec0
mov eax, 1
xor ebx, ebx
mov rdx, r14
sub rdx, r15
add rdx, 3
mov rcx, 0xffffffffffffffff
cmovae rcx, rdx
shr rcx, 2
add rcx, rax
mov r12w, 1
cmp rcx, 4
mov ebp, 3
cmovae rbp, rcx
movabs rax, 0x3fffffffffffffff
cmp rbp, rax
jae 0x14002e243
lea rdi, [rbp*2 + 2]
movzx eax, byte [0x1400f92c0]
mov rcx, qword [0x1400f91f8]
test rcx, rcx
jne 0x14002df35
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14002e1bd
mov rcx, rax
mov qword [0x1400f91f8], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x14002e1bd
inc rbp
mov word [rax], r13w
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], 1
mov edi, 1
lea r13, [rsp + 0x28]
jmp 0x14002df8d
xor ecx, ecx
mov ebp, ebx
cmp rdi, qword [rsp + 0x30]
je 0x14002e035
mov ebx, ecx
mov word [rax + rdi*2], bp
inc rdi
mov qword [rsp + 0x38], rdi
test r15, r15
je 0x14002dfb0
test bx, bx
jne 0x14002df70
cmp r15, r14
je 0x14002dfb0
movzx edx, byte [r15]
movzx ebp, dl
test bpl, bpl
js 0x14002dfdb
inc r15
xor ecx, ecx
jmp 0x14002df74
cmp r12w, 1
jne 0x14002e0c1
xor r12d, r12d
mov r15d, 0
mov ebp, 0
mov r8d, 0
cmp rdi, qword [rsp + 0x30]
jne 0x14002df81
jmp 0x14002e061
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x14002e079
movzx ebp, byte [r15 + 2]
shl r8d, 6
and ebp, 0x3f
or ebp, r8d
cmp dl, 0xf0
jb 0x14002e08c
movzx edx, byte [r15 + 3]
add r15, 4
and ecx, 7
shl ecx, 0x12
shl ebp, 6
and edx, 0x3f
or edx, ebp
or edx, ecx
mov ebp, edx
cmp ebp, 0xffff
ja 0x14002e09d
xor ecx, ecx
jmp 0x14002df74
mov r8, r14
sub r8, r15
add r8, 3
mov rax, 0xffffffffffffffff
cmovb r8, rax
shr r8, 2
cmp cx, 1
sbb r8, 0xffffffffffffffff
cmp r12w, 1
sbb r8, 0xffffffffffffffff
mov ebx, ecx
inc r8
mov rcx, r13
mov rdx, rdi
call fcn.1400ae2f0
mov rax, qword [rsp + 0x28]
jmp 0x14002df81
add r15, 2
shl ecx, 6
or ecx, r8d
mov ebp, ecx
xor ecx, ecx
jmp 0x14002df74
add r15, 3
shl ecx, 0xc
or ebp, ecx
cmp ebp, 0xffff
jbe 0x14002e02e
lea edx, [rbp + 0xff0000]
shr edx, 0xa
or edx, 0xd800
and ebp, 0x3ff
or ebp, 0xdc00
mov ecx, ebp
mov ebp, edx
jmp 0x14002df74
mov rdi, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
xor ebx, ebx
mov ecx, 0x14
xor edx, edx
mov r8, rdi
mov r9d, 3
call sub.user32.dll_SystemParametersInfoW
cmp eax, 1
je 0x14002e141
call qword [sym.imp.kernel32.dll_GetLastError]
mov r14d, eax
movzx eax, byte [0x1400f92c0]
mov rcx, qword [0x1400f91f8]
test rcx, rcx
jne 0x14002e11c
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14002e24a
mov rcx, rax
mov qword [0x1400f91f8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x14002e24a
mov rbx, rax
shl r14, 0x20
or r14, 2
mov qword [rax], r14
test r15, r15
je 0x14002e158
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test rbx, rbx
je 0x14002e17c
cmp qword [rsp + 0x90], 0
je 0x14002e19b
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14002e19b
cmp qword [rsp + 0x90], 0
je 0x14002e199
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
xor ebx, ebx
lea rdx, [0x1400ee608]
mov rax, rbx
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 2
jmp 0x14002e1db
mov ecx, 2
mov rdx, rdi
call fcn.1400a9bd0
ud2
mov ecx, dword [rax]
mov eax, dword [rax + 3]
mov dword [rsp + 0x73], eax
mov dword [rsp + 0x70], ecx
xor eax, eax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r8
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x73]
mov dword [rsp + 0x41], eax
mov dword [rsp + 0x44], ecx
lea rax, [0x1400bb900]
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, [0x1400b1270]
lea r8, [rsp + 0x28]
mov edx, 0x2b
call fcn.1400aa200
ud2
lea rcx, str.called__Option::unwrap____on_a__None__valueC:Userswilliamcanin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
lea r8, [0x1400bb930]
mov edx, 0x2b
call fcn.1400a9e70
ud2
call fcn.1400401e0
ud2
mov ecx, 8
mov edx, 8
call fcn.1400a9bd0
ud2