Function at 0x100030f0
Capabilities:
Delete registry key

Disassembly:
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x260
mov r12, rcx
mov rbx, rdx
mov esi, r8d
test byte [0x1000d030], 8
jne 0x100031d0
test rbx, rbx
je 0x100031b8
cmp qword [section..bss], 0
je 0x10003358
mov eax, dword [rbx]
lea r13, [rsp + 0x60]
test eax, eax
jne 0x10003156
jmp 0x100031b0
test esi, esi
je 0x100031a0
call qword [rax + 0x38]
test eax, eax
js 0x10003189
mov eax, dword [rbx + 0x10]
add rbx, 0x10
test eax, eax
je 0x100031b0
mov rdx, qword [rbx + 8]
cmp eax, 1
mov r9, r13
mov r8d, 1
mov rcx, qword [section..bss]
movdqu xmm0, xmmword [rdx]
mov rdx, r12
movups xmmword [rsp + 0x60], xmm0
mov rax, qword [rcx]
jne 0x10003140
test esi, esi
je 0x100031a8
call qword [rax + 0x28]
test eax, eax
jns 0x1000314b
add rsp, 0x260
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
call qword [rax + 0x40]
jmp 0x10003147
call qword [rax + 0x30]
jmp 0x10003147
test esi, esi
je 0x10003278
xor eax, eax
add rsp, 0x260
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
lea rax, section..rdata
test rcx, rcx
je 0x10003241
mov rax, rcx
shr rax, 0x10
je 0x10003340
movzx eax, byte [rcx + 0xf]
mov dword [rsp + 0x58], eax
movzx eax, byte [rcx + 0xe]
mov dword [rsp + 0x50], eax
movzx eax, byte [rcx + 0xd]
mov dword [rsp + 0x48], eax
movzx eax, byte [rcx + 0xc]
mov dword [rsp + 0x40], eax
movzx eax, byte [rcx + 0xb]
mov dword [rsp + 0x38], eax
movzx eax, byte [rcx + 0xa]
mov dword [rsp + 0x30], eax
movzx eax, byte [rcx + 9]
mov dword [rsp + 0x28], eax
movzx eax, byte [rcx + 8]
mov dword [rsp + 0x20], eax
movzx r9d, word [rcx + 6]
movzx r8d, word [rcx + 4]
mov edx, dword [rcx]
lea rcx, [0x1000f070]
call fcn.10001780
mov dword [rsp + 0x30], esi
lea r9, str.__s__p__x__n
lea r8, str.AtlRegisterClassCategoriesHelper
mov ecx, 3
mov qword [rsp + 0x28], rbx
lea rdx, [0x1000d030]
mov qword [rsp + 0x20], rax
call fcn.10001a70
jmp 0x10003114
mov edx, 0x5c0044
lea rdi, [rsp + 0x70]
mov ecx, 0x3e
movabs rax, 0x490053004c0043
mov qword [rsp + 0x60], rax
xor eax, eax
lea rbx, [rsp + 0x6c]
mov r8d, 0x40
mov qword [rsp + 0x68], rdx
mov rdx, rbx
rep stosq qword [rdi], rax
mov rcx, r12
call qword [sym.imp.ole32.dll_StringFromGUID2]
mov edx, 0x5c
sub eax, 1
cdqe
lea rax, [rbx + rax*2]
lea rbx, [rax + 2]
mov word [rax], dx
lea rax, str.Implemented_Categories
mov rdx, rbx
nop word cs:[rax + rax]
movzx ecx, word [rax]
add rax, 2
add rdx, 2
mov word [rdx - 2], cx
test cx, cx
jne 0x100032e0
lea r13, [rsp + 0x60]
mov rsi, qword [sym.imp.advapi32.dll_RegDeleteKeyW]
mov rcx, 0xffffffff80000000
mov rdx, r13
call rsi
lea rax, str.Required_Categories
nop dword [rax + rax]
movzx edx, word [rax]
add rax, 2
add rbx, 2
mov word [rbx - 2], dx
test dx, dx
jne 0x10003318
mov rdx, r13
mov rcx, 0xffffffff80000000
call rsi
xor eax, eax
jmp 0x100031ba
movzx edx, cx
lea rcx, [0x1000f061]
call fcn.10001780
jmp 0x10003241
lea r13, [rsp + 0x60]
xor edx, edx
lea r9, [0x10016770]
mov r8d, 1
mov qword [rsp + 0x20], r13
lea rcx, [0x10016650]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x10003189
mov rdx, qword [rsp + 0x60]
xor eax, eax
lock cmpxchg qword [section..bss], rdx
test rax, rax
je 0x1000312b
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1000312b