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

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x14003a040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14001df7d
xor eax, eax
jmp 0x14001e0e9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x14001dfb7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x14001dfb7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x14001e0e9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14001e0dc
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14001dffa
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x14001e025
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14001e0e1
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14001e094
sub eax, 1
je 0x14001e094
cmp eax, 2
jne 0x14001e0dc
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14001e0e1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x14001e0c2
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x14001e0dc
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x14001e0e1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14002c330
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x14001ecd0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x80
mov rax, qword [0x14003a040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov esi, 0xffff
movzx edi, dx
mov rbx, rcx
cmp si, dx
jne 0x14001ed01
xor eax, eax
jmp 0x14001ee4b
mov rax, qword [rcx + 0x40]
mov r8, qword [rax]
test r8, r8
je 0x14001ed3e
mov r9, qword [rcx + 0x58]
movsxd r10, dword [r9]
lea rdx, [r8 + r10*2]
cmp r8, rdx
jae 0x14001ed3e
lea ecx, [r10 - 1]
movzx eax, di
mov dword [r9], ecx
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 2]
mov qword [rdx], rcx
mov word [r8], di
jmp 0x14001ee4b
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xb0], rbp
je 0x14001ee40
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x14001ed85
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
mov qword [r8], rcx
sub rdx, rcx
mov rax, qword [rbx + 0x38]
sar rdx, 1
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x14001ed93
movzx ecx, di
jmp 0x14001ede7
lea rax, [rsp + 0x40]
mov word [rsp + 0x50], di
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x52]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_wchar_t__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14001ee00
sub eax, 1
je 0x14001ee00
cmp eax, 2
jne 0x14001ee40
movzx ecx, word [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputwc]
cmp ax, si
cmove di, si
movzx eax, di
jmp 0x14001ee43
mov rbp, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rbp, rax
je 0x14001ee2e
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rbp
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbp, rax
jne 0x14001ee40
lea rax, [rsp + 0x50]
mov byte [rbx + 0x72], 1
cmp qword [rsp + 0x48], rax
cmovne si, di
movzx eax, si
mov rbp, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14002c330
add rsp, 0x80
pop rdi
pop rsi
pop rbx
ret

Function at 0x1400200e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rcx + 0x1384], 0xffffffff
lea r9, [rcx + 8]
mov dword [rcx + 4], edx
mov r8d, 1
nop word [rax + rax]
mov eax, edx
lea r9, [r9 + 4]
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
inc r8
mov dword [r9 - 4], edx
cmp r8, 0x270
jb 0x140020100
mov dword [rcx], 0x270
mov rax, rcx
ret

Function at 0x1400201f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x140020224
movabs r10, 0x100000001b3
nop
movzx ecx, byte [rdx + r9]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x140020210
ret
Function at 0x140020cf0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14003a040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140020dc3
cmp byte [rcx + 0x71], 0
je 0x140020dc3
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x140020dbf
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140020d84
sub eax, 1
je 0x140020d88
cmp eax, 2
jne 0x140020dbf
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14002c330
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140020db6
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x140020dbf
cmp byte [rbx + 0x71], 0
sete al
jmp 0x140020d6c
xor al, al
jmp 0x140020d6c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14002c330
add rsp, 0x60
pop rbx
ret

Function at 0x140021120
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14003a040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x1400211f5
cmp byte [rcx + 0x72], 0
je 0x1400211f5
mov rax, qword [rcx]
mov qword [rsp + 0x78], rdi
mov edi, 0xffff
mov edx, edi
call qword [rax + 0x18]
cmp di, ax
je 0x1400211f1
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_wchar_t__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x1400211b6
sub eax, 1
je 0x1400211ba
cmp eax, 2
jne 0x1400211f1
mov byte [rbx + 0x72], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14002c330
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x72], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x1400211e8
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x1400211f1
cmp byte [rbx + 0x72], 0
sete al
jmp 0x14002119e
xor al, al
jmp 0x14002119e
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14002c330
add rsp, 0x60
pop rbx
ret
Function at 0x140024a70
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, rcx
mov r10d, 0x270
mov ecx, dword [rcx]
cmp ecx, r10d
jne 0x140024ad1
lea r8, [r9 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x140024a90
mov ecx, dword [r9]
jmp 0x140024bbb
cmp ecx, 0x4e0
jb 0x140024bbb
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
add r10, 4
mov edx, r11d
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x140024af0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x140024b40
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret
Function at 0x1400278c0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x140027985
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x140027985
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x14002799e
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx + 0x10]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx]
cmp rcx, rax
je 0x140027975
cmp byte [rcx], 0x5c
jne 0x14002796e
lea rdx, [rcx + 1]
cmp rdx, rax
je 0x14002796e
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14002795c
movzx eax, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x14002796b
test r8b, 0x10
jne 0x14002796e
movzx eax, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x14002796e
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.140023e20
test edi, edi
jne 0x1400278e0
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140023e10
int3

