joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000213e
Capabilities:
Delete network filter via wfp api

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp + 0x10], rcx
mov qword [rbp - 0x10], 0
mov dword [rbp - 4], 0
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov r9d, 0
mov r8d, 0
mov edx, 0xffffffff
mov ecx, 0
call sym.FwpmEngineOpen0
mov dword [rbp - 4], eax
cmp dword [rbp - 4], 0
je 0x1400021af
mov eax, dword [rbp - 4]
mov edx, eax
lea rax, [0x1400064a0]
mov rcx, rax
call sym.printf
jmp 0x140002281
mov rax, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x10]
mov rcx, rax
call sym.FwpmFilterDeleteById0
mov dword [rbp - 4], eax
cmp dword [rbp - 4], 0
jne 0x1400021e0
mov rax, qword [rbp + 0x10]
mov rdx, rax
lea rax, str.Deleted_filter_id:__llu._n
mov rcx, rax
call sym.printf
jmp 0x140002216
cmp dword [rbp - 4], 0x80320003
jne 0x1400021fa
lea rax, str.____The_filter_does_not_exist.
mov rcx, rax
call sym.puts
jmp 0x140002216
mov edx, dword [rbp - 4]
mov rax, qword [rbp + 0x10]
mov r8d, edx
mov rdx, rax
lea rax, str.____Failed_to_delete_filter_id:__llu_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
mov rax, qword [str.Microsoft_Windows_WFP_Built_in_custom_provider.]
lea rdx, [rbp - 0x20]
mov rcx, rax
call sym.GetProviderGUIDByDescription
test eax, eax
je 0x140002274
mov rax, qword [rbp - 0x10]
lea rdx, [rbp - 0x20]
mov rcx, rax
call sym.FwpmProviderDeleteByKey0
mov dword [rbp - 4], eax
cmp dword [rbp - 4], 0
je 0x140002265
cmp dword [rbp - 4], 0x8032000a
je 0x140002274
mov eax, dword [rbp - 4]
mov edx, eax
lea rax, str.____FwpmProviderDeleteByKey0_failed_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
jmp 0x140002274
lea rax, str.Deleted_custom_WFP_provider.
mov rcx, rax
call sym.puts
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.FwpmEngineClose0
nop
add rsp, 0x50
pop rbp
ret
Function at 0x1400028de
Capabilities:
Acquire debug privileges

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 8], 0
pxor xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentThread]
call rax
lea rdx, [rbp - 8]
mov r9, rdx
mov r8d, 1
mov edx, 0x28
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_OpenThreadToken]
call rax
test eax, eax
jne 0x14000299e
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0x3f0
je 0x140002955
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____OpenThreadToken_failed_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
mov eax, 0
jmp 0x140002abb
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
lea rdx, [rbp - 8]
mov r8, rdx
mov edx, 0x28
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
call rax
test eax, eax
jne 0x14000299e
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____OpenProcessToken_failed_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
mov eax, 0
jmp 0x140002abb
lea rax, [rbp - 0x20]
add rax, 4
mov r8, rax
lea rax, str.SeDebugPrivilege
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
call rax
test eax, eax
jne 0x1400029f9
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____LookupPrivilegeValueA_failed_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
mov rax, qword [rbp - 8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0
jmp 0x140002abb
mov dword [rbp - 0x20], 1
mov dword [rbp - 0x14], 2
mov rax, qword [rbp - 8]
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0x10
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call rax
test eax, eax
jne 0x140002a70
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____AdjustTokenPrivileges_failed_with_error_code:_0x_x._n
mov rcx, rax
call sym.printf
mov rax, qword [rbp - 8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0
jmp 0x140002abb
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0x514
jne 0x140002aa6
lea rax, str.____Failed_to_get_SeDebugPrivilege._You_might_not_be_able_to_get_the_process_handle_of_the_EDR_process.
mov rcx, rax
call sym.puts
mov rax, qword [rbp - 8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0
jmp 0x140002abb
mov rax, qword [rbp - 8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 1
add rsp, 0x50
pop rbp
ret
Function at 0x140002bdb
Capabilities:
Get disk information

Disassembly:
push rbp
push rbx
sub rsp, 0x268
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x200], rcx
mov qword [rbp + 0x208], rdx
mov qword [rbp + 0x210], r8
cmp qword [rbp + 0x200], 0
je 0x140002c15
cmp qword [rbp + 0x208], 0
jne 0x140002c1f
mov eax, 3
jmp 0x140002d2d
lea rdx, [rbp + 0x1c0]
mov rax, qword [rbp + 0x200]
mov r8d, 0xa
mov rcx, rax
call sym.GetDriveName
test eax, eax
jne 0x140002c49
mov eax, 4
jmp 0x140002d2d
lea rdx, [rbp - 0x50]
lea rax, [rbp + 0x1c0]
mov r8d, 0x104
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
call rax
test eax, eax
jne 0x140002c74
mov eax, 5
jmp 0x140002d2d
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.wcslen
lea rdx, [rax + rax]
mov rax, qword [rbp + 0x200]
lea rcx, [rdx + rax]
lea r8, [rbp - 0x50]
mov rdx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x208]
mov qword [rsp + 0x20], rcx
mov r9, r8
lea r8, str._S_S
mov rcx, rax
call sym.swprintf
mov qword [rbp + 0x1d8], 0
jmp 0x140002d0b
mov rax, qword [rbp + 0x1d8]
lea rdx, [rax + rax]
mov rax, qword [rbp + 0x208]
add rax, rdx
movzx eax, word [rax]
movzx eax, ax
mov rdx, qword [rbp + 0x1d8]
lea rcx, [rdx + rdx]
mov rdx, qword [rbp + 0x208]
lea rbx, [rcx + rdx]
mov ecx, eax
call sym.towlower
mov word [rbx], ax
add qword [rbp + 0x1d8], 1
mov rax, qword [rbp + 0x1d8]
lea rdx, [rax + rax]
mov rax, qword [rbp + 0x208]
add rax, rdx
movzx eax, word [rax]
test ax, ax
jne 0x140002cc8
mov eax, 0
add rsp, 0x268
pop rbx
pop rbp
ret

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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov qword [rbp + 0x10], rcx
cmp qword [rbp + 0x10], 0
jne 0x140002d51
mov eax, 0
jmp 0x140002d76
mov rax, qword [rbp + 0x10]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
call rax
mov dword [rbp - 4], eax
cmp dword [rbp - 4], 0xffffffff
jne 0x140002d71
mov eax, 0
jmp 0x140002d76
mov eax, 1
add rsp, 0x30
pop rbp
ret

Function at 0x140003920
Capabilities:
Get thread local storage value

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
lea rdi, [0x14000a220]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x14000a200]
test rbx, rbx
je 0x14000396c
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rsi, rsi
je 0x140003966
test eax, eax
jne 0x140003966
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
jmp 0x14000393e
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x140003b20
Capabilities:
Parse pe header

Disassembly:
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x140003b43
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
jne 0x140003b43
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret
Function at 0x140003b44
Capabilities:
Enumerate pe sections

Disassembly:
xor r8d, r8d
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r9d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
cmp r8d, r9d
jae 0x140003b7e
mov r10d, dword [rax + 0xc]
mov rcx, r10
cmp rdx, r10
jb 0x140003b75
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x140003b80
inc r8d
add rax, 0x28
jmp 0x140003b5c
xor eax, eax
ret

Function at 0x140003bf1
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r9, qword [0x140007940]
mov r8, rcx
mov rcx, r9
call sym._ValidateImageBase
test eax, eax
je 0x140003c1d
mov rdx, r8
mov rcx, r9
sub rdx, r9
add rsp, 0x28
jmp sym._FindPESection
xor eax, eax
add rsp, 0x28
ret
Function at 0x1400059b0
Capabilities:
Get common file path

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x478
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3f0], 0xfffffffffffffffe
mov qword [rbp + 0x3d0], rcx
mov qword [rbp + 0x3d8], 0
mov qword [rbp + 0x3e0], 2
mov qword [rbp + 0x3e8], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x3c8], rax
xor esi, esi
xor edi, edi
xor ebx, ebx
cmp r8, 0x201
jae 0x140005a50
jmp 0x140005a3f
jae 0x140005b0f
cmp r8, 0x201
jae 0x140005a50
mov r14d, 0x200
lea r15, [rbp - 0x58]
mov r12, r8
jmp 0x140005aa7
sub r8, rbx
sub rdi, rbx
cmp r8, rdi
jbe 0x140005a7f
lea rcx, [rbp + 0x3d8]
mov rdx, rbx
call fcn.140019220
mov rsi, qword [rbp + 0x3d8]
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x3c8], rax
mov eax, 0xffffffff
cmp rsi, rax
mov ebx, 0xffffffff
cmovb rbx, rsi
mov qword [rbp + 0x3e8], rbx
mov rdi, rsi
mov r14, rbx
mov r15, qword [rbp + 0x3c8]
mov r12, rbx
xor ecx, ecx
call qword [sym.imp.kernel32.dll_SetLastError]
mov ecx, r12d
mov rdx, r15
call qword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov r13d, eax
test eax, eax
jne 0x140005ad0
call qword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x140005b7b
mov r8d, r13d
cmp r12, r8
jne 0x140005a30
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140005baf
add r12, r12
mov eax, 0xffffffff
cmp r12, rax
cmovae r12, rax
mov r8, r12
cmp r8, 0x201
jb 0x140005a3f
jmp 0x140005a50
cmp r14, r8
jb 0x140005bc9
lea rcx, [rbp + 0x3a8]
mov rdx, r15
call fcn.140007020
movups xmm0, xmmword [rbp + 0x3a8]
movups xmm1, xmmword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3d0]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rdx, qword [rbp + 0x3d8]
test rdx, rdx
je 0x140005b64
mov rcx, qword [rbp + 0x3e0]
add rdx, rdx
mov r8d, 2
call fcn.140003a80
mov rax, rsi
add rsp, 0x478
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.kernel32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov rsi, qword [rbp + 0x3d0]
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rdx, qword [rbp + 0x3d8]
test rdx, rdx
jne 0x140005b4f
jmp 0x140005b64
lea rcx, str.internal_error:_entered_unreachable_code_rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrary_alloc_src_vecmod.rs
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.14001a130
jmp 0x140005bde
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.14001a4e0
ud2
Function at 0x14000ae80
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov rsi, rcx
movups xmm0, xmmword [0x14001e378]
movaps xmmword [rbp], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
test r9, r9
je 0x14000aeb8
mov rcx, qword [rbp + 0x60]
mov qword [rbp - 0x30], rcx
test r9, r9
mov qword [rbp - 0x38], r9
lea rcx, [rbp - 0x30]
cmove rcx, r9
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdx
mov rax, rbp
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0
mov rcx, rsi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ntdll.dll_NtWriteFile]
cmp eax, 0x103
jne 0x14000af16
mov rcx, rsi
mov edx, 0xffffffff
call qword [sym.imp.kernel32.dll_WaitForSingleObject]
mov eax, dword [rbp]
cmp eax, 0x103
je 0x14000af43
test eax, eax
js 0x14000af22
mov rdx, qword [rbp + 8]
xor eax, eax
jmp 0x14000af39
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0xa8
pop rsi
pop rbp
ret
mov dword [rbp + 0x18], 0
mov byte [rbp + 0x1c], 0
lea rax, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 1
lea rax, [rbp + 0x20]
mov qword [rbp - 0x28], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rcx, [rbp + 0x18]
lea rdx, [rbp - 0x38]
call fcn.140006e60
mov qword [rbp - 8], rax
lea rcx, [rbp - 8]
call fcn.1400041f0
mov ecx, 7
int 0x29
ud2
Function at 0x1400167b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
lea rbp, [rsp + 0x20]
test r8, r8
je 0x14001683a
mov rax, rdx
mov rdx, qword [rbp + 0x50]
mov esi, ecx
shr esi, 8
lea r8, [rax + r8*2]
xor r11d, r11d
mov rbx, rax
movzx edi, byte [rax + 1]
add rax, 2
lea r10, [r11 + rdi]
cmp byte [rbx], sil
jne 0x140016830
cmp r10, r11
jb 0x1400168b6
cmp r10, rdx
ja 0x1400168c8
add r11, r9
xor ebx, ebx
nop word cs:[rax + rax]
cmp rdi, rbx
je 0x140016832
lea r14, [rbx + 1]
cmp byte [r11 + rbx], cl
mov rbx, r14
jne 0x140016810
jmp 0x140016897
ja 0x14001683a
mov r11, r10
cmp rax, r8
jne 0x1400167d7
mov rdx, qword [rbp + 0x60]
test rdx, rdx
je 0x14001689b
mov r8, qword [rbp + 0x58]
add rdx, r8
movzx ecx, cx
mov al, 1
nop
lea r10, [r8 + 1]
movzx r9d, byte [r8]
test r9b, r9b
js 0x140016870
mov r8, r10
sub ecx, r9d
jns 0x14001688e
jmp 0x14001689d
cmp r10, rdx
je 0x1400168aa
movzx r10d, byte [r8 + 1]
add r8, 2
and r9d, 0x7f
shl r9d, 8
or r9d, r10d
sub ecx, r9d
js 0x14001689d
xor al, 1
cmp r8, rdx
jne 0x140016850
jmp 0x14001689d
xor eax, eax
jmp 0x14001689d
mov al, 1
and al, 1
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, str.librarycore_srcunicodeprintable.rs
call fcn.14001a010
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r11
mov rdx, r10
call fcn.14001a550
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r10
call fcn.14001a4e0
int3

Function at 0x140017e08
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.kernel32.dll_GetModuleHandleW]
test rax, rax
je 0x140017e52
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140017e52
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140017e52
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140017e52
cmp dword [rcx + 0x84], 0xe
jbe 0x140017e52
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140017e54
xor al, al
add rsp, 0x28
ret
Function at 0x140001d40
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov ecx, 2
call fcn.140002290
lea rcx, str.Mingw_w64_runtime_failure:_n
mov edx, 0x1b
mov r8d, 1
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call fcn.140002290
mov r8, qword [rsp + 0x28]
mov rcx, rax
mov rdx, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
int3

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

Disassembly:
mov rax, qword [0x14000d008]
movzx edx, word [rax]
cmp edx, 0x5a4d
jne 0x14000241c
movsxd rdx, dword [rax + 0x3c]
cmp dword [rax + rdx], 0x4550
jne 0x14000241c
add rax, rdx
movzx edx, word [rax + 0x18]
cmp edx, 0x20b
jne 0x14000241c
movzx edx, word [rax + 6]
test edx, edx
je 0x14000241c
sub rcx, qword [0x14000d008]
movzx r8d, word [rax + 0x14]
add rax, r8
add rax, 0x18
jmp 0x140002408
add rax, 0x28
dec edx
je 0x14000241c
mov r8d, dword [rax + 0xc]
cmp rcx, r8
jb 0x140002400
add r8d, dword [rax + 8]
cmp rcx, r8
jae 0x140002400
jmp 0x14000241e
xor eax, eax
ret

