joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401ca8e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0x20]
xor r15d, r15d
sub rax, 0x34
mov qword [rcx + 0x78], r15
mov qword [rcx + 0x28], rax
mov r14d, edx
mov rax, qword [rcx + 0x30]
mov rbx, rcx
mov word [rcx + 0x6a], r15w
lea ebp, [r15 - 1]
mov dword [rcx + 0x3c], r15d
mov edi, r15d
mov qword [rcx + 0x70], rax
mov qword [rax + 0x10], rax
mov word [rcx + 0x68], r15w
cmp r15w, word [rcx + 0xb8]
jge 0x1401caa1b
mov esi, r15d
mov rax, qword [rbx + 0xd0]
lea edx, [rbp + 1]
mov dword [rbx + 0x88], r15d
mov r9d, r14d
mov qword [rbx + 0x80], r15
mov rcx, rbx
movsx ebp, word [rsi + rax]
mov r8d, ebp
call fcn.1401cadb0
test al, al
jne 0x1401caab6
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 0x5c]
lea eax, [r8 - 1]
test edx, eax
jne 0x1401ca9af
cmp edx, dword [rbx + 0x60]
jl 0x1401ca9af
cmp edx, dword [rbx + 0x64]
jg 0x1401ca9af
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x1401ca9af
mov rax, qword [rbx + 0x70]
movzx ecx, byte [rcx + 0x18]
xor cl, byte [rax + 0x18]
test cl, 8
jne 0x1401ca9af
add qword [rbx + 0x30], 0xfffffffffffffffc
mov r9, qword [rbx + 0x70]
mov rax, qword [r9 + 0x10]
cmp qword [rbx + 0x30], rax
je 0x1401ca9d2
test byte [r9 + 0x18], 8
je 0x1401ca9d2
neg r8d
and r8d, edx
sub edx, r8d
cmp edx, dword [rbx + 8]
jmp 0x1401ca9e3
lea eax, [r8 - 1]
neg r8d
add eax, edx
and eax, r8d
sub eax, edx
cmp eax, dword [rbx + 8]
setge dl
mov rcx, rbx
call fcn.1401cb780
test al, al
jne 0x1401caab6
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x1401caa06
mov qword [r9 + 0x28], rax
movsx eax, word [rbx + 0xb8]
inc edi
add rsi, 2
cmp edi, eax
jl 0x1401ca943
movzx edi, word [rbx + 0x68]
mov rdx, qword [rbx + 0x78]
cmp di, 1
jbe 0x1401caaba
test rdx, rdx
je 0x1401caaba
mov ebp, 0xffff
nop dword [rax + rax]
lea rsi, [rdx + 8]
cmp di, 1
jbe 0x1401caa58
movsxd rcx, dword [rdx + 0x1c]
mov rax, qword [rdx + 0x10]
lea r10, [rax + rcx*4]
jmp 0x1401caa5b
mov r10, r15
mov qword [rsi], r10
test byte [rdx + 0x18], 8
mov r11d, dword [rdx + 0x20]
mov r8d, r11d
mov eax, dword [rdx + 0x1c]
je 0x1401caa76
dec r11d
add r11d, eax
jmp 0x1401caa8d
sub r8d, eax
inc r8d
dec eax
mov dword [rdx + 0x20], r8d
movsxd rcx, eax
shl rcx, 2
add qword [rdx + 0x10], rcx
mov edx, r8d
mov rcx, rbx
call fcn.1401cba90
test al, al
jne 0x1401caab6
lea edx, [r11 + 1]
mov rcx, rbx
call fcn.1401cba90
test al, al
jne 0x1401caab6
mov rdx, qword [rsi]
add di, bp
jne 0x1401caa40
jmp 0x1401caabe
mov al, 1
jmp 0x1401caac9
mov qword [rbx + 0x78], r15
mov rax, qword [rbx + 0x28]
cmp qword [rbx + 0x30], rax
setae al
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x1401d0be0
Capabilities:
Get file size
Read file on windows
Read file via mapping

Disassembly:
push rbx
push rbp
sub rsp, 0x48
mov rbp, rdx
mov rbx, rcx
test rcx, rcx
jne 0x1401d0bfc
lea eax, [rcx + 0x28]
add rsp, 0x48
pop rbp
pop rbx
ret
mov qword [rsp + 0x68], rsi
xor r9d, r9d
mov qword [rsp + 0x40], r14
mov edx, 0x80000000
xor r14d, r14d
mov rcx, rbp
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], Ordinal_133
mov dword [rsp + 0x20], 3
lea r8d, [r14 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1401d0c50
mov r14, qword [rsp + 0x40]
lea eax, [rsi + 2]
mov rsi, qword [rsp + 0x68]
add rsp, 0x48
pop rbp
pop rbx
ret
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x78], rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1401d0d75
mov rax, qword [rsp + 0x70]
cmp rax, 0x7fffffff
jg 0x1401d0d75
test rax, rax
je 0x1401d0d75
xor r9d, r9d
mov qword [rsp + 0x28], r14
xor edx, edx
mov dword [rsp + 0x20], r14d
mov rcx, rsi
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov rdi, rax
test rax, rax
je 0x1401d0d75
mov ecx, dword [rsp + 0x70]
xor r9d, r9d
mov dword [rbx + 8], ecx
xor r8d, r8d
mov rcx, rax
mov dword [rbx + 0xc], r14d
mov qword [rsp + 0x20], r14
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rcx, rdi
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], r14
je 0x1401d0cea
lea rax, [0x1401d0dd0]
jmp 0x1401d0d43
mov rcx, qword [rbx + 0x30]
xor edx, edx
movsxd r8, dword [rbx + 8]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
test rax, rax
je 0x1401d0d75
mov edi, r14d
nop dword [rax + rax]
mov r8d, dword [rbx + 8]
lea r9, [rsp + 0x60]
mov edx, edi
sub r8d, edi
add rdx, qword [rbx]
mov rcx, rsi
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401d0d63
add edi, dword [rsp + 0x60]
cmp edi, dword [rbx + 8]
jne 0x1401d0d10
lea rax, [0x1401d0da0]
mov rcx, rsi
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbx]
mov qword [rbx + 0x10], rax
xor eax, eax
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x20], r14
jmp 0x1401d0d8a
mov rcx, qword [rbx + 0x30]
xor edx, edx
mov r8, qword [rbx]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x51
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x40]
add rsp, 0x48
pop rbp
pop rbx
ret
Function at 0x1401d25f0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rdx
test rdx, rdx
jne 0x1401d25fb
xor eax, eax
ret
lea r11, [0x140218c10]
not ecx
cmp r8d, 8
jb 0x1401d26d1
mov r10d, r8d
shr r10, 3
nop word [rax + rax]
movzx edx, byte [r9]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
add r8d, 0xfffffff8
movzx edx, byte [r9 + 1]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 2]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 3]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 4]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 5]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 6]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 7]
add r9, 8
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
sub r10, 1
jne 0x1401d2620
test r8d, r8d
je 0x1401d26fd
nop word [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
add r8d, 0xffffffff
jne 0x1401d26e0
not ecx
mov eax, ecx
ret
Function at 0x140002740
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x140002768
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14000278e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140002790
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x1400027e9
test ecx, ecx
jle 0x1400027c9
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x1400027e9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x1400027e9
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x140002810
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140002832
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x140002848
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140002864
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140002866
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x1400028a2
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14000293e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x1400028dd
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x14000291e
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x14000293e
cmp rbx, rax
ja 0x1400028f0
test rbx, rbx
je 0x14000293e
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x140002d60
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x14000a010]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x140002d8d
xor eax, eax
jmp 0x140002eea
mov rdx, qword [rcx + 0x40]
mov rax, qword [rdx]
test rax, rax
je 0x140002db8
mov rdx, qword [rcx + 0x58]
movsxd r8, dword [rdx]
add r8, rax
cmp rax, r8
jae 0x140002db8
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void____ptr64]
mov byte [rax], dil
mov eax, edi
jmp 0x140002eea
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x140002edd
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x140002dfb
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
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 0x140002e26
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 0x140002ee2
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 0x140002e95
sub eax, 1
je 0x140002e95
cmp eax, 2
jne 0x140002edd
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 0x140002ee2
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140002ec3
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 0x140002edd
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140002ee2
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140004170
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140003130
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14000a010]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140003203
cmp byte [rcx + 0x71], 0
je 0x140003203
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x1400031ff
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 0x1400031c4
sub eax, 1
je 0x1400031c8
cmp eax, 2
jne 0x1400031ff
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140004170
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x1400031f6
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 0x1400031ff
cmp byte [rbx + 0x71], 0
sete al
jmp 0x1400031ac
xor al, al
jmp 0x1400031ac
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140004170
add rsp, 0x60
pop rbx
ret

Function at 0x140004ba4
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140004bee
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140004bee
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140004bee
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140004bee
cmp dword [rcx + 0x84], 0xe
jbe 0x140004bee
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140004bf0
xor al, al
add rsp, 0x28
ret
Function at 0x140001374
Capabilities:
Accept command line arguments

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 r12
push r14
push r15
sub rsp, 0x20
xor ebx, ebx
mov r15d, ebx
call qword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_GetCommandLineW]
mov rbp, rax
test rax, rax
jne 0x1400013ab
xor eax, eax
jmp 0x140001508
mov r12d, 2
cmp word [rax], 0x20
je 0x1400013bd
cmp word [rax], 9
jne 0x1400013c2
add rax, r12
jmp 0x1400013b1
cmp word [rax], bx
jne 0x1400013ce
jmp 0x1400013a4
cmp word [rax], bx
je 0x1400013ea
inc r15d
mov rcx, rax
call fcn.140001544
cmp word [rax], 0x20
je 0x1400013e5
cmp word [rax], 9
jne 0x1400013c9
add rax, r12
jmp 0x1400013d9
movsxd rcx, r15d
mov eax, 8
mul rcx
mov r14, 0xffffffffffffffff
cmovo rax, r14
mov rcx, rax
call fcn.1400064c8
mov rsi, rax
test rax, rax
je 0x140001500
mov rdi, r14
inc rdi
cmp word [rbp + rdi*2], bx
jne 0x140001417
inc rdi
mov rax, r12
mul rdi
cmovo rax, r14
mov rcx, rax
call fcn.1400064c8
mov r14, rax
test rax, rax
je 0x1400014f8
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call fcn.1400012f8
test eax, eax
js 0x140001527
mov edx, ebx
mov rax, r14
mov r8, rsi
cmp word [rax], bx
je 0x140001497
mov qword [r8], rax
mov rcx, rax
add r8, 8
inc edx
call fcn.140001544
test rax, rax
je 0x140001497
cmp word [rax], bx
je 0x140001492
mov word [rax], bx
add rax, r12
cmp word [rax], 0x20
je 0x140001483
cmp word [rax], 9
je 0x140001483
test rax, rax
jne 0x140001460
movsxd rbp, edx
mov rdi, rbx
test edx, edx
jle 0x1400014d2
mov r12d, 0x22
mov rcx, qword [rsi + rdi*8]
cmp word [rcx], r12w
jne 0x1400014ca
add rcx, 2
mov edx, r12d
mov qword [rsi + rdi*8], rcx
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x1400014ca
mov word [rax], bx
inc rdi
cmp rdi, rbp
jl 0x1400014a7
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_com_l1_1_1.dll_CoInitializeEx]
mov r8d, 3
mov rdx, rsi
mov ecx, r15d
call qword [sym.imp.MSDTCTM.dll_Ordinal_4]
mov ebx, eax
mov rcx, r14
call fcn.140006508
mov rcx, rsi
call fcn.140006508
call qword [sym.imp.api_ms_win_core_com_l1_1_1.dll_CoUninitialize]
mov eax, ebx
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
mov ecx, eax
call fcn.1400020a8
lea rcx, str.failed_in_TracedStringCchCopyW
call fcn.140001984
int3
Function at 0x1400017b0
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
lea rbp, [rsp - 0x4a0]
sub rsp, 0x5a0
and dword [rsp + 0x30], 0
mov rbx, rcx
lea rcx, [rsp + 0x34]
xor edx, edx
mov r8d, 0x94
call sub.msvcrt.dll_memset
test rbx, rbx
jne 0x14000182b
lea rax, [rbp - 0x30]
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x28], rax
call qword [sym.imp.ntdll.dll_RtlCaptureContext]
and qword [rsp + 0x38], rbx
lea rax, [rsp + 0x30]
and dword [rsp + 0x48], ebx
lea rbx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
lea rax, [fcn.1400017b0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], 0xc00000e5
mov dword [rsp + 0x34], 1
lea rcx, str.GenerateErrorDumps
call fcn.1400018d8
test eax, eax
je 0x14000189c
mov rcx, qword [0x14000f728]
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_ResetEvent]
test eax, eax
jne 0x14000185c
lea r8d, [rax + 0x7f]
lea rcx, str.ResetEvent_fails_in_CEventSem::Reset__
call fcn.140002374
xor r8d, r8d
lea rcx, [0x140001a80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_QueueUserWorkItem]
test eax, eax
je 0x14000189c
mov rcx, qword [0x14000f728]
xor r8d, r8d
or edx, 0xffffffff
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WaitForSingleObjectEx]
cmp eax, 0xffffffff
jne 0x14000189c
mov r8d, 0x74
lea rcx, str.WaitForSingleObjectEx_fails_in_CEventSem::Wait__
call fcn.140002374
mov rdx, qword [rbx + 8]
mov r8d, 1
mov rcx, qword [rbx]
call qword [sym.imp.ntdll.dll_RtlReportException]
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentProcess]
mov rcx, rax
or edx, 0xffffffff
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_TerminateProcess]
mov rbx, qword [rsp + 0x5b8]
add rsp, 0x5a0
pop rbp
ret

Function at 0x1400018d8
Capabilities:
Query or enumerate registry value

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x40
xor edi, edi
mov dword [rbp + 0x38], 4
mov rbx, rcx
mov qword [rbp - 0x10], rdi
lea rax, [rbp - 0x10]
mov dword [rbp + 0x30], edi
mov rcx, 0xffffffff80000002
mov dword [rbp + 0x28], edi
mov r9d, 0x20119
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftMSDTC
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegOpenKeyExA]
test eax, eax
je 0x14000192a
mov eax, edi
jmp 0x14000195e
mov rcx, qword [rbp - 0x10]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x30]
lea rax, [rbp + 0x28]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExA]
test eax, eax
jne 0x140001926
cmp dword [rbp + 0x30], 4
mov eax, dword [rbp + 0x28]
cmovne eax, edi
mov dword [rbp + 0x28], eax
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140001973
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov eax, dword [rbp + 0x28]
add rsp, 0x40
pop rdi
pop rbx
pop rbp
ret
Function at 0x140002a1c
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], r14
mov rax, qword [0x14000d008]
xor rax, rbp
mov qword [rbp + 0x18], rax
mov rcx, qword [rbp + 0x50]
xor r14d, r14d
mov rdi, r8
mov word [r8], r14w
lea r8, str.not_loaded
lea edx, [r14 + 0x32]
call fcn.1400012f8
mov rsi, qword [rbp + 0x60]
lea rcx, str.comsvcs.dll
mov word [rsi], r14w
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x140002beb
xor r9d, r9d
lea edx, [r14 + 0x10]
lea r8d, [r14 + 1]
mov rcx, rax
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FindResourceExW]
test rax, rax
je 0x140002beb
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_LoadResource]
test rax, rax
je 0x140002beb
mov rcx, rax
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_LockResource]
mov r9, rax
test rax, rax
je 0x140002beb
movzx r8d, word [rax]
mov ecx, r8d
shr ecx, 1
add ecx, r8d
movsxd rdx, ecx
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x140002aed
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1400073c0
sub rsp, rax
mov rdx, r9
lea rbx, [rsp + 0x40]
mov rcx, rbx
call sub.msvcrt.dll_memcpy
lea r9, [rbp]
mov rcx, rbx
lea r8, [rbp + 0x10]
lea rdx, str.VarFileInfoTranslation
call qword [sym.imp.api_ms_win_core_version_l1_1_0.dll_VerQueryValueW]
test eax, eax
je 0x140002b63
mov rax, qword [rbp + 0x10]
lea r9, [0x140009a80]
mov ecx, r14d
movzx edx, word [rax]
mov rax, r9
cmp dx, word [rax]
je 0x140002b4b
inc ecx
add rax, 0x10
cmp ecx, 0x27
jb 0x140002b39
jmp 0x140002b63
mov r8d, ecx
mov edx, 5
add r8, r8
mov rcx, rdi
mov r8, qword [r9 + r8*8 + 8]
call fcn.1400012f8
lea r9, [rbp]
mov rcx, rbx
lea r8, [rbp + 8]
lea rdx, [0x140008748]
call qword [sym.imp.api_ms_win_core_version_l1_1_0.dll_VerQueryValueW]
test eax, eax
je 0x140002beb
mov r10, qword [rbp + 8]
mov r9d, dword [r10 + 8]
cmp r9d, 0xffffffff
je 0x140002bc6
movzx r8d, word [r10 + 0xe]
mov edx, 0x32
movzx eax, word [r10 + 0xc]
mov rcx, qword [rbp + 0x50]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r8d
lea r8, str._u._u._u._u
movzx r10d, r9w
shr r9d, 0x10
mov dword [rsp + 0x20], r10d
call fcn.140001658
mov r10, qword [rbp + 8]
mov eax, dword [r10 + 0x1c]
lea rcx, [0x140009580]
and al, 1
lea r8, [0x140009588]
mov edx, 5
cmovne r8, rcx
mov rcx, rsi
call fcn.1400012f8
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.140006900
mov rbx, qword [rbp + 0x30]
mov rsi, qword [rbp + 0x38]
mov rdi, qword [rbp + 0x40]
mov r14, qword [rbp + 0x48]
lea rsp, [rbp + 0x20]
pop rbp
ret
Function at 0x140002cd8
Capabilities:
Access the windows event log

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], r9
push rdi
push r12
push r14
sub rsp, 0x50
mov eax, edx
mov r12d, 1
shr eax, 0x1e
mov ebp, edx
movzx esi, cx
cmp eax, r12d
jbe 0x140002d22
lea edi, [r12 + 1]
cmp eax, edi
je 0x140002d27
cmp eax, 3
jne 0x140002d1d
movzx edi, r12w
jmp 0x140002d27
mov edi, r12d
jmp 0x140002d27
mov edi, 4
mov rbx, qword [0x14000f698]
test rbx, rbx
je 0x140002dc1
and qword [rsp + 0x88], 0
mov rcx, rbx
call qword [0x1400084d0]
lea rcx, [rsp + 0x88]
call rbx
test eax, eax
js 0x140002dc1
mov r14, qword [rsp + 0x88]
test r14, r14
je 0x140002dc1
mov rax, qword [r14]
movzx ebx, si
movzx edi, di
mov rsi, qword [rax + 0x18]
mov rcx, rsi
call qword [0x1400084d0]
and qword [rsp + 0x40], 0
mov r9d, ebp
mov rax, qword [rsp + 0x98]
mov r8d, ebx
mov qword [rsp + 0x38], rax
mov edx, edi
and dword [rsp + 0x30], 0
mov rcx, r14
mov dword [rsp + 0x28], r12d
and qword [rsp + 0x20], 0
call rsi
mov rax, qword [r14]
mov rbx, qword [rax + 0x10]
mov rcx, rbx
call qword [0x1400084d0]
mov rcx, r14
call rbx
jmp 0x140002e18
lea rdx, str.COM
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov rbx, rax
test rax, rax
je 0x140002e18
and qword [rsp + 0x40], 0
mov r9d, ebp
mov rcx, qword [rsp + 0x98]
movzx r8d, si
mov qword [rsp + 0x38], rcx
movzx edx, di
and dword [rsp + 0x30], 0
mov rcx, rax
mov word [rsp + 0x28], r12w
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_ReportEventW]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop r12
pop rdi
ret