joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140020520
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp byte [0x1400c1ef0], 0
jne 0x140020623
mov byte [0x1400c1ef0], 1
call sym.__cxa_current_exception_type
test rax, rax
je 0x1400205f8
mov rbx, qword [rax + 8]
xor eax, eax
lea r9, [rsp + 0x2c]
cmp byte [rbx], 0x2a
mov dword [rsp + 0x2c], 0xffffffff
sete al
xor r8d, r8d
xor edx, edx
add rbx, rax
mov rcx, rbx
call sym.__cxa_demangle
mov ecx, 2
mov rsi, qword [sym.__acrt_iob_func]
mov rdi, rax
call rsi
mov edx, 1
lea rcx, str.terminate_called_after_throwing_an_instance_of_
mov r8d, 0x30
mov r9, rax
call sym.fwrite
mov edx, dword [rsp + 0x2c]
mov ecx, 2
test edx, edx
je 0x1400205e9
call rsi
mov rcx, rbx
mov rdx, rax
call sym.fputs
mov ecx, 2
call rsi
mov r8d, 2
mov edx, 1
lea rcx, [0x1400c2231]
mov r9, rax
call sym.fwrite
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x1400bbdc7
jmp 0x1400bbdbf
call rsi
mov rcx, rdi
mov rdx, rax
call sym.fputs
jmp 0x1400205b7
mov ecx, 2
call qword [sym.__acrt_iob_func]
mov r8d, 0x2d
mov edx, 1
lea rcx, str.terminate_called_without_an_active_exception_n
mov r9, rax
call sym.fwrite
nop
jmp 0x1400bbdba
mov ecx, 2
call qword [sym.__acrt_iob_func]
mov r8d, 0x1d
mov edx, 1
lea rcx, str.terminate_called_recursively_n
mov r9, rax
call sym.fwrite
call sym.abort
nop
nop
nop

Function at 0x14007fe30
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [sym.imp.msvcrt.dll__errno]
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
mov rcx, qword [rdi]
call sym.fileno
mov ecx, eax
mov r8d, ebx
mov rdx, rsi
call sym.read
movsxd rbp, eax
cmp eax, 0xffffffff
je 0x14007fe78
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call r12
cmp dword [rax], 4
je 0x14007fe4a
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140092800
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 8]
mov rdi, rcx
test rax, rax
je 0x140092828
mov rcx, qword [rcx]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp rax
mov rbp, qword [sym.imp.msvcrt.dll__errno]
mov ebx, 4
lea rsi, [rsp + 0x2c]
nop dword [rax]
mov ecx, dword [rdi + 0x10]
mov r8d, ebx
mov rdx, rsi
call sym.read
test eax, eax
jle 0x140092870
cdqe
add rsi, rax
sub rbx, rax
jne 0x140092840
mov eax, dword [rsp + 0x2c]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp eax, 0xffffffff
jne 0x14009287c
call rbp
cmp dword [rax], 4
je 0x140092840
lea rcx, str.random_device_could_not_be_read
call method.std.__throw_runtime_error_char_const_
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x1400bbd50
Capabilities:
Write file on windows

Disassembly:
nop
mov rcx, rax
mov rax, rdx
sub rax, 1
jne 0x1400bbdcc
call sym.__cxa_begin_catch
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov rbx, rax
call rsi
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sym.fwrite
mov ecx, 2
call rsi
mov rdx, rax
mov rcx, rbx
call sym.fputs
mov ecx, 2
call rsi
mov rdx, rax
mov ecx, 0xa
call sym.fputc
call sym.__cxa_end_catch
call sym.abort
mov rcx, rdi
call sym.free
call sym.__cxa_rethrow
call sym.__cxa_begin_catch
call sym.__cxa_end_catch
jmp 0x1400bbdba

Function at 0x1400bd4b0
Capabilities:
Query environment variable

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
xor edx, edx
lea rcx, [0x1400bf7a0]
movabs rdi, 0x2e78786362696c67
movabs r12, 0x6c6f6f705f68652e
call sym.pthread_mutex_init
pxor xmm0, xmm0
lea rcx, str.GLIBCXX_TUNABLES
mov qword [0x1400bf7b8], 0
movups xmmword [0x1400bf7a8], xmm0
call sym.getenv
mov dword [rsp + 0x40], 0
mov rbx, rax
lea rax, str.obj_size
mov qword [rsp + 0x30], 8
mov qword [rsp + 0x38], rax
lea rax, str.obj_count
mov qword [rsp + 0x48], 9
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], 0x100
test rbx, rbx
jne 0x1400bd565
jmp 0x1400bd60f
mov rcx, rbx
mov edx, 0x3a
call sym.strchr
mov rbx, rax
test rax, rax
je 0x1400bd5c0
xor eax, eax
cmp byte [rbx], 0x3a
sete al
add rbx, rax
cmp qword [rbx], rdi
jne 0x1400bd550
cmp qword [rbx + 7], r12
jne 0x1400bd550
cmp byte [rbx + 0xf], 0x2e
jne 0x1400bd550
add rbx, 0x10
lea rbp, [rsp + 0x30]
lea r13, [rsp + 0x60]
mov rsi, qword [rbp]
mov rcx, qword [rbp + 8]
test rsi, rsi
je 0x1400bd5ab
mov r8, rsi
mov rdx, rbx
call sym.memcmp
test eax, eax
jne 0x1400bd5b5
cmp byte [rbx + rsi], 0x3d
je 0x1400bd645
add rbp, 0x18
cmp rbp, r13
jne 0x1400bd58f
jmp 0x1400bd550
mov eax, dword [rsp + 0x58]
mov edx, 0x1000
mov ecx, 6
cmp eax, edx
cmovle edx, eax
mov eax, dword [rsp + 0x40]
test eax, eax
cmove eax, ecx
movsxd rbx, eax
movsxd rax, edx
add rbx, 0x26
imul rbx, rax
shl rbx, 3
mov qword [0x1400bf7b8], rbx
jne 0x1400bd61f
lea rcx, [sym.__tcf_0_4]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.atexit
mov qword [0x1400bf7b8], 0x16000
mov ebx, 0x16000
mov rcx, rbx
call sym.malloc
mov qword [0x1400bf7b0], rax
test rax, rax
je 0x1400bd67c
xor edx, edx
mov qword [0x1400bf7a8], rax
mov qword [rax], rbx
mov qword [rax + 8], rdx
jmp 0x1400bd5f7
lea rdx, [rsp + 0x28]
lea rcx, [rbx + rsi + 1]
xor r8d, r8d
call sym.strtoul
mov rbx, qword [rsp + 0x28]
movzx edx, byte [rbx]
cmp dl, 0x3a
je 0x1400bd66c
test dl, dl
jne 0x1400bd550
test eax, eax
js 0x1400bd550
mov dword [rbp + 0x10], eax
jmp 0x1400bd550
xor ecx, ecx
mov qword [0x1400bf7b8], rcx
jmp 0x1400bd5f7
Function at 0x1400080e0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov edi, r8d
mov rsi, rdx
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140008155
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x140008155
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x140008145
nop
cmp rbx, rcx
jae 0x140008155
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x140008130
cmp rbx, rcx
jae 0x140008155
cmp word [rbx], 0
je 0x140008155
mov rax, rbx
jmp 0x140008157
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x14000a1e0
Capabilities:
Check if file exists
Delete file

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, rcx
mov rcx, qword [rcx + 0x6e0]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, 1
jne 0x14000a277
cmp byte [rbx + 0x789], 0
je 0x14000a277
mov qword [rsp + 0x48], rdi
lea r8, [rsp + 0x40]
mov edi, dword [rbx + 0x15c]
lea rdx, str.NeverShowAgain
lea rcx, str.Helper
mov dword [rsp + 0x40], 0
call fcn.140047760
test eax, eax
jne 0x14000a249
xor r8d, r8d
lea rdx, str.NeverShowAgain
lea rcx, str.Helper
call fcn.1400479f0
mov r8d, dword [rsp + 0x40]
lea rdx, str.NeverShowAgain
mov ecx, edi
mov eax, 1
shl eax, cl
lea rcx, str.Helper
or r8d, eax
mov dword [rsp + 0x40], r8d
call fcn.1400479f0
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rbx + 0x4b0]
cmp dword [rcx - 0x10], 0
je 0x14000a2c7
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14000a2c7
mov rcx, qword [rbx + 0x4b0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14000a2c7
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.Cannot_delete_the_image_temp_file._Last_Error___d
mov r8d, 0x118
lea rdx, str.C:WorkVSRevoWindowsProjectsRevo_HelperRevo_HelperSourcesBasicGUIControls.cpp
mov dword [rsp + 0x20], eax
mov ecx, 1
call fcn.1400473d0
mov rcx, rbx
call fcn.140099efc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0xc0]
xor ecx, ecx
call fcn.14024b6a0
mov qword [0x14034dcd0], rax
add rsp, 0x30
pop rbx
ret
Function at 0x14000d610
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov edi, edx
mov r14, rcx
mov ecx, edx
call fcn.1400a2528
mov rsi, rax
test rax, rax
je 0x14000d732
mov eax, edi
shr eax, 4
inc ax
movzx edx, ax
mov r8d, 6
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
je 0x14000d72c
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14000d72c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x14000d72c
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x14000d6bd
cmp rbx, rcx
jae 0x14000d72c
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x14000d6a8
cmp rbx, rcx
jae 0x14000d72c
movzx edi, word [rbx]
test di, di
je 0x14000d72c
mov r10, qword [r14]
movzx edx, di
mov ebp, 1
mov ecx, ebp
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edi
or ecx, eax
jge 0x14000d6f5
mov edx, edi
mov rcx, r14
call fcn.14000df10
mov r10, qword [r14]
movzx edx, word [rbx]
lea r8, [rbx + 2]
movzx r9d, dx
mov rdx, rdi
mov rcx, r10
call fcn.1402457b4
xor ecx, ecx
test eax, eax
je 0x14000d718
cmp eax, 0xc
je 0x14000d75e
cmp eax, 0x50
jne 0x14000d758
mov rax, qword [r14]
cmp edi, dword [rax - 0xc]
jg 0x14000d74d
mov dword [rax - 0x10], edi
mov rax, qword [r14]
mov word [rax + rdi*2], cx
jmp 0x14000d730
xor ecx, ecx
mov ebp, ecx
mov eax, ebp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov ecx, 0x80070057
call fcn.1400080b0
int3
call fcn.1400a2cd8
int3
call fcn.1400a2cfc
int3
Function at 0x14000db50
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov eax, r8d
mov rsi, rdx
shr eax, 4
mov edi, r8d
inc ax
mov r14, rcx
movzx edx, ax
mov r8d, 6
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
je 0x14000dc6b
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14000dc6b
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x14000dc6b
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x14000dbf9
nop word [rax + rax]
cmp rbx, rcx
jae 0x14000dc6b
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x14000dbe0
cmp rbx, rcx
jae 0x14000dc6b
movzx edi, word [rbx]
test di, di
je 0x14000dc6b
mov r10, qword [r14]
mov ecx, 1
movzx edx, di
mov eax, dword [r10 - 0xc]
sub ecx, dword [r10 - 8]
sub eax, edi
or ecx, eax
jge 0x14000dc2f
mov edx, edi
mov rcx, r14
call fcn.14000df10
mov r10, qword [r14]
movzx edx, word [rbx]
movzx r9d, dx
lea r8, [rbx + 2]
mov rdx, rdi
mov rcx, r10
call fcn.1402457b4
xor edx, edx
test eax, eax
je 0x14000dc52
cmp eax, 0xc
je 0x14000dc99
cmp eax, 0x50
jne 0x14000dc93
mov rcx, qword [r14]
cmp edi, dword [rcx - 0xc]
jg 0x14000dc88
mov dword [rcx - 0x10], edi
mov eax, 1
mov rcx, qword [r14]
mov word [rcx + rdi*2], dx
jmp 0x14000dc6d
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov ecx, 0x80070057
call fcn.1400080b0
int3
call fcn.1400a2cd8
int3
call fcn.1400a2cfc
int3
Function at 0x140013ab0
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, rcx
mov dword [rsp + 0x50], 0
lea rcx, str.Helper
lea r8, [rsp + 0x50]
lea rdx, str.NeverShowAgain
call fcn.140047760
test eax, eax
jne 0x140013af5
xor r8d, r8d
lea rdx, str.NeverShowAgain
lea rcx, str.Helper
call fcn.1400479f0
jmp 0x140013b00
mov eax, dword [rsp + 0x50]
shr eax, 4
and al, 1
jne 0x140013b77
mov rax, qword [0x14033f4d0]
inc rax
test rax, 0xfffffffffffffffe
jne 0x140013bc5
mov qword [rsp + 0x28], 0
lea r8, [0x140013bd0]
mov r9, rbx
mov dword [rsp + 0x20], 0
xor edx, edx
mov byte [0x14033f4d8], 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x14033f4d0], rax
inc rax
test rax, 0xfffffffffffffffe
jne 0x140013bc5
lea r9, str.Failed_to_create_the_listener_thread_
mov r8d, 0x37c
lea rdx, str.C:WorkVSRevoWindowsProjectsRevo_HelperRevo_HelperSourcesEventManager.cpp
mov ecx, 1
add rsp, 0x30
pop rbx
jmp fcn.1400473d0
mov rcx, qword [0x14033f4d0]
mov byte [0x14033f4d8], 0
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140013bba
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x140013bba
cmp dword [rsp + 0x48], 0x103
jne 0x140013bba
mov rcx, qword [0x14033f4d0]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov qword [0x14033f4d0], 0xffffffffffffffff
add rsp, 0x30
pop rbx
ret
Function at 0x14001ab20
Capabilities:
Read .ini file

Disassembly:
push rdi
push r14
sub rsp, 0x28
mov r10d, r9d
mov rax, r8
mov rdi, rdx
mov r14, rcx
test r8, r8
je 0x14001ab3f
xor ecx, ecx
mov word [r8], cx
test rdi, rdi
jne 0x14001ab4e
xor eax, eax
add rsp, 0x28
pop r14
pop rdi
ret
test rax, rax
jne 0x14001ac0b
mov qword [rsp + 0x40], rbx
mov ecx, 0x402
mov qword [rsp + 0x48], rbp
mov ebx, 0x200
mov qword [rsp + 0x50], rsi
call fcn.1400164e0
mov r9, qword [r14 + 8]
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebp, eax
lea ecx, [rax + 2]
cmp ecx, ebx
jb 0x14001abe9
mov qword [rsp + 0x20], r15
mov r15, 0xffffffffffffffff
mov rcx, rsi
add ebx, 0x200
call fcn.140095d64
lea ecx, [rbx + 1]
mov eax, 2
mul rcx
cmovo rax, r15
mov rcx, rax
call fcn.1400164e0
mov r9, qword [r14 + 8]
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebp, eax
add eax, 2
cmp eax, ebx
jae 0x14001aba0
mov r15, qword [rsp + 0x20]
mov rcx, rsi
call fcn.140095d64
mov rsi, qword [rsp + 0x50]
lea eax, [rbp + 2]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add rsp, 0x28
pop r14
pop rdi
ret
mov r9, qword [r14 + 8]
mov r8d, r10d
mov rdx, rax
mov rcx, rdi
add rsp, 0x28
pop r14
pop rdi
jmp qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
Function at 0x14001ac30
Capabilities:
Read .ini file

Disassembly:
push rdi
push r13
push r14
push r15
sub rsp, 0x48
xor r13d, r13d
mov r14, r8
mov rdi, rdx
mov r15, rcx
test r8, r8
je 0x14001ac51
mov word [r8], r13w
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x40], r12
test rdi, rdi
je 0x14001adad
mov ecx, 0x402
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x28], r9
mov ebx, 0x200
mov qword [rsp + 0x30], r13
call fcn.1400164e0
mov r9, qword [r15 + 8]
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebp, eax
mov r12, 0xffffffffffffffff
lea ecx, [rax + 2]
cmp ecx, ebx
jb 0x14001ad04
nop word [rax + rax]
mov rcx, rsi
add ebx, 0x200
call fcn.140095d64
lea ecx, [rbx + 1]
mov eax, 2
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.1400164e0
mov r9, qword [r15 + 8]
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebp, eax
lea ecx, [rax + 2]
cmp ecx, ebx
jae 0x14001acc0
mov rcx, rsi
call fcn.140095d64
add ebp, 2
je 0x14001adad
lea edx, [rbp + 1]
mov eax, 2
mul rdx
cmovo rax, r12
mov rcx, rax
call fcn.1400164e0
mov r9d, ebp
mov r8, rax
mov rdx, rdi
mov rcx, r15
mov rsi, rax
call fcn.14001ab20
test rsi, rsi
je 0x14001ad8f
mov rdi, rsi
mov rbx, r12
nop dword [rax + rax]
inc rbx
cmp word [rsi + rbx*2], r13w
jne 0x14001ad50
test rbx, rbx
je 0x14001ad8f
nop
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.14001afd0
test eax, eax
je 0x14001ad8f
lea rdi, [rdi + rbx*2]
mov rbx, r12
add rdi, 2
nop dword [rax]
inc rbx
cmp word [rdi + rbx*2], r13w
jne 0x14001ad80
test rbx, rbx
jne 0x14001ad60
mov rcx, rsi
call fcn.140095d64
test r14, r14
je 0x14001ada6
mov rax, qword [rsp + 0x30]
mov word [r14 + rax*2], r13w
mov rax, qword [rsp + 0x30]
jmp 0x14001adaf
xor eax, eax
mov r12, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x48
pop r15
pop r14
pop r13
pop rdi
ret
Function at 0x14001ade0
Capabilities:
Read .ini file

Disassembly:
push rbp
sub rsp, 0x20
mov r9d, r8d
mov rax, rdx
mov rbp, rcx
test rdx, rdx
jne 0x14001aea5
mov qword [rsp + 0x30], rbx
mov ecx, 0x402
mov qword [rsp + 0x38], rsi
mov ebx, 0x200
mov qword [rsp + 0x40], rdi
call fcn.1400164e0
mov r8, qword [rbp + 8]
mov edx, ebx
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
mov esi, eax
lea ecx, [rax + 2]
cmp ecx, ebx
jb 0x14001ae85
mov qword [rsp + 0x48], r14
mov r14, 0xffffffffffffffff
nop dword [rax]
mov rcx, rdi
add ebx, 0x200
call fcn.140095d64
lea ecx, [rbx + 1]
mov eax, 2
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.1400164e0
mov r8, qword [rbp + 8]
mov edx, ebx
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
mov esi, eax
add eax, 2
cmp eax, ebx
jae 0x14001ae40
mov r14, qword [rsp + 0x48]
mov rcx, rdi
call fcn.140095d64
mov rdi, qword [rsp + 0x40]
lea eax, [rsi + 2]
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rbp
ret
mov r8, qword [rcx + 8]
mov edx, r9d
mov rcx, rax
add rsp, 0x20
pop rbp
jmp qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]

Function at 0x14001aec0
Capabilities:
Read .ini file

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rsi, r8
mov rbp, rdx
mov r14, rcx
test rdx, rdx
je 0x14001afac
test r8, r8
je 0x14001afac
mov qword [rsp + 0x50], rbx
mov ecx, 0x402
mov qword [rsp + 0x58], rdi
mov ebx, 0x200
call fcn.1400164e0
mov rdx, qword [r14 + 8]
lea r8, [0x1402e82f0]
mov qword [rsp + 0x28], rdx
mov r9, rax
mov rdx, rsi
mov dword [rsp + 0x20], ebx
mov rcx, rbp
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
inc eax
cmp eax, ebx
jb 0x14001af96
mov qword [rsp + 0x60], r15
mov r15, 0xffffffffffffffff
nop word [rax + rax]
mov rcx, rdi
add ebx, 0x200
call fcn.140095d64
lea ecx, [rbx + 1]
mov eax, 2
mul rcx
cmovo rax, r15
mov rcx, rax
call fcn.1400164e0
mov rdi, rax
lea r8, [0x1402e82f0]
mov rax, qword [r14 + 8]
mov r9, rdi
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov rcx, rbp
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
inc eax
cmp eax, ebx
jae 0x14001af40
mov r15, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov rax, rdi
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
mov ecx, 2
call fcn.1400164e0
xor ecx, ecx
mov word [rax], cx
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x14001ca80
Capabilities:
Terminate thread
Unload minifilter driver

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 8]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001caad
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
test eax, eax
je 0x14001caad
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.revoprocessdetector
call qword [sym.imp.FLTLIB.DLL_FilterUnload]
test eax, eax
je 0x14001caca
lea rcx, str.sc_stop_revoprocessdetector
call fcn.140257294
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x14001cad9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbx + 0x4058]
call fcn.140217538
lea rcx, [rbx + 0x4030]
call fcn.140011570
mov rdx, qword [rbx + 0x4028]
cmp rdx, 8
jb 0x14001cb33
mov rcx, qword [rbx + 0x4010]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14001cb2e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001cb64
mov rcx, r8
call fcn.1400081a0
xor eax, eax
mov qword [rbx + 0x4028], 7
mov edx, 0x40a8
mov qword [rbx + 0x4020], rax
mov rcx, rbx
mov word [rbx + 0x4010], ax
call fcn.1400081a0
mov rax, rbx
add rsp, 0x20
pop rbx
ret
call fcn.14024b534
int3

Function at 0x14001cd00
Capabilities:
Resolve dns

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
sub rsp, 0x30
mov rdi, rcx
mov rbx, qword [0x14034dd88]
mov r8, qword [0x14034dd90]
cmp rbx, r8
je 0x14001cd5c
test rdi, rdi
je 0x14001ce75
mov rax, qword [rbx]
mov rdx, rdi
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x14001cd4a
add rax, 2
test cx, cx
jne 0x14001cd34
xor eax, eax
jmp 0x14001cd4f
sbb eax, eax
or eax, 1
test eax, eax
je 0x14001cda0
add rbx, 0x18
cmp rbx, r8
jne 0x14001cd22
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x14001ce75
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
mov rsi, 0xffffffffffffffff
test rdi, rdi
je 0x14001cdd2
cmp rdi, 0x10000
jae 0x14001cdc3
movzx edx, di
lea rcx, [rsp + 0x58]
call fcn.14000d610
jmp 0x14001cde5
xor ecx, ecx
call fcn.14024b6a0
sub rax, qword [rbx + 0x10]
cmp rax, 3
jg 0x14001cd5c
mov eax, 1
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret
mov rax, rsi
inc rax
cmp word [rdi + rax*2], 0
jne 0x14001cdc6
jmp 0x14001cdd4
xor eax, eax
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.14000df90
nop
lea rdx, str..local
mov rax, rsi
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001cdf0
mov r8d, eax
lea rcx, [rsp + 0x58]
call fcn.1400157c0
mov ebp, 1
mov edx, ebp
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.DNSAPI.dll_DnsQuery_W]
test eax, eax
jne 0x14001ce4c
mov rax, qword [rsp + 0x60]
mov r8d, dword [rax + 0x20]
mov rdx, rdi
call fcn.14001cb70
jmp 0x14001ce4e
xor ebp, ebp
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14001ce66
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebp
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400080b0
int3
Function at 0x14001f3a0
Capabilities:
Create process on windows

Disassembly:
push rbx
sub rsp, 0x30
xor eax, eax
lea r8, str.https:__www.revouninstaller.com_buy_now_revo_uninstaller_pro_
mov rbx, rcx
mov dword [rsp + 0x28], eax
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea rdx, [0x1402ed028]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
mov rcx, qword [rbx + 0xf0]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rcx + 0x40]
lea edx, [r9 + 0x10]
add rsp, 0x30
pop rbx
jmp qword [sym.imp.USER32.dll_PostMessageW]

Function at 0x14001fa60
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rdi, rdx
mov rsi, rcx
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001fb2b
mov ecx, 0x208
call fcn.1400164e0
mov rbx, rax
test rbx, rbx
je 0x14001fb26
mov r9d, 0x104
mov r8, rbx
xor edx, edx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x14001faf7
nop dword [rax + rax]
mov rdx, rbx
mov rcx, qword [rsp + 0x50]
call fcn.14001fa60
mov r9d, 0x104
mov r8, rbx
xor edx, edx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x14001fad0
mov rcx, rbx
call fcn.140095d64
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov eax, 8
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret