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

Disassembly:
push rbx
push rsi
push rdi
mov eax, 0x1030
call fcn.140009a80
sub rsp, rax
mov rax, qword [0x140037008]
xor rax, rsp
mov qword [rsp + 0x1020], rax
mov rbx, rdx
mov rdi, r8
lea rdx, [0x140025410]
call fcn.140002d70
mov rdx, rdi
mov rcx, rbx
mov rsi, rax
call fcn.1400057d0
xor edi, edi
mov rbx, rax
test rsi, rsi
je 0x140005483
mov rcx, rsi
test rax, rax
je 0x14000548b
call fcn.14000bd48
test eax, eax
jne 0x14000546f
nop word [rax + rax]
mov r9, rsi
lea rcx, [rsp + 0x20]
mov edx, 1
mov r8d, 0x1000
call fcn.14000c000
test rax, rax
jne 0x14000542e
mov rcx, rsi
call fcn.14000bd74
test eax, eax
je 0x140005454
mov rcx, rsi
jmp 0x140005465
mov r9, rbx
lea rcx, [rsp + 0x20]
mov r8, rax
mov edx, 1
call fcn.14000c528
test rax, rax
je 0x140005462
mov rcx, rbx
call fcn.14000bd74
test eax, eax
jne 0x140005462
mov rcx, rsi
call fcn.14000bd48
test eax, eax
je 0x140005400
jmp 0x14000546f
mov rcx, rbx
call fcn.140012f78
mov edi, 0xffffffff
mov rcx, rsi
call fcn.14000bce4
mov rcx, rbx
call fcn.14000bce4
mov eax, edi
jmp 0x140005495
test rbx, rbx
je 0x140005490
mov rcx, rbx
call fcn.14000bce4
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x1020]
xor rcx, rsp
call fcn.140009a50
add rsp, 0x1030
pop rdi
pop rsi
pop rbx
ret