Function at 0x14002bd2c
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x14002bd66
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x14002bd6b
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x14002bdb4
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400307a0]
cmp byte [rcx + rax], 0
je 0x14002bdb4
dec r8
sub rdx, 1
jne 0x14002bd9a
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x14002cffc
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002d046
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14002d046
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14002d046
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14002d046
cmp dword [rcx + 0x84], 0xe
jbe 0x14002d046
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14002d048
xor al, al
add rsp, 0x28
ret
Function at 0x17b60
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x00034020]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rdi, rdx
mov rbp, rcx
xor ecx, ecx
mov qword [rdx + 0x10], rcx
mov rax, rdx
cmp qword [rdx + 0x18], 8
jb 0x17b9a
mov rax, qword [rdx]
mov word [rax], cx
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], rcx
mov word [rsp + 0x20], cx
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r14d, eax
test eax, eax
jne 0x17bfe
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xcb
je 0x17cae
test eax, eax
jle 0x17be7
movzx eax, ax
or eax, 0x80070000
mov r8d, eax
mov rdx, rbp
lea rcx, str.Failed_to_read_environment_variable___s___HRESULT:_0x_X
call fcn.00016e60
jmp 0x17cae
mov eax, 2
mul r14
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.00023dcc
mov rsi, rax
mov r8d, r14d
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x17bca
nop
inc rbx
cmp word [rsi + rbx*2], 0
jne 0x17c30
mov r8, rbx
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.00015160
mov rcx, rsi
call fcn.00023b00
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.0001f720
test al, al
je 0x17c8e
lea rax, [rsp + 0x20]
cmp rdi, rax
je 0x17c8a
lea rdx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
mov rcx, rdi
call fcn.00015160
mov bl, 1
jmp 0x17cb0
lea r8, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae r8, qword [rsp + 0x20]
mov rdx, rbp
lea rcx, [0x0002d990]
call fcn.00016a70
xor bl, bl
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x17cf5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x17cf0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x17cf0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.00023b00
movzx eax, bl
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.00023ae0
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x10003a160
Capabilities:
Get geographical location

Disassembly:
push rbx
sub rsp, 0x40
cmp byte [0x1000888ad], 0
jne 0x10003a1bc
lea rcx, [0x100088958]
call fcn.100074064
movzx ecx, word [0x100088958]
lea r8, [rsp + 0x20]
test eax, eax
setne byte [0x1000888ae]
xor ebx, ebx
lea r9d, [rbx + 0x10]
lea edx, [rbx + 0x58]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jle 0x10003a1ac
bt dword [rsp + 0x2c], 0x1b
setb bl
test ebx, ebx
mov byte [0x1000888ad], 1
setne byte [0x1000888af]
mov al, byte [0x1000888ae]
add rsp, 0x40
pop rbx
ret

Function at 0x10003a404
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
push rdi
sub rsp, 0x670
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x660], rax
lea rcx, [r11 - 0x428]
lea rbx, [0x100000000]
xor edx, edx
mov rax, qword [rbx + 0x25668]
mov r8d, 0x1ee
mov qword [rcx], rax
mov rax, qword [rbx + 0x25670]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x25678]
mov qword [rcx + 0x10], rax
movzx eax, word [rbx + 0x25680]
mov word [rcx + 0x18], ax
lea rcx, [r11 - 0x40e]
call sub.msvcrt.dll_memset
mov rax, qword [rbx + 0x25688]
lea r11, [rsp + 0x458]
mov qword [r11], rax
mov rax, qword [rbx + 0x25690]
lea rcx, [rsp + 0x476]
mov qword [r11 + 8], rax
mov rax, qword [rbx + 0x25698]
xor edx, edx
mov qword [r11 + 0x10], rax
mov eax, dword [rbx + 0x256a0]
mov r8d, 0x1ea
mov dword [r11 + 0x18], eax
movzx eax, word [rbx + 0x256a4]
mov word [r11 + 0x1c], ax
call sub.msvcrt.dll_memset
xor ebx, ebx
and qword [rsp + 0x30], 0
movsxd rax, ebx
mov r9d, 0x2001f
xor r8d, r8d
mov rcx, 0xffffffff80000000
mov edi, 1
imul rax, rax, 0x208
lea rsi, [rsp + rax + 0x250]
lea rax, [rsp + 0x30]
mov rdx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10003a565
and dword [rsp + 0x38], eax
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
lea r9d, [rdi + 3]
lea rdx, [0x1000256a8]
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x10003a556
mov rcx, qword [rsp + 0x30]
lea rdx, [0x1000256a8]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
xor edi, edi
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x10003a5ae
lea r8, [0x1000256b8]
lea rcx, [rsp + 0x40]
mov r9, rsi
mov edx, 0x104
call fcn.10003a080
test eax, eax
js 0x10003a5ae
lea rax, [rsp + 0x40]
test rax, rax
je 0x10003a5ae
lea rdx, [0x1000256d8]
lea rcx, [rsp + 0x40]
call fcn.100057e78
lea rdx, [0x1000256e0]
lea rcx, [rsp + 0x40]
call fcn.100057e78
inc ebx
cmp ebx, 2
jb 0x10003a4cb
mov rcx, qword [rsp + 0x660]
xor rcx, rsp
call fcn.10007fa70
lea r11, [rsp + 0x670]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x10003a720
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x240], rax
lea rcx, [rsp + 0x30]
xor esi, esi
mov ebp, 0xffff
mov edx, 0x105
mov ebx, 1
mov word [rsp + 0x20], si
movzx edi, bp
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp eax, esi
je 0x10003a7b5
lea r8, [0x1000256e8]
lea rcx, [rsp + 0x30]
mov edx, 0x105
call fcn.100039ee4
cmp eax, esi
jl 0x10003a7b5
lea rcx, [rsp + 0x30]
call fcn.100053454
cmp eax, esi
je 0x10003a7b5
lea rdx, [rsp + 0x24]
lea rcx, [rsp + 0x30]
mov word [rsp + 0x24], si
call fcn.10005795c
cmp eax, esi
cmovne di, word [rsp + 0x24]
lea rdx, [rsp + 0x20]
lea rcx, [0x100025e10]
call fcn.10005795c
cmp eax, esi
je 0x10003a7d9
cmp bp, di
je 0x10003a7d9
cmp word [rsp + 0x20], di
mov ebx, esi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.10007fa70
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x10003aea4
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push r13
sub rsp, 0x490
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x480], rax
xor edi, edi
cmp dword [0x10008889c], edi
je 0x10003aeda
call fcn.100057a0c
jmp 0x10003af00
lea rax, [rsp + 0x60]
test rax, rax
je 0x10003aef0
lea rcx, [rsp + 0x60]
call fcn.100054458
jmp 0x10003aef2
xor eax, eax
test eax, eax
je 0x10003af03
lea rcx, [rsp + 0x60]
call fcn.100052d68
mov rdi, rax
lea rcx, [0x100025820]
call fcn.100052d68
cmp rdi, rax
ja 0x10003b0a7
and qword [rsp + 0x40], 0
and qword [rsp + 0x50], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
and qword [rsp + 0x30], 0
lea rdx, [0x100025840]
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x2001f
and dword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x10003b0a7
lea rax, [rsp + 0x270]
test rax, rax
je 0x10003af84
lea rcx, [rsp + 0x270]
mov edx, 0x104
call fcn.100058170
jmp 0x10003af86
xor eax, eax
test eax, eax
je 0x10003b09c
lea rcx, [rsp + 0x270]
call fcn.100052d68
mov rbx, rax
lea rax, [rsp + 0x60]
test rax, rax
je 0x10003afb4
lea rcx, [rsp + 0x60]
call fcn.100057a94
jmp 0x10003afb6
xor eax, eax
lea r13, [0x1000258b8]
test eax, eax
je 0x10003aff4
lea rcx, [rsp + 0x60]
call fcn.100052d68
cmp rax, rbx
jae 0x10003b01c
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
repne scasw ax, word [rdi]
not rcx
lea eax, [rcx + rcx]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
jmp 0x10003b001
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r13
mov rcx, qword [rsp + 0x50]
lea rdx, [0x100025890]
mov r9d, 1
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [0x10008889c], 0
jne 0x10003b09c
lea rax, [rsp + 0x60]
test rax, rax
je 0x10003b03b
lea rcx, [rsp + 0x60]
call fcn.1000543c8
jmp 0x10003b03d
xor eax, eax
test eax, eax
je 0x10003b074
lea rcx, [rsp + 0x60]
call fcn.100052d68
cmp rax, rbx
jae 0x10003b09c
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
repne scasw ax, word [rdi]
not rcx
lea eax, [rcx + rcx]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
jmp 0x10003b081
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r13
mov rcx, qword [rsp + 0x50]
lea rdx, [0x1000258c0]
mov r9d, 1
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.10007fa70
lea r11, [rsp + 0x490]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop r13
ret