Function at 0x140002420
Capabilities:
Parse pe header

Disassembly:
mov rcx, qword [0x14000d008]
movzx edx, word [rcx]
xor eax, eax
cmp edx, 0x5a4d
jne 0x140002455
movsxd rdx, dword [rcx + 0x3c]
cmp dword [rcx + rdx], 0x4550
jne 0x140002455
movzx r8d, word [rcx + rdx + 0x18]
cmp r8d, 0x20b
jne 0x140002455
movzx eax, word [rcx + rdx + 6]
ret

Function at 0x1400024d0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x14000d008]
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x1400024fc
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x1400024fc
movzx ecx, word [rax + rcx + 0x18]
cmp ecx, 0x20b
je 0x1400024fe
xor eax, eax
ret
Function at 0x140003f4c
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
call fcn.140003b5c
add rsp, 0x28
jmp 0x140003f70
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r12
push r13
sub rsp, 0xb0
xor ebx, ebx
mov dword [rsp + 0x20], ebx
lea rcx, [rax - 0x78]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
nop
mov rax, qword gs:[0x30]
mov rdi, qword [rax + 8]
mov r12d, ebx
xor eax, eax
lock cmpxchg qword [0x14001d938], rdi
jne 0x140008848
mov eax, dword [0x14001d930]
cmp eax, 1
je 0x140008868
mov eax, dword [0x14001d930]
cmp eax, ebx
jne 0x14000887f
mov dword [0x14001d930], 1
lea r13, [0x140014218]
lea rdi, [0x140014200]
mov qword [rsp + 0x30], rdi
mov eax, ebx
mov dword [rsp + 0x24], ebx
cmp rdi, r13
jae 0x14000401c
cmp eax, ebx
jne 0x14000401c
mov rcx, qword [rdi]
cmp rcx, rbx
je 0x140004011
call rcx
mov dword [rsp + 0x24], eax
add rdi, 8
mov qword [rsp + 0x30], rdi
jmp 0x140003ffa
cmp eax, ebx
jne 0x140008875
mov eax, dword [0x14001d930]
cmp eax, 1
jne 0x14000404c
lea rdx, [0x1400141f8]
lea rcx, [0x1400141c0]
call fcn.140136000
mov dword [0x14001d930], 2
cmp r12d, ebx
jne 0x14000405b
mov rax, rbx
xchg qword [0x14001d938], rax
cmp qword [0x14001d950], rbx
jne 0x14000888e
mov rcx, qword [sym.imp.msvcrt.dll__wcmdln]
cmp qword [rcx], rbx
je 0x1400088b7
mov rcx, qword [rcx]
mov qword [rsp + 0x28], rcx
mov edx, dword [rsp + 0x20]
cmp word [rcx], 0x20
jbe 0x14000409f
cmp word [rcx], 0x22
je 0x140008912
add rcx, 2
mov qword [rsp + 0x28], rcx
jmp 0x140004084
cmp word [rcx], bx
jne 0x1400088c1
cmp word [rcx], bx
jne 0x1400088ce
test byte [rsp + 0x7c], 1
movzx eax, word [rsp + 0x80]
mov r9d, 0xa
cmovne r9d, eax
mov r8, rcx
xor edx, edx
lea rcx, [0x140000000]
call fcn.1400040e8
nop
jmp 0x1400088e6
cmp rax, rdi
jne 0x140008858
mov r12d, 1
jmp 0x140003fba
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140003fa9
lea ecx, [rax + 0x1e]
call sub.msvcrt.dll__amsg_exit
jmp 0x140004024
mov eax, 0xff
jmp 0x140008951
mov dword [0x14001db2c], 1
jmp 0x140004024
lea rcx, [0x14001d950]
call fcn.140011e1c
cmp eax, ebx
je 0x140004068
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
call qword [0x14001d950]
nop
jmp 0x140004068
mov eax, 0xff
jmp 0x140008951
cmp edx, ebx
je 0x1400040a8
jmp 0x14000408a
cmp word [rcx], 0x20
ja 0x1400040b1
add rcx, 2
mov qword [rsp + 0x28], rcx
jmp 0x1400040a8
mov dword [0x14001db28], eax
cmp dword [0x14001d30c], ebx
jne 0x1400088fc
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x14001db2c], ebx
jne 0x140008910
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x14001db28]
jmp 0x140008951
mov eax, ebx
cmp edx, ebx
sete al
mov edx, eax
mov dword [rsp + 0x20], eax
jmp 0x140004094
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov r12, qword [r11 + 0x20]
mov rsp, r11
pop r13
ret
Function at 0x144f7d058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x144f7d1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x144f7d089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x144f7d06f
add dl, dl
jne 0x144f7d096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x144f7d0f6
xor eax, eax
add dl, dl
jne 0x144f7d0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x144f7d1ad
add dl, dl
jne 0x144f7d0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x144f7d0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x144f7d0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x144f7d0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x144f7d0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x144f7d07e
mov eax, 1
add dl, dl
jne 0x144f7d106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x144f7d113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x144f7d0fb
sub eax, ebx
mov ebx, 1
jne 0x144f7d14c
mov ecx, 1
add dl, dl
jne 0x144f7d12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x144f7d13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x144f7d123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x144f7d07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x144f7d168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x144f7d175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x144f7d15d
cmp eax, 0x7d00
jae 0x144f7d19b
cmp eax, 0x500
jb 0x144f7d196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x144f7d07e
cmp eax, 0x7f
ja 0x144f7d19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x144f7d07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x144f7d1d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x144f7d07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x180006b70
Capabilities:
Access peb ldr_data
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rax, qword gs:[0x60]
mov ebx, edx
mov r14, rcx
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r8, qword [rax + 0x60]
mov r10d, 0xb672b799
movzx r9d, word [rax + 0x58]
shr r9, 1
lea r11, [r8 + r9*2]
cmp r8, r11
je 0x180006bf3
nop dword [rax + rax]
movsx ecx, byte [r8]
mov edx, ecx
sub cl, 0x41
mov r9d, edx
or r9d, 0x20
cmp cl, 0x19
cmova r9d, edx
add r8, 2
xor r9d, r10d
imul r10d, r9d, 0x1000193
cmp r8, r11
jne 0x180006bc0
cmp r10d, 0x71d71755
je 0x180006bf8
mov rax, qword [rax]
jmp 0x180006ba0
mov rdi, qword [rax + 0x30]
lea rcx, [rsp + 0x58]
mov edx, dword [r14 + 0x18]
mov eax, ebx
mov esi, ebx
add rdx, 0x10
and eax, 7
sar esi, 3
dec rax
movsxd rbp, esi
xor r15d, r15d
mov r8d, 4
mov dword [rsp + 0x58], r15d
lea rbx, [rax + rax*4]
shl rbx, 3
add rdx, rbx
add rdx, rdi
call fcn.1800c1fb0
mov eax, dword [rsp + 0x58]
cmp rbp, rax
jae 0x180006d24
mov edx, dword [r14 + 0x18]
lea rcx, [rsp + 0x50]
add rdx, rbx
mov qword [rsp + 0x50], r15
add rdx, rdi
mov r8d, 8
call fcn.1800c1fb0
movabs rax, 0x1ffffffffffffffc
mov dword [rsp + 0x58], r15d
mov rdx, rbp
lea rcx, [rsp + 0x58]
shr rdx, 3
mov r8d, 4
and rdx, rax
add rdx, qword [rsp + 0x50]
call fcn.1800c1fb0
mov eax, dword [rsp + 0x58]
and esi, 0x1f
bt eax, esi
jae 0x180006d24
mov edx, dword [r14 + 0x18]
lea rcx, [rsp + 0x50]
add rdx, 8
mov qword [rsp + 0x50], r15
add rdx, rbx
mov r8d, 8
add rdx, rdi
call fcn.1800c1fb0
mov rax, qword [rsp + 0x50]
lea rdx, [rax + rbp*8]
mov eax, dword [r14 + 0x18]
add rax, rbx
cmp byte [rax + rdi + 0x14], 1
jbe 0x180006d09
mov r8d, 8
mov qword [rsp + 0x60], r15
lea rcx, [rsp + 0x60]
call fcn.1800c1fb0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov r8d, 4
mov dword [rsp + 0x58], r15d
lea rcx, [rsp + 0x58]
call fcn.1800c1fb0
mov eax, dword [rsp + 0x58]
not eax
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
push rbx
sub rsp, 0x30
mov rbx, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
add rdx, 0x18
mov r8d, 0x10
movups xmmword [rsp + 0x20], xmm0
call fcn.1800c1fb0
mov eax, dword [rsp + 0x20]
mov rcx, rbx
mov r8d, eax
shl eax, 0x10
shr r8d, 0x10
or r8d, eax
mov edx, r8d
xor r8d, 0xefbd7154
not edx
shl r8d, 2
shr edx, 0x1e
or edx, r8d
add edx, 0x4878359f
add rsp, 0x30
pop rbx
jmp 0x180006b70