Function at 0x140005f30
Capabilities:
Read file on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r12, rcx
mov rbp, r8
mov ecx, 0x2000
mov r14, rdx
xor r13d, r13d
call fcn.14000f9f4
mov r15, rax
test rax, rax
je 0x140006043
xor edx, edx
lea r8d, [r13 + 2]
mov rcx, r12
call fcn.14000c2d0
test eax, eax
js 0x140006043
mov rcx, r12
mov qword [rsp + 0x50], rbx
call fcn.1400134f8
mov rbx, rax
cmp rax, rbp
jb 0x14000603e
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rdi
nop dword [rax]
cmp rbx, 0x2000
lea rsi, [rbx - 0x2000]
cmovb rsi, r13
sub rbx, rsi
cmp rbx, rbp
jb 0x140006034
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.14000c2d0
test eax, eax
js 0x140006034
mov r9, r12
mov r8, rbx
mov edx, 1
mov rcx, r15
call fcn.14000c000
cmp rax, rbx
jne 0x140006034
sub rbx, rbp
add rbx, 1
je 0x14000601b
lea rdi, [r15 - 1]
add rdi, rbx
nop dword [rax]
nop dword [rax + rax]
mov r8, rbp
mov rdx, r14
mov rcx, rdi
call fcn.14000b070
test eax, eax
je 0x14000602d
dec rdi
sub rbx, 1
jne 0x140006000
lea rbx, [rbp - 1]
add rbx, rsi
test rsi, rsi
jne 0x140005fa0
jmp 0x140006034
lea r13, [rbx - 1]
add r13, rsi
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov rcx, r15
call fcn.14000f9e0
mov rax, r13
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x140014488
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400142b4
Function at 0x180001230
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov r15, rdx
mov rsi, rcx
xor ebp, ebp
mov qword [rcx], rbp
mov qword [rcx + 0x18], 0xf
mov qword [rcx + 0x10], rbp
mov byte [rcx], bpl
mov qword [rcx + 0x20], rbp
mov qword [rcx + 0x28], rbp
mov dword [rcx + 0x30], ebp
mov dword [rsp + 0x70], 0x3a98
mov r14, qword gs:[0x60]
test r14, r14
je 0x1800012bb
mov rax, qword [r14 + 0x18]
mov rdi, qword [rax + 0x20]
mov rbx, rdi
nop dword [rax + rax]
lea rdx, str.KERNEL32.DLL
mov rcx, qword [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x1800012b7
mov rbx, qword [rbx]
mov rdi, qword [rbx]
mov rax, qword [r14 + 0x18]
cmp rbx, qword [rax + 0x20]
jne 0x180001290
jmp 0x1800012bb
mov rbp, qword [rdi + 0x20]
lea rdx, str.LoadLibraryA
mov rcx, rbp
call fcn.180001920
mov rbx, rax
lea rdx, [0x180031448]
mov rcx, rbp
call fcn.180001920
mov rdi, rax
lea rcx, str.Wininet.dll
call rbx
mov qword [rsi + 0x38], rax
lea rdx, str.InternetOpenA
mov rcx, rax
call rdi
mov qword [rsi + 0x50], rax
lea rdx, str.InternetSetOptionA
mov rcx, qword [rsi + 0x38]
call rdi
mov qword [rsi + 0x58], rax
lea rdx, str.InternetOpenUrlW
mov rcx, qword [rsi + 0x38]
call rdi
mov qword [rsi + 0x68], rax
lea rdx, str.InternetReadFile
mov rcx, qword [rsi + 0x38]
call rdi
mov qword [rsi + 0x60], rax
mov dword [rsp + 0x20], 0xa4000000
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, r15
call qword [rsi + 0x50]
mov qword [rsi + 0x20], rax
test rax, rax
je 0x180001392
mov r9d, 4
lea r8, [rsp + 0x70]
lea edx, [r9 - 2]
mov rcx, rax
call qword [rsi + 0x58]
mov r9d, 4
lea r8, [rsp + 0x70]
lea edx, [r9 + 4]
mov rcx, qword [rsi + 0x20]
call qword [rsi + 0x58]
mov r9d, 4
lea r8, [rsp + 0x70]
lea edx, [r9 + 3]
mov rcx, qword [rsi + 0x20]
call qword [rsi + 0x58]
nop
mov rax, rsi
mov rbx, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x180001920
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
movsxd r12, dword [rcx + 0x3c]
xor r15d, r15d
mov rbp, rdx
mov rdi, rcx
mov r11d, r15d
mov ebx, dword [r12 + rcx + 0x88]
add rbx, rcx
mov r14d, dword [rbx + 0x24]
mov r10d, dword [rbx + 0x20]
add r14, rcx
add r10, rcx
cmp rdx, 0x10000
jae 0x18000199d
mov r8d, dword [rbx + 0x10]
movzx edx, bp
cmp edx, r8d
jb 0x180001ae5
mov ecx, dword [rbx + 0x14]
add ecx, r8d
cmp edx, ecx
jae 0x180001ae5
mov ecx, dword [rbx + 0x1c]
sub edx, r8d
add rcx, rdi
mov r11, qword [rcx + rdx*8]
jmp 0x1800019f7
mov esi, dword [rbx + 0x18]
mov r9d, r15d
test esi, esi
je 0x1800019fa
nop word [rax + rax]
mov r8d, dword [r10]
mov rax, rbp
add r8, rdi
sub r8, rbp
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1800019d3
inc rax
test ecx, ecx
jne 0x1800019c0
test edx, edx
je 0x1800019e5
inc r9d
add r10, 4
cmp r9d, esi
jb 0x1800019b0
jmp 0x1800019fa
mov ecx, dword [rbx + 0x1c]
mov eax, r9d
add rcx, rdi
movzx edx, word [r14 + rax*2]
mov r11d, dword [rcx + rdx*4]
add r11, rdi
cmp r11, rbx
jb 0x180001ac3
mov eax, dword [r12 + rdi + 0x8c]
add rax, rbx
cmp r11, rax
jae 0x180001ac3
mov rcx, r11
call fcn.180017cf0
mov rbp, rax
test rax, rax
je 0x180001ae5
mov edx, 0x2e
mov rcx, rax
call fcn.180012310
mov r14, rax
mov byte [rax], r15b
mov rsi, qword gs:[0x60]
test rsi, rsi
je 0x180001a8b
mov rax, qword [rsi + 0x18]
mov rdi, qword [rax + 0x20]
mov rbx, rdi
nop word [rax + rax]
mov rcx, qword [rdi + 0x50]
lea rdx, str.KERNEL32.DLL
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x180001a87
mov rbx, qword [rbx]
mov rax, qword [rsi + 0x18]
mov rdi, qword [rbx]
cmp rbx, qword [rax + 0x20]
jne 0x180001a60
jmp 0x180001a8b
mov r15, qword [rdi + 0x20]
lea rdx, str.LoadLibraryA
mov rcx, r15
call fcn.180001920
test rax, rax
je 0x180001ae5
mov rcx, rbp
call rax
mov rcx, rbp
mov rbx, rax
call fcn.180017d68
test rbx, rbx
je 0x180001ae5
lea rdx, [r14 + 1]
mov rcx, rbx
call fcn.180001920
mov r11, rax
mov rax, r11
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
xor eax, eax
jmp 0x180001ac6

Function at 0x180001af0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, qword gs:[0x60]
mov rbp, rcx
test rsi, rsi
je 0x180001b41
mov rax, qword [rsi + 0x18]
mov rdi, qword [rax + 0x20]
mov rbx, rdi
mov rcx, qword [rdi + 0x50]
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x180001b58
mov rbx, qword [rbx]
mov rax, qword [rsi + 0x18]
mov rdi, qword [rbx]
cmp rbx, qword [rax + 0x20]
jne 0x180001b20
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rdi + 0x20]
jmp 0x180001b43
Function at 0x18000de70
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x18000dea4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x18000de90
ret
Function at 0x1800273dc
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x18002740c
xor eax, eax
jmp 0x1800274cf
mov rbp, rbx
cmp word [rax], si
je 0x180027431
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x180027418
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x180027414
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.180025b24
movsxd r14, eax
test eax, eax
jne 0x18002746f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x180027405
mov rcx, r14
call fcn.180021e9c
mov rdi, rax
test rax, rax
jne 0x180027488
xor ecx, ecx
call fcn.180021b98
jmp 0x180027464
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.180025b24
test eax, eax
jne 0x1800274b9
mov rcx, rdi
call fcn.180021b98
jmp 0x1800274c3
xor ecx, ecx
call fcn.180021b98
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret
Function at 0x1800032a8
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r9
push rbp
push rbx
lea rbp, [rax - 0x178]
sub rsp, 0x268
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x18001b030]
xor rax, rsp
mov qword [rbp + 0x150], rax
xor ebx, ebx
cmp byte [0x180021b84], bl
jne 0x18000330a
lea rcx, str.NGenServiceDebugLog
call fcn.180005064
mov dword [0x180021b80], eax
mov byte [0x180021b84], 1
jmp 0x180003310
mov eax, dword [0x180021b80]
test eax, eax
je 0x180003380
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x34], 0x200
mov dword [rsp + 0x30], 2
mov rax, qword [rsp + 0x40]
mov word [rax], bx
lea r8, [rbp + 0x188]
mov rdx, qword [rbp + 0x180]
lea rcx, [rsp + 0x30]
call fcn.180008074
lea rcx, [rsp + 0x30]
call fcn.180007508
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
test byte [rsp + 0x38], 8
je 0x180003380
mov rcx, qword [rsp + 0x40]
call fcn.180004e48
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.18000bef0
add rsp, 0x268
pop rbx
pop rbp
ret
Function at 0x180003f08
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x48
call fcn.18000339c
and qword [rsp + 0x30], 0
and qword [rsp + 0x38], 0
mov qword [rsp + 0x20], rax
lea rax, [0x180003e58]
lea rcx, str.Calling_StartServiceCtrlDispatcher_n
mov qword [rsp + 0x28], rax
call fcn.1800032a8
mov rax, qword [0x1800212e0]
test rax, rax
jne 0x180003f95
cmp byte [0x1800212e8], al
jne 0x180003f91
lea rcx, str.advapi32.dll
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test rax, rax
je 0x180003f7e
lea rdx, str.StartServiceCtrlDispatcherW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800212e0], rax
jmp 0x180003f85
mov rax, qword [0x1800212e0]
mov byte [0x1800212e8], 1
test rax, rax
jne 0x180003f95
xor eax, eax
jmp 0x180003f9c
lea rcx, [rsp + 0x20]
call rax
test eax, eax
jne 0x180003fb6
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.StartServiceCtrlDispatcher_failed_with_error__d.__Will_try_slow_path_n
mov edx, eax
call fcn.1800032a8
jmp 0x180003fd3
lea rcx, str.StartServiceCtrlDispatcher_done__exiting_n
call fcn.1800032a8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x48
ret

