Function at 0x14002dd50
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, [0x1400b2583]
lea rcx, [rsp + 0x28]
mov r8d, 0xb
call fcn.140080100
movzx eax, byte [rsp + 0x40]
cmp al, 2
je 0x14002e389
mov rsi, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
test al, al
je 0x14002df30
mov qword [rsp + 0x20], 7
lea r9, [0x1400b245c]
lea rcx, [rsp + 0x28]
mov rdx, rsi
call fcn.140086540
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.14000fa90
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.140086540
cmp qword [rsp + 0x78], 0
je 0x14002de1e
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x30], 0
je 0x14002de38
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r15, r15
je 0x14002de4f
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 case.0x1400861b2.392
cmp dword [rsp + 0x28], 2
jne 0x14002dee4
mov rax, qword [rsp + 0x30]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x14002e34c
test rcx, rcx
je 0x14002e34c
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 0x14002decd
cmp qword [r14 + 0x10], 0x11
jb 0x14002debb
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 0x14002e34c
lea rcx, [rsp + 0x28]
mov rdx, rsi
mov r8, rdi
call fcn.140043490
cmp qword [rsp + 0x28], 0
jne 0x14002e3f9
mov r15, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
lea r14, [r15 + rax]
test rax, rax
je 0x14002dfda
movzx ecx, byte [r15]
movzx r13d, cl
test r13b, r13b
js 0x14002dfec
inc r15
jmp 0x14002e089
test r8, r8
je 0x14002dd9e
lea rax, [rsp + 0x41]
lea rcx, [rsi + r8]
mov r9, rsi
jmp 0x14002df6c
add r9, 2
cmp rdx, rcx
cmovne rdx, r9
nop word cs:[rax + rax]
mov r9, rdx
cmp rdx, rcx
je 0x14002dd9e
lea rdx, [r9 + 1]
movzx r10d, byte [r9]
test r10b, r10b
jns 0x14002df60
cmp r10b, 0xe0
jb 0x14002df47
cmp r10b, 0xed
jne 0x14002dfaf
cmp rdx, rcx
je 0x14002dd9e
lea rdx, [r9 + 2]
cmp rdx, rcx
je 0x14002dd9e
cmp byte [r9 + 1], 0x9f
ja 0x14002e39c
add r9, 3
mov rdx, r9
jmp 0x14002df60
add r9, 2
cmp rdx, rcx
cmove r9, rdx
xor edx, edx
cmp r9, rcx
setne dl
add rdx, r9
cmp r10b, 0xf0
jb 0x14002df60
xor r9d, r9d
cmp rdx, rcx
setne r9b
add rdx, r9
jmp 0x14002df60
xor ebx, ebx
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
xor ecx, ecx
jmp 0x14002e0b1
mov eax, r13d
and eax, 0x1f
movzx edx, byte [r15 + 1]
and edx, 0x3f
cmp r13b, 0xdf
jbe 0x14002e03d
movzx r13d, byte [r15 + 2]
shl edx, 6
and r13d, 0x3f
or r13d, edx
cmp cl, 0xf0
jb 0x14002e04b
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 0x14002e05e
jmp 0x14002e089
add r15, 2
shl eax, 6
or eax, edx
mov r13d, eax
jmp 0x14002e089
add r15, 3
shl eax, 0xc
or r13d, eax
cmp r13d, 0xffff
jbe 0x14002e089
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 0x14002e090
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 0x14002e413
lea rdi, [rbp*2 + 2]
movzx eax, byte [0x1400f92c0]
mov rcx, qword [0x1400f91f8]
test rcx, rcx
jne 0x14002e105
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14002e38d
mov rcx, rax
mov qword [0x1400f91f8], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x14002e38d
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 0x14002e15d
xor ecx, ecx
mov ebp, ebx
cmp rdi, qword [rsp + 0x30]
je 0x14002e205
mov ebx, ecx
mov word [rax + rdi*2], bp
inc rdi
mov qword [rsp + 0x38], rdi
test r15, r15
je 0x14002e180
test bx, bx
jne 0x14002e140
cmp r15, r14
je 0x14002e180
movzx edx, byte [r15]
movzx ebp, dl
test bpl, bpl
js 0x14002e1ab
inc r15
xor ecx, ecx
jmp 0x14002e144
cmp r12w, 1
jne 0x14002e291
xor r12d, r12d
mov r15d, 0
mov ebp, 0
mov r8d, 0
cmp rdi, qword [rsp + 0x30]
jne 0x14002e151
jmp 0x14002e231
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x14002e249
movzx ebp, byte [r15 + 2]
shl r8d, 6
and ebp, 0x3f
or ebp, r8d
cmp dl, 0xf0
jb 0x14002e25c
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 0x14002e26d
xor ecx, ecx
jmp 0x14002e144
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.1400ae520
mov rax, qword [rsp + 0x28]
jmp 0x14002e151
add r15, 2
shl ecx, 6
or ecx, r8d
mov ebp, ecx
xor ecx, ecx
jmp 0x14002e144
add r15, 3
shl ecx, 0xc
or ebp, ecx
cmp ebp, 0xffff
jbe 0x14002e1fe
lea edx, [rbp + 0xff0000]
shr edx, 0xa
or edx, 0xd800
and ebp, 0x3ff
or ebp, 0xdc00
mov ecx, ebp
mov ebp, edx
jmp 0x14002e144
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 0x14002e311
call qword [sym.imp.kernel32.dll_GetLastError]
mov r14d, eax
movzx eax, byte [0x1400f92c0]
mov rcx, qword [0x1400f91f8]
test rcx, rcx
jne 0x14002e2ec
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14002e41a
mov rcx, rax
mov qword [0x1400f91f8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x14002e41a
mov rbx, rax
shl r14, 0x20
or r14, 2
mov qword [rax], r14
test r15, r15
je 0x14002e328
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test rbx, rbx
je 0x14002e34c
cmp qword [rsp + 0x90], 0
je 0x14002e36b
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14002e36b
cmp qword [rsp + 0x90], 0
je 0x14002e369
mov rcx, qword [0x1400f91f8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
xor ebx, ebx
lea rdx, [0x1400ee708]
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 0x14002e3ab
mov ecx, 2
mov rdx, rdi
call fcn.1400a9e00
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, [0x1400bb9d0]
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.1400aa430
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, [0x1400bba00]
mov edx, 0x2b
call fcn.1400aa0a0
ud2
call fcn.1400402a0
ud2
mov ecx, 8
mov edx, 8
call fcn.1400a9e00
ud2