joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140033350
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp + 0x37], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rdi, rdx
mov rbx, rcx
cmp byte [rcx + 0x14], 0
je 0x140033385
mov al, 1
jmp 0x140033530
lea r14, vtable.LogItem.0
mov qword [rbp - 0x19], r14
mov qword [rbp + 7], 7
xor esi, esi
mov qword [rbp - 1], rsi
mov word [rbp - 0x11], si
mov qword [rbp + 0x27], 7
mov qword [rbp + 0x1f], rsi
mov word [rbp + 0xf], si
mov dword [rbp + 0x2f], 1
mov dword [rbp + 0x33], 1
lea rdx, str._DBG___N_A_
lea rcx, [rbp - 0x19]
call fcn.140028450
mov rcx, rax
lea rdx, str.Initialization_of_TPM_communication_channel_procedure
call fcn.140028450
nop
lea rcx, [rbp - 0x19]
call fcn.140027f10
mov ecx, 0x1090
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [0x1400bbbd0], rax
test rax, rax
jne 0x14003340a
lea ecx, [rsi + 1]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
mov rdx, rax
mov rcx, rdi
call fcn.14002e750
mov edi, eax
test eax, eax
je 0x140033434
mov rcx, qword [0x1400bbbd0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, rsi
mov qword [0x1400bbbd0], rax
jmp 0x14003343d
mov rax, qword [0x1400bbbd0]
mov edi, esi
mov dword [rbp - 0x29], edi
test edi, edi
je 0x1400334b3
mov qword [rbp - 0x19], r14
mov qword [rbp + 7], 7
mov qword [rbp - 1], rsi
mov word [rbp - 0x11], si
mov qword [rbp + 0x27], 7
mov qword [rbp + 0x1f], rsi
mov word [rbp + 0xf], si
mov dword [rbp + 0x2f], 1
mov dword [rbp + 0x33], 1
lea rdx, str._DBG___N_A_
lea rcx, [rbp - 0x19]
call fcn.140028450
mov rcx, rax
lea rdx, str.TSS2_error:
call fcn.140028450
mov rcx, rax
lea rdx, [rbp - 0x29]
call fcn.1400326e0
nop
lea rcx, [rbp - 0x19]
call fcn.140027f10
mov byte [rbx + 0x14], 0
xor al, al
jmp 0x140033530
mov rdx, rax
call fcn.1400332d0
mov qword [0x1400bbbd8], rax
test rax, rax
jne 0x140033528
mov qword [rbp - 0x19], r14
mov qword [rbp + 7], 7
mov qword [rbp - 1], rsi
mov word [rbp - 0x11], si
mov qword [rbp + 0x27], 7
mov qword [rbp + 0x1f], rsi
mov word [rbp + 0xf], si
mov dword [rbp + 0x2f], 1
mov dword [rbp + 0x33], 3
lea rdx, str._ERR___N_A_
lea rcx, [rbp - 0x19]
call fcn.140028450
mov rcx, rax
lea rdx, str.TSS2_initialization_of_SysContext_failed
call fcn.140028450
nop
lea rcx, [rbp - 0x19]
call fcn.140027f10
mov byte [rbx + 0x14], 0
jmp 0x14003352c
mov byte [rbx + 0x14], 1
movzx eax, byte [rbx + 0x14]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x14003dd50
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x48]
sub rsp, 0x140
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov rbx, rcx
mov rcx, qword [rcx + 0x20]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
lea rax, [rbx + 0x2c]
mov qword [rsp + 0x28], rax
xor esi, esi
mov dword [rsp + 0x20], esi
mov r9, rbx
lea r8, [0x14003df20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 8], rax
test rax, rax
jne 0x14003deec
mov qword [rsp + 0x38], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
mov qword [rbp - 0x38], 0xf
mov qword [rbp - 0x40], rsi
mov byte [rbp - 0x50], sil
lea r8d, [rsi + 0xd]
lea rdx, str.Thread::Start
lea rcx, [rbp - 0x50]
call fcn.140025550
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x30]
call fcn.1400318d0
lea rdi, vtable.Exception.0
mov qword [rbp - 0x30], rdi
lea rdx, str.CreateThreadfailed__error
lea rcx, [rbp - 0x30]
call fcn.14003e470
mov rcx, rax
lea rdx, [rsp + 0x30]
call fcn.14003e700
mov rcx, rax
call fcn.14003e9a0
mov rcx, rax
call fcn.14003e5c0
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.14003e850
mov rbx, rax
lea rax, vtable.std::exception.0
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x58]
call qword [sym.imp.VCRUNTIME140.dll___std_exception_copy]
nop
lea rax, vtable.BaseException.0
mov qword [rsp + 0x50], rax
lea rdx, [rbx + 0x18]
mov qword [rbp - 0x80], 0xf
mov qword [rsp + 0x78], rsi
mov byte [rsp + 0x68], sil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x68]
call fcn.140025680
nop
lea rax, vtable.ExceptionStream_class_Exception__class_BaseException_.0
mov qword [rsp + 0x50], rax
lea rdx, [rbx + 0x38]
mov qword [rbp - 0x60], 0xf
mov qword [rbp - 0x68], rsi
mov byte [rbp - 0x78], sil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x78]
call fcn.140025680
nop
mov qword [rsp + 0x50], rdi
lea rdx, [0x1400b4498]
lea rcx, [rsp + 0x50]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov rcx, rbx
call fcn.14003e270
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.14005ad10
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret

Function at 0x140044120
Capabilities:
Identify system language via api

Disassembly:
sub rsp, 0x28
cmp byte [0x1400b9ba3], 0
je 0x140044138
mov eax, dword [0x1400bbbec]
add rsp, 0x28
ret
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx r8d, ax
mov edx, r8d
and edx, 0x3ff
sub edx, 7
je 0x14004419e
sub edx, 3
je 0x14004417a
sub edx, 0xb
je 0x140044170
cmp edx, 1
je 0x140044166
xor eax, eax
add rsp, 0x28
ret
mov eax, 2
add rsp, 0x28
ret
mov eax, 5
add rsp, 0x28
ret
mov eax, 0xfc00
mov ecx, 0x800
and r8w, ax
mov edx, 1
cmp r8w, cx
mov eax, 3
cmovne eax, edx
add rsp, 0x28
ret
mov eax, 4
add rsp, 0x28
ret
Function at 0x140049a50
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x390], rbx
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rbp + 0x250], rax
mov r10, rdx
mov rsi, rcx
xor ebx, ebx
mov dword [rsp + 0x28], ebx
lea rdi, [rbp + 0x40]
xor eax, eax
mov ecx, 0x208
rep stosb byte [rdi], al
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
mov rcx, r10
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jns 0x140049b7c
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rcx, [rbp - 0x20]
call fcn.140030200
nop
mov rcx, rax
call fcn.14004a1d0
mov rdi, rax
lea rax, vtable.std::exception.0
mov qword [rbp - 0x80], rax
xor eax, eax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
lea rcx, [rdi + 8]
lea rdx, [rbp - 0x78]
call qword [sym.imp.VCRUNTIME140.dll___std_exception_copy]
nop
lea rax, vtable.BaseException.0
mov qword [rbp - 0x80], rax
lea rdx, [rdi + 0x18]
mov qword [rbp - 0x50], 0xf
mov qword [rbp - 0x58], rbx
mov byte [rbp - 0x68], bl
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x68]
call fcn.140025680
nop
lea rax, vtable.ExceptionStream_class_Exception__class_BaseException_.0
mov qword [rbp - 0x80], rax
lea rdx, [rdi + 0x38]
mov qword [rbp - 0x30], 0xf
mov qword [rbp - 0x38], rbx
mov byte [rbp - 0x48], bl
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x48]
call fcn.140025680
nop
lea rax, vtable.Exception.0
mov qword [rbp - 0x80], rax
lea rdx, [0x1400b4498]
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], rbx
mov word [rsp + 0x60], bx
mov rdx, qword [rsp + 0x20]
cmp word [rdx], bx
jne 0x140049b9e
mov r8, rbx
jmp 0x140049bac
or r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], bx
jne 0x140049ba2
lea rcx, [rsp + 0x60]
call fcn.14002c600
nop
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], rbx
mov word [rsp + 0x30], bx
cmp word [rbp + 0x40], 0
je 0x140049c0a
lea rax, [rbp + 0x40]
or rbx, 0xffffffffffffffff
nop
inc rbx
cmp word [rax + rbx*2], 0
jne 0x140049c00
mov r8, rbx
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.14002c600
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.14002ed10
nop
mov r8, qword [rsp + 0x78]
cmp r8, 8
jb 0x140049c41
inc r8
mov rdx, qword [rsp + 0x60]
call fcn.14002cf50
mov rax, rsi
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.14005ad10
mov rbx, qword [rsp + 0x390]
add rsp, 0x360
pop rdi
pop rsi
pop rbp
ret
Function at 0x140054c60
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x58]
sub rsp, 0x150
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov rbx, rcx
call fcn.140054ab0
cmp qword [rbx + 0x20], 8
jb 0x140054ca3
mov rcx, qword [rbx + 8]
jmp 0x140054ca7
lea rcx, [rbx + 8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140054de7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x40], 7
xor edi, edi
mov qword [rsp + 0x38], rdi
mov word [rsp + 0x28], di
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x28]
call fcn.14002c750
lea rdx, [rsp + 0x28]
lea rcx, [rbp - 0x40]
call fcn.14002ed10
mov rbx, rax
lea rcx, [rbp - 0x20]
call fcn.140030200
nop
lea rdx, str.Error_when_deleting_file:
mov rcx, rax
call fcn.14003e470
mov rcx, rax
mov rdx, rbx
call fcn.140051a50
mov rcx, rax
lea rdx, str.Last_error:
call fcn.14003e470
mov rcx, rax
lea rdx, [rsp + 0x20]
call fcn.14003e700
mov rbx, rax
lea rax, vtable.std::exception.0
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x68]
call qword [sym.imp.VCRUNTIME140.dll___std_exception_copy]
nop
lea rax, vtable.BaseException.0
mov qword [rsp + 0x60], rax
lea rdx, [rbx + 0x18]
mov qword [rbp - 0x70], 0xf
mov qword [rbp - 0x78], rdi
mov byte [rsp + 0x78], dil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x78]
call fcn.140025680
nop
lea rax, vtable.ExceptionStream_class_Exception__class_BaseException_.0
mov qword [rsp + 0x60], rax
lea rdx, [rbx + 0x38]
mov qword [rbp - 0x50], 0xf
mov qword [rbp - 0x58], rdi
mov byte [rbp - 0x68], dil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x68]
call fcn.140025680
nop
lea rax, vtable.Exception.0
mov qword [rsp + 0x60], rax
lea rdx, [0x1400b4498]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.14005ad10
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
Function at 0x140054e10
Capabilities:
Move file

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x1c0], rbx
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rdi, rdx
mov rbx, rcx
call fcn.140054ab0
cmp qword [rdi + 0x18], 8
jb 0x140054e5c
mov rdx, qword [rdi]
jmp 0x140054e5f
mov rdx, rdi
cmp qword [rbx + 0x20], 8
jb 0x140054e6c
mov rcx, qword [rbx + 8]
jmp 0x140054e70
lea rcx, [rbx + 8]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x140054fea
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x48], 7
xor esi, esi
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x30], si
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.14002c750
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x20]
call fcn.14002ed10
mov rdi, rax
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], rsi
mov word [rsp + 0x50], si
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x50]
call fcn.14002c750
lea rdx, [rsp + 0x50]
lea rcx, [rbp]
call fcn.14002ed10
mov rbx, rax
lea rcx, [rbp + 0x20]
call fcn.140030200
nop
mov rcx, rax
call fcn.1400559e0
mov rcx, rax
mov rdx, rbx
call fcn.140051a50
mov rcx, rax
call fcn.140055b20
mov rcx, rax
mov rdx, rdi
call fcn.140051a50
mov rcx, rax
lea rdx, str.Last_error:
call fcn.14003e470
mov rcx, rax
lea rdx, [rsp + 0x20]
call fcn.14003e700
mov rbx, rax
lea rax, vtable.std::exception.0
mov qword [rbp - 0x80], rax
xor eax, eax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
lea rcx, [rbx + 8]
lea rdx, [rbp - 0x78]
call qword [sym.imp.VCRUNTIME140.dll___std_exception_copy]
nop
lea rax, vtable.BaseException.0
mov qword [rbp - 0x80], rax
lea rdx, [rbx + 0x18]
mov qword [rbp - 0x50], 0xf
mov qword [rbp - 0x58], rsi
mov byte [rbp - 0x68], sil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x68]
call fcn.140025680
nop
lea rax, vtable.ExceptionStream_class_Exception__class_BaseException_.0
mov qword [rbp - 0x80], rax
lea rdx, [rbx + 0x38]
mov qword [rbp - 0x30], 0xf
mov qword [rbp - 0x38], rsi
mov byte [rbp - 0x48], sil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x48]
call fcn.140025680
nop
lea rax, vtable.Exception.0
mov qword [rbp - 0x80], rax
lea rdx, [0x1400b4498]
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.14005ad10
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x190
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400551c0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov dword [rsp + 0x38], r8d
xor r14d, r14d
mov dword [rsp + 0x30], r14d
test rdx, rdx
je 0x140055381
mov edx, 0xc0000000
lea r9d, [r14 + 2]
call fcn.1400547b0
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x34]
mov r8d, esi
mov rdx, rdi
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14005540b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
lea rdx, [rbx + 8]
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r14
mov word [rsp + 0x50], r14w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x50]
call fcn.14002c750
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x30]
call fcn.14002ed10
mov rbx, rax
lea rcx, [rbp + 0x10]
call fcn.140030200
nop
mov rcx, rax
call fcn.140055c60
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.140055750
mov rcx, rax
lea rdx, str._bytes_to_file
call fcn.14003e470
mov rcx, rax
mov rdx, rbx
call fcn.140051a50
mov rcx, rax
lea rdx, str.Last_error:
call fcn.14003e470
mov rcx, rax
lea rdx, [rsp + 0x30]
call fcn.14003e700
mov rbx, rax
lea rax, vtable.std::exception.0
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x78]
call qword [sym.imp.VCRUNTIME140.dll___std_exception_copy]
nop
lea rax, vtable.BaseException.0
mov qword [rsp + 0x70], rax
lea rdx, [rbx + 0x18]
mov qword [rbp - 0x60], 0xf
mov qword [rbp - 0x68], r14
mov byte [rbp - 0x78], r14b
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x78]
call fcn.140025680
nop
lea rax, vtable.ExceptionStream_class_Exception__class_BaseException_.0
mov qword [rsp + 0x70], rax
lea rdx, [rbx + 0x38]
mov qword [rbp - 0x40], 0xf
mov qword [rbp - 0x48], r14
mov byte [rbp - 0x58], r14b
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x58]
call fcn.140025680
nop
lea rax, vtable.Exception.0
mov qword [rsp + 0x70], rax
lea rdx, [0x1400b4498]
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x50], r14b
mov r8d, 0x13
lea rdx, str.Invalid_data_passed
lea rcx, [rsp + 0x50]
call fcn.140025550
nop
mov dword [rsp + 0x30], 1
xor eax, eax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rax, vtable.BaseException.0
mov qword [rbp - 0x30], rax
mov qword [rbp], 0xf
mov qword [rbp - 8], r14
mov byte [rbp - 0x18], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x18]
call fcn.140025680
nop
lea rax, vtable.AssertException.0
mov qword [rbp - 0x30], rax
lea rdx, [0x1400b45c0]
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14005ad10
add rsp, 0x180
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x1400574b0
Capabilities:
Print debug messages