Function at 0x180003fd8
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x168]
sub rsp, 0x260
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rax, qword [0x18001b030]
xor rax, rsp
mov qword [rbp + 0x150], rax
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x34], 0x200
mov dword [rsp + 0x30], 2
mov rax, qword [rsp + 0x40]
mov word [rax], bx
lea rcx, [rsp + 0x30]
call fcn.18000192c
lea rdx, str._ndpsetup.bat
lea rcx, [rsp + 0x30]
call fcn.1800014a0
lea rcx, [rsp + 0x30]
call fcn.180007508
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x180004081
test byte [rsp + 0x38], 8
je 0x18000407d
mov rcx, qword [rsp + 0x40]
call fcn.180004e48
xor al, al
jmp 0x1800040bd
mov dword [rsp + 0x20], ebx
lea r8, [rsp + 0x20]
lea rdx, str.Install
lea rcx, str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v4Client
call fcn.1800091c8
test eax, eax
je 0x1800040a8
cmp dword [rsp + 0x20], 1
je 0x1800040aa
mov bl, 1
test byte [rsp + 0x38], 8
je 0x1800040bb
mov rcx, qword [rsp + 0x40]
call fcn.180004e48
mov al, bl
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.18000bef0
mov rbx, qword [rsp + 0x270]
add rsp, 0x260
pop rbp
ret
Function at 0x1800047d4
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_HeapSetInformation]
call fcn.1800072d4
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea rdx, [rsp + 0x20]
mov rcx, rax
call fcn.180009458
mov ebx, dword [rsp + 0x20]
dec ebx
mov rdi, rax
je 0x18000482d
cmp ebx, 1
jne 0x180004837
mov rcx, qword [rax + 8]
lea rdx, str._private
call qword [sym.imp.MSVCR100_CLR0400.dll__wcsicmp]
test eax, eax
jne 0x180004837
test ebx, ebx
setg cl
call fcn.180004444
and dword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
lea rdx, [rdi + 8]
mov ecx, ebx
call fcn.180002d70
test al, al
je 0x180004856
mov eax, dword [rsp + 0x20]
jmp 0x180004861
lea rdx, [rdi + 8]
mov ecx, ebx
call fcn.180003064
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret

Function at 0x180008824
Capabilities:
Hash data using djb2
Query environment variable

Disassembly:
mov rax, rsp
push rdi
push r13
push r14
sub rsp, 0xd0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x18001b030]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov r8d, edx
mov rbx, rcx
xor eax, eax
or r14, 0xffffffffffffffff
mov rcx, r14
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r13d, [rax + 1]
sub rcx, r13
mov eax, edx
neg eax
sbb edx, edx
and edx, 8
lea eax, [r14 + 0x40]
sub eax, edx
cdqe
cmp rcx, rax
jbe 0x180008896
xor eax, eax
jmp 0x180008981
xor ebp, ebp
test r8d, r8d
je 0x180008907
cmp dword [0x180021374], ebp
je 0x1800088ee
mov rsi, rbx
mov edi, 0x1505
movzx eax, word [rbx]
jmp 0x1800088ca
movzx ecx, ax
call qword [sym.imp.MSVCR100_CLR0400.dll_towupper]
movzx edx, ax
imul edi, edi, 0x21
xor edi, edx
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x1800088b2
movzx eax, dil
mov edi, eax
shr edi, 5
and eax, 0x1f
mov edx, r13d
mov cl, al
shl edx, cl
lea rcx, [0x180021a40]
test dword [rcx + rdi*4], edx
je 0x18000888f
lea r8, str.COMPlus_
mov edx, 0x40
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCR100_CLR0400.dll_wcscpy_s]
jmp 0x18000890c
mov word [rsp + 0x40], bp
mov r8, rbx
mov edx, 0x40
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCR100_CLR0400.dll_wcscat_s]
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
movsxd rbx, eax
test eax, eax
je 0x18000888f
mov eax, 2
mul rbx
cmovo rax, r14
mov rcx, rax
call fcn.180004de8
mov rdi, rax
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], ebp
mov ecx, ebp
test rax, rax
cmovne ecx, r13d
mov dword [rsp + 0x28], ecx
je 0x18000897a
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [rsp + 0x28], ebp
mov rax, rdi
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.18000bef0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop rdi
ret
Function at 0x1800089b0
Capabilities:
Query or enumerate 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
mov rbp, rsp
sub rsp, 0x50
and dword [rbp - 0x20], 0
and dword [rbp + 0x48], 0
mov r12d, r9d
mov rdi, r8
mov esi, edx
mov r14, rcx
mov dword [rbp - 0x1c], 4
test r9b, 1
je 0x180008a34
mov edx, dword [rbp + 0x50]
call fcn.180008824
mov r13, rax
test rax, rax
je 0x180008a34
lea rdx, [rbp - 8]
mov r8d, 0x10
mov rcx, rax
call qword [sym.imp.MSVCR100_CLR0400.dll_wcstoul]
xor ebx, ebx
cmp qword [rbp - 8], r13
mov rcx, r13
setne bl
mov r15d, eax
call fcn.180004e48
test ebx, ebx
je 0x180008a34
mov dword [rdi], r15d
xor eax, eax
jmp 0x180008b43
test r12b, 0xe
je 0x180008b3c
mov rcx, r14
call fcn.180009094
test eax, eax
je 0x180008b3c
or r13, 0xffffffffffffffff
mov r15d, 0x20019
test r12b, 2
je 0x180008acf
lea rax, [rbp - 0x18]
lea rdx, str.SoftwareMicrosoft.NETFramework
mov r9d, r15d
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rbp - 0x18], r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x180008acf
mov rcx, qword [rbp - 0x18]
lea rax, [rbp - 0x1c]
lea r9, [rbp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rbp - 0x18]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x180008acf
cmp dword [rbp + 0x48], 4
jne 0x180008acf
mov eax, dword [rbp - 0x20]
mov dword [rdi], eax
jmp 0x180008a2d
test r12b, 4
je 0x180008b3c
lea rax, [rbp - 0x10]
lea rdx, str.SoftwareMicrosoft.NETFramework
mov r9d, r15d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rbp - 0x10], r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x180008b3c
mov rcx, qword [rbp - 0x10]
lea rax, [rbp - 0x1c]
lea r9, [rbp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rbp - 0x10]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x180008b3c
cmp dword [rbp + 0x48], 4
je 0x180008ac5
mov dword [rdi], esi
mov eax, 0x80004005
lea r11, [rsp + 0x50]
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
Function at 0x180009094
Capabilities:
Encrypt data using rc4 prga
Hash data using djb2

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov rsi, rcx
cmp dword [0x180021370], ebx
je 0x18000910a
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp rcx, 0x50
ja 0x18000910a
mov edi, 0x1505
jmp 0x1800090e4
movzx ecx, ax
call qword [sym.imp.MSVCR100_CLR0400.dll_towupper]
imul edi, edi, 0x21
movzx edx, ax
xor edi, edx
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x1800090cf
movzx ecx, dil
mov edx, ecx
mov eax, ecx
lea rcx, [0x180021a20]
shr rax, 5
and edx, 0x1f
mov eax, dword [rcx + rax*4]
bt eax, edx
jae 0x18000910f
mov ebx, 1
mov rsi, qword [rsp + 0x38]
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1800091c8
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rdi
mov rbx, r8
mov rdi, rdx
and qword [rbp - 0x18], 0
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rcx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x180009273
mov dword [rbp + 0x28], 4
mov dword [rbp - 0x20], 4
lea rax, [rbp - 0x20]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x1c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x28]
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x180009273
cmp dword [rbp + 0x28], 4
jne 0x180009273
cmp dword [rbp - 0x20], 4
jne 0x180009273
mov eax, dword [rbp - 0x1c]
mov dword [rbx], eax
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x18000926c
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x180009284
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x180009282
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x50
pop rbp
ret
Function at 0x18000c35b
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x18001b030]
jne 0x18000bf0a
rol rcx, 0x10
test cx, 0xffff
jne 0x18000bf06
repz ret
ror rcx, 0x10
jmp 0x18000c2b4
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x1800208e0]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rax, qword [0x1800209d8]
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x18000c339
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x1800208e0]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x18000c35b
mov rax, qword [rsp + 0x88]
mov qword [0x1800209d8], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x180020978], rax
mov rax, qword [0x1800209d8]
mov qword [0x180020850], rax
mov rax, qword [rsp + 0x90]
mov qword [0x180020960], rax
mov dword [0x180020840], 0xc0000409
mov dword [0x180020844], 1
mov rax, qword [0x18001b030]
mov qword [rsp + 0x68], rax
mov rax, qword [0x18001b038]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x1800208d8], eax
mov ecx, 1
call sub.MSVCR100_CLR0400.dll___crt_debugger_hook
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x180010560]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x1800208d8], 0
jne 0x18000c3e2
mov ecx, 1
call sub.MSVCR100_CLR0400.dll___crt_debugger_hook
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret