Function at 0x100031d0
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 [0x1000c030], 8
jne 0x10003370
test rbx, rbx
je 0x10003358
cmp qword [section..bss], 0
je 0x10003430
mov eax, dword [rbx]
lea r13, [rsp + 0x60]
test eax, eax
jne 0x10003236
jmp 0x10003290
test esi, esi
je 0x10003280
call qword [rax + 0x38]
test eax, eax
js 0x10003269
mov eax, dword [rbx + 0x10]
add rbx, 0x10
test eax, eax
je 0x10003290
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 0x10003220
test esi, esi
je 0x10003288
call qword [rax + 0x28]
test eax, eax
jns 0x1000322b
add rsp, 0x260
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
call qword [rax + 0x40]
jmp 0x10003227
call qword [rax + 0x30]
jmp 0x10003227
test esi, esi
jne 0x10003358
mov edx, 0x5c0044
lea rbx, [rsp + 0x6c]
lea rdi, [rsp + 0x70]
movabs rax, 0x490053004c0043
mov qword [rsp + 0x60], rax
mov ecx, 0x3e
xor eax, eax
mov r8d, 0x40
rep stosq qword [rdi], rax
mov qword [rsp + 0x68], rdx
mov rcx, r12
mov rdx, rbx
call qword [sym.imp.ole32.dll_StringFromGUID2]
mov edx, 0x5c
sub eax, 1
cdqe
add rax, rax
lea rbx, [rbx + rax + 2]
mov word [rsp + rax + 0x6c], dx
lea rax, str.Implemented_Categories
mov rdx, rbx
nop dword [rax + rax]
movzx ecx, word [rax]
add rax, 2
add rdx, 2
mov word [rdx - 2], cx
test cx, cx
jne 0x10003300
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 0x10003338
mov rdx, r13
mov rcx, 0xffffffff80000000
call rsi
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 0x100033e1
mov rax, rcx
shr rax, 0x10
je 0x10003418
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, [0x1000e070]
call sym.wine_dbg_sprintf
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, [0x1000c030]
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0
jmp 0x100031f4
movzx edx, cx
lea rcx, [0x1000e061]
call sym.wine_dbg_sprintf
jmp 0x100033e1
lea r13, [rsp + 0x60]
xor edx, edx
lea r9, [0x10015830]
mov r8d, 1
mov qword [rsp + 0x20], r13
lea rcx, [0x10015710]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x10003269
mov rdx, qword [rsp + 0x60]
xor eax, eax
lock cmpxchg qword [section..bss], rdx
test rax, rax
je 0x1000320b
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1000320b