Disassembly:
sub rsp, 0x58
mov rax, qword [0x1400b8518]
xor rax, rsp
mov qword [rsp + 0x40], rax
lea r8, [0x1400a32d8]
lea rcx, [rsp + 0x20]
call fcn.14003ff40
cmp qword [rsp + 0x38], 8
lea rcx, [rsp + 0x20]
cmovae rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r8, qword [rsp + 0x38]
cmp r8, 8
jb 0x140057503
mov rdx, qword [rsp + 0x20]
inc r8
call fcn.14002cf50
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14005ad10
add rsp, 0x58
ret

Function at 0x14005af94
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
sub rsp, 0x18
mov r8, rcx
mov eax, 0x5a4d
cmp word [0x140000000], ax
jne 0x14005b025
movsxd rax, dword [0x14000003c]
lea rdx, [0x140000000]
lea rcx, [rax + rdx]
cmp dword [rcx], 0x4550
jne 0x14005b025
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14005b025
sub r8, rdx
movzx eax, word [rcx + 0x14]
lea rdx, [rcx + 0x18]
add rdx, rax
movzx eax, word [rcx + 6]
lea rcx, [rax + rax*4]
lea r9, [rdx + rcx*8]
mov qword [rsp], rdx
cmp rdx, r9
je 0x14005b009
mov ecx, dword [rdx + 0xc]
cmp r8, rcx
jb 0x14005b003
mov eax, dword [rdx + 8]
add eax, ecx
cmp r8, rax
jb 0x14005b00b
add rdx, 0x28
jmp 0x14005afe8
xor edx, edx
test rdx, rdx
jne 0x14005b014
xor al, al
jmp 0x14005b02b
test dword [rdx + 0x24], 0x80000000
je 0x14005b021
xor al, al
jmp 0x14005b02b
mov al, 1
jmp 0x14005b02b
xor al, al
jmp 0x14005b02b
add rsp, 0x18
ret
Function at 0x140086590
Capabilities:
Terminate process

Disassembly:
cmp byte [rdi], bl
loopne 0x1400549e1
and esi, dword [rbx - 0x6af2dcdc]
push rax
pop rax
xchg edx, eax
xchg ecx, eax
fldenv [rax + rcx]
stc
invalid
cld
pop r11
jmp 0x14008659d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x1400865ad
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x140086595
lea eax, [rcx + 1]
jmp 0x1400865bb
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x1400865ce
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x1400865b4
sub eax, 3
jb 0x1400865ee
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x14008663d
sar eax, 1
movsxd rbp, eax
jb 0x140086624
jmp 0x1400865fc
add ebx, ebx
jne 0x1400865fa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x140086624
inc ecx
add ebx, ebx
jne 0x14008660a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x140086624
call r11
adc ecx, ecx
add ebx, ebx
jne 0x14008661d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x14008660c
add ecx, 2
jmp 0x140086629
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.140086552
jmp 0x14008659d
pop rsi
pop rdi
pop rax
mov dword [rdi], eax
sub rsp, 0x28
lea rdi, [rsi + 0x84000]
mov eax, dword [rdi]
or eax, eax
je 0x14008669d
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x875b8]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x14008664d
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x140086697
mov qword [rbx], rax
add rbx, 8
jmp 0x14008666d
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x1400866d7
cmp al, 0xef
ja 0x1400866c9
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x1400866a9
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x1400866b8
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x21f]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
mov byte [fcn.140086756], 0xfc
lea rcx, [rsi - 0x1000]
push 1
pop rdx
xor r8, r8
push rax
call fcn.140086756
pop rax
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x140086746
sub rsp, 0xffffffffffffff80
jmp 0x1400549d0
Function at 0x140039ec0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, r8d
mov r10, rdx
not r11d
mov r9, rcx
mov eax, r11d
test rdx, rdx
je 0x140039f1d
lea rbx, [0x1400f3630]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x140039f04
cmp r10, 2
jb 0x140039f04
cmp byte [r9], r8b
jne 0x140039f04
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
xor rdx, r8
shr eax, 8
xor eax, dword [rbx + rdx*4]
test r10, r10
jne 0x140039ee0
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x140039f5f
lea rbx, [0x1400f3630]
cmp r8b, 0x23
jne 0x140039f43
cmp byte [r9], r8b
jne 0x140039f43
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
movzx ecx, r8b
movzx r8d, byte [r9]
xor rdx, rcx
shr eax, 8
inc r9
xor eax, dword [rbx + rdx*4]
test r8b, r8b
jne 0x140039f30
mov rbx, qword [rsp + 8]
not eax
ret

Function at 0x14003a120
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push r14
sub rsp, 0x20
xor r14d, r14d
mov rsi, r8
test r8, r8
je 0x14003a13e
mov qword [r8], r14
lea rdx, [0x1400f3140]
call fcn.140039f70
mov rbx, rax
test rax, rax
jne 0x14003a163
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov qword [rsp + 0x30], rbp
mov rcx, rbx
mov qword [rsp + 0x38], rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov ebp, eax
cmp eax, 0xffffffff
je 0x14003a28f
xor edx, edx
mov r8d, 2
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x14003a28f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x14003a28f
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x14003a28f
cmp rdi, 0xffffffffffffffff
je 0x14003a28f
mov rcx, rdi
call fcn.14003dfe0
mov rbp, rax
test rax, rax
je 0x14003a28f
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rbx
cmp rax, rdi
je 0x14003a27c
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov r8, qword [0x1401b9180]
test r8, r8
je 0x14003a271
movsx rdx, word [r8 + 0x60f0]
lea rcx, [r8 + 0x60f4]
mov r9d, dword [r8 + 0x3f58]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x14003a266
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60f0], cx
movsx rax, cx
lea rcx, [r8 + 0x60f4]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], r14d
inc word [rcx + 6]
inc dword [r8 + 0x60ec]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x14003a298
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test rsi, rsi
je 0x14003a28a
mov qword [rsi], rdi
mov rax, rbp
jmp 0x14003a29a
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rbp, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret