joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14008bcc4
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xc0
mov rdi, r9
mov esi, edx
mov rbx, rcx
cmp edx, 3
jb 0x14008be28
mov r11w, word [rcx]
lea r10, [0x1400c63fc]
cmp r11w, word [r10]
jne 0x14008bd06
mov r11b, byte [rcx + 2]
cmp r11b, byte [r10 + 2]
jne 0x14008bd06
xor eax, eax
jmp 0x14008bd0b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14008be28
test r8, r8
je 0x14008be1a
test r9, r9
je 0x14008be1a
lea rcx, str.__using_BCrypt_with_AES_256_GCM_n
call fcn.14000a838
xor edx, edx
lea rcx, [rsp + 0x60]
lea r8d, [rdx + 0x58]
call sub.msvcrt.dll_memset
lea eax, [rsi - 0x1f]
lea rcx, [rbx + 3]
mov qword [rsp + 0x68], rcx
lea rcx, [rsi + rcx - 0x13]
mov edx, eax
mov qword [rsp + 0x88], rcx
mov ecx, 0x40
mov dword [rsp + 0x60], reloc.WLDAP32.dll_Ordinal_88
mov dword [rsp + 0x64], 1
mov dword [rsp + 0x70], reloc.WLDAP32.dll_Ordinal_12
mov dword [rsp + 0x90], Ordinal_26
mov dword [rsp + 0xd8], eax
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x14008be9f
and dword [rsp + 0x48], 0
mov edx, dword [rsp + 0x70]
mov r8d, dword [rsp + 0xd8]
add rdx, qword [rsp + 0x68]
lea rax, [rsp + 0xd8]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r8d
mov qword [rsp + 0x30], rbx
and dword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
mov rcx, rdi
call sub.bcrypt.dll_BCryptDecrypt
test eax, eax
js 0x14008be07
mov r8d, dword [rsp + 0xd8]
mov rdx, qword [rsp + 0x100]
lea rcx, str._s:__.S_n
mov r9, rbx
call fcn.14000a838
jmp 0x14008be15
lea rcx, str.ERROR_kuhl_m_dpapi_chrome_decrypt___BCryptDecrypt:_0x_08x_n
mov edx, eax
call fcn.14000a838
mov rcx, rbx
jmp 0x14008be99
lea rcx, str.ERROR_kuhl_m_dpapi_chrome_decrypt___No_Alg_and_or_Key_handle_despite_AES_encryption_n
call fcn.14000a838
jmp 0x14008be9f
and qword [rsp + 0x48], 0
mov r9d, dword [rsp + 0xf0]
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xf8]
and dword [rsp + 0x30], 0
and qword [rsp + 0x28], 0
mov edx, esi
mov qword [rsp + 0x20], rax
call fcn.140089e4c
test eax, eax
je 0x14008be9f
mov r9, qword [rsp + 0x50]
mov r8d, dword [rsp + 0xd8]
mov rdx, qword [rsp + 0x100]
lea rcx, str._s:__.S_n
call fcn.14000a838
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x14008e1ec
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x20], r9
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
sub rsp, 0x60
mov rbp, rdx
mov esi, ecx
call fcn.14008e46c
mov r11, qword [rbp]
lea r8, [rsp + 0x40]
lea rdx, str.server
mov rcx, rbp
call qword [r11 + pe_nt_image_headers64]
test eax, eax
jne 0x14008e33a
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14008e33a
mov rax, qword [rcx]
lea rdx, [rsp + 0x20]
call qword [rax + 0x40]
test eax, eax
jne 0x14008e33a
xor ebx, ebx
cmp dword [rsp + 0x20], ebx
jle 0x14008e33a
mov rbp, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x40]
lea r8, [rsp + 0x28]
mov edx, ebx
mov rax, qword [rcx]
call qword [rax + 0x38]
test eax, eax
jne 0x14008e326
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14008e326
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
call qword [rax + 0x50]
test eax, eax
jne 0x14008e31b
cmp dword [rsp + 0x38], 1
jne 0x14008e31b
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x50]
lea rdx, str.properties
mov rax, qword [rcx]
call qword [rax + Ordinal_301]
test eax, eax
jne 0x14008e303
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14008e303
lea rdx, str.name
call fcn.140012890
mov rdi, rax
test rax, rax
je 0x14008e303
lea edx, [rsi + rsi]
lea r8, [0x1400d296c]
lea rcx, str._s__s_n
mov r9, rax
call fcn.14000a838
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rsp + 0x28]
lea ecx, [rsi + 1]
mov r9, rbp
call fcn.14008e46c
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x10]
inc ebx
cmp ebx, dword [rsp + 0x20]
jl 0x14008e267
mov rbp, qword [rsp + 0x88]
mov rax, qword [rbp]
lea r8, [rsp + 0x48]
lea rdx, str.group
mov rcx, rbp
call qword [rax + pe_nt_image_headers64]
test eax, eax
jne 0x14008e45c
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14008e45c
mov rax, qword [rcx]
lea rdx, [rsp + 0x24]
call qword [rax + 0x40]
test eax, eax
jne 0x14008e45c
xor ebx, ebx
cmp dword [rsp + 0x24], ebx
jle 0x14008e45c
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x30]
mov edx, ebx
mov rax, qword [rcx]
call qword [rax + 0x38]
test eax, eax
jne 0x14008e450
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14008e450
mov rax, qword [rcx]
lea rdx, [rsp + 0x3c]
call qword [rax + 0x50]
test eax, eax
jne 0x14008e445
cmp dword [rsp + 0x3c], 1
jne 0x14008e445
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x58]
lea rdx, str.properties
mov rax, qword [rcx]
call qword [rax + Ordinal_301]
test eax, eax
jne 0x14008e428
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14008e428
lea rdx, str.name
call fcn.140012890
mov rdi, rax
test rax, rax
je 0x14008e428
lea edx, [rsi + rsi]
lea r8, [0x1400d296c]
lea rcx, str._s__s__n
mov r9, rax
call fcn.14000a838
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r9, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rsp + 0x30]
lea ecx, [rsi + 1]
call fcn.14008e1ec
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x10]
inc ebx
cmp ebx, dword [rsp + 0x24]
jl 0x14008e388
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
Function at 0x14009819c
Capabilities:
Encode data using base64 via winapi

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
xor ebx, ebx
lea rax, [r11 + 0x18]
mov rbp, rdx
mov dword [rsp + 0x38], ebx
mov qword [r11 - 0x38], rax
lea r8, str.PKCS8_PRIVATEKEY
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x28], ebx
mov qword [r11 - 0x48], rbx
mov rsi, rcx
call sub.ncrypt.dll_NCryptExportKey
cmp eax, ebx
jne 0x140098306
mov edx, dword [rsp + 0x80]
lea ecx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
cmp rax, rbx
je 0x140098314
lea rax, [rsp + 0x80]
mov dword [rsp + 0x38], ebx
lea r8, str.PKCS8_PRIVATEKEY
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x80]
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor edx, edx
mov rcx, rsi
mov qword [rsp + 0x20], rdi
call sub.ncrypt.dll_NCryptExportKey
cmp eax, ebx
jne 0x1400982ed
mov esi, dword [rsp + 0x80]
lea rax, [rsp + 0x88]
xor r9d, r9d
mov r8d, 0x80000001
mov rcx, rdi
mov edx, esi
mov dword [rsp + 0x88], ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringA]
cmp eax, ebx
je 0x140098291
lea rax, [rsp + 0x88]
lea r9, [rsp + 0x40]
lea rcx, str.PRIVATE_KEY
mov r8d, esi
mov rdx, rdi
mov qword [rsp + 0x20], rax
call fcn.140011a88
jmp 0x140098293
mov eax, ebx
cmp eax, ebx
je 0x1400982de
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rdx, qword [rsp + 0x40]
mov rcx, rbp
mov r8d, eax
call fcn.140008520
cmp eax, ebx
je 0x1400982bd
mov ebx, 1
jmp 0x1400982d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_crypto_keyutil_export_pkcs8_file___kull_m_file_writeData__0x_08x__n
mov edx, eax
call fcn.14000a838
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1400982fb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_crypto_keyutil_export_pkcs8_file___kull_m_string_EncodeB64_headers__0x_08x__n
jmp 0x1400982f4
lea rcx, str.ERROR_kuhl_m_crypto_keyutil_export_pkcs8_file___NCryptExportKey_data_:_0x_08x_n
mov edx, eax
call fcn.14000a838
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140098314
lea rcx, str.ERROR_kuhl_m_crypto_keyutil_export_pkcs8_file___NCryptExportKey_init_:_0x_08x_n
mov edx, eax
call fcn.14000a838
mov eax, ebx
mov rbx, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
Function at 0x140099500
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea rdx, [rsp + 0x68]
xor r14d, r14d
mov ebp, r14d
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, r14d
mov r12, rax
cmp rax, r14
je 0x1400995df
cmp dword [rsp + 0x68], r14d
jle 0x1400995df
movzx edi, r14w
lea rsi, [0x1400c7f40]
lea r15d, [r14 + 1]
cmp di, 0x13
jae 0x1400995b1
mov rcx, qword [r12]
movzx r13d, di
shl r13, 5
mov rdx, qword [r13 + rsi + 0x10]
call qword [sym.imp.msvcrt.dll__wcsicmp]
mov ebx, r14d
cmp eax, r14d
sete bl
cmp ebx, r14d
je 0x1400995a8
mov rax, qword [r13 + rsi]
cmp rax, r14
je 0x140099599
mov ecx, dword [rsp + 0x68]
lea rdx, [r12 + 8]
dec ecx
call rax
mov ebp, eax
jmp 0x1400995a8
mov ecx, dword [r13 + rsi + 8]
xor r8d, r8d
xor edx, edx
call fcn.140008ea4
add di, r15w
cmp ebx, r14d
je 0x140099553
mov rsi, qword [rsp + 0x60]
cmp ebx, r14d
jne 0x1400995df
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
mov rdx, rsi
not rcx
sub rcx, r15
lea r8d, [rcx + rcx + 2]
mov ecx, 0x22c003
call fcn.140008ea4
mov eax, ebp
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x14009b2a4
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
push rsi
push rdi
push r12
sub rsp, 0x50
xor ebx, ebx
lea rax, [r11 + 0x20]
mov r12, r8
mov qword [r11 - 0x38], rax
mov qword [r11 - 0x40], rbx
lea r8, str.SupplementalCredentials
xor r9d, r9d
mov qword [r11 - 0x48], rbx
mov rdi, rdx
mov rbp, rcx
mov dword [r11 + 0x20], ebx
call fcn.14000d4ec
cmp eax, ebx
je 0x14009b43c
cmp dword [rsp + 0x88], 0x90
jbe 0x14009b43c
mov edx, dword [rsp + 0x88]
lea ecx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
cmp rax, rbx
je 0x14009b43c
lea rax, [rsp + 0x88]
lea r8, str.SupplementalCredentials
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
call fcn.14000d4ec
cmp eax, ebx
je 0x14009b427
lea rcx, str._nSupplemental_Credentials:_n
call fcn.14000a838
mov edx, dword [rsi + 0xc]
lea ecx, [rbx + 0x40]
add edx, 0xc
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
cmp rax, rbx
je 0x14009b433
mov ebp, dword [rsp + 0x88]
lea r9d, [rbx + 0x18]
lea rcx, [rsp + 0x48]
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0xf0000000
add ebp, 0xffffffe0
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
cmp eax, ebx
je 0x14009b3d1
lea rcx, [rsp + 0x48]
lea rax, [rdi + 4]
lea r8, [rsi + 0x20]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [rsi + 0x10]
mov r9d, ebp
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.140004ca0
jmp 0x14009b3e7
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kull_m_crypto_genericAES128Decrypt___CryptAcquireContext__0x_08x__n
mov edx, eax
call fcn.14000a838
mov eax, ebx
cmp eax, ebx
je 0x14009b41c
mov eax, dword [rdi + 4]
cmp eax, dword [rsi + 0xc]
jne 0x14009b411
mov rdx, qword [rsp + 0x40]
lea rcx, [rdi + 0xc]
mov r8, rax
mov ebx, 1
call sub.msvcrt.dll_memcpy
mov rcx, rdi
call fcn.1400ae984
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x14009b433
lea rcx, str.ERROR_kuhl_m_lsadump_getSupplementalCreds___kull_m_registry_RegQueryValueEx_data__n
call fcn.14000a838
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbp, qword [rsp + 0x78]
mov eax, ebx
mov rbx, qword [rsp + 0x70]
add rsp, 0x50
pop r12
pop rdi
pop rsi
ret
Function at 0x1400a706c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movzx eax, r8w
movzx r10d, dl
mov r11, r9
shl r10d, 0x10
xor r9b, r9b
mov rsi, rcx
or r10d, eax
movabs rax, 0x2004000000
add r10d, r10d
movsxd rdi, r10d
xor r10b, r10b
or rdi, rax
xor r8b, r8b
movzx edx, r8b
mov rax, rdi
inc r8b
lea ecx, [rdx + 0xd]
shr rax, cl
lea ecx, [rdx + 1]
and al, 1
xor r10b, al
mov rax, rdi
shr rax, cl
and al, 1
xor r9b, al
cmp r8b, 0xc
jb 0x1400a70ac
movzx eax, r10b
and eax, 1
shl eax, 0x19
movsxd rcx, eax
xor eax, eax
test r9b, r9b
sete al
and eax, 1
or rcx, rax
or rdi, rcx
test r11, r11
je 0x1400a70fb
mov qword [r11], rdi
mov rcx, rdi
mov dword [rsi], 0x90625062
shr rcx, 0x28
call fcn.1400a7034
mov rcx, rdi
movzx ebx, al
shr rcx, 0x24
or ebx, 0x1d00
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 0x20
or ebx, r11d
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 0x1c
or ebx, r11d
mov dword [rsi + 4], ebx
call fcn.1400a7034
mov rcx, rdi
movzx ebx, al
shr rcx, 0x18
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 0x14
or ebx, r11d
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 0x10
or ebx, r11d
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 0xc
or ebx, r11d
mov dword [rsi + 8], ebx
call fcn.1400a7034
mov rcx, rdi
movzx ebx, al
shr rcx, 8
shl ebx, 8
call fcn.1400a7034
mov rcx, rdi
movzx r11d, al
shr rcx, 4
or ebx, r11d
shl ebx, 8
call fcn.1400a7034
mov cl, dil
movzx r11d, al
or ebx, r11d
shl ebx, 8
call fcn.1400a7034
movzx r11d, al
or ebx, r11d
mov dword [rsi + 0xc], ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x1400a71fc
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
mov byte [rax + 8], 0
xor eax, eax
mov rsi, rdx
mov r9, rcx
movabs r8, 0xff80000000000000
xor r11b, r11b
mov word [rsp + 0x11], ax
mov byte [rsp + 0x13], al
movzx ebp, r11b
mov rdx, rsi
lea r10, [rsp + 0x10]
mov ebx, ebp
neg ebx
lea ecx, [rbx*4 + 0x24]
shr rdx, cl
xor cl, cl
and dl, 0xf
xor dil, dil
mov al, dl
shr al, cl
inc cl
and al, 1
xor byte [r10], al
inc r10
xor dil, al
cmp cl, 4
jb 0x1400a7250
lea eax, [rbp + rbp*4]
movzx edx, dl
mov ecx, Ordinal_54
sub ecx, eax
movzx eax, dil
inc r11b
shl rdx, cl
lea ecx, [rbx + rbx*4 + 0x32]
shl rax, cl
or rdx, rax
or r8, rdx
cmp r11b, 0xa
jb 0x1400a722e
movzx eax, byte [rsp + 0x12]
movzx ecx, byte [rsp + 0x13]
mov rbx, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
add ecx, ecx
or ecx, eax
movzx eax, byte [rsp + 0x11]
mov dword [r9], 0x148040
add ecx, ecx
or ecx, eax
movzx eax, byte [rsp + 0x10]
add ecx, ecx
or ecx, eax
lea eax, [rcx + rcx]
cdqe
or r8, rax
mov rax, r8
mov dword [r9 + 8], r8d
shr rax, 0x20
mov dword [r9 + 4], eax
pop rdi
ret
Function at 0x1400b8e20
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x40
xor ebp, ebp
xor r9d, r9d
mov edx, 0x80000000
and qword [rax - 0x38], rbp
and dword [rax - 0x40], ebp
lea r8d, [rbp + 3]
mov dword [rax - 0x48], r8d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
test rax, rax
je 0x1400b8f70
cmp rax, 0xffffffffffffffff
je 0x1400b8f70
lea rdx, [rsp + 0x80]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400b8f51
mov r14d, 0x10000000
lea ecx, [rbp + 0x40]
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x1400b8f65
mov rax, qword [rsp + 0x80]
xor ecx, ecx
test rax, rax
jle 0x1400b8f46
lea r12, [rcx + 0x10000000]
mov rbx, rax
mov rdx, rcx
sub rbx, rcx
cmp r12, rax
mov rcx, rdi
cmovl rbx, r14
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1400b8f1e
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x78]
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400b8f0f
mov edx, dword [rsp + 0x78]
mov r8d, 1
mov rcx, rsi
call fcn.1400b8cfc
add ebp, eax
jmp 0x1400b8f32
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_sekurlsa_sk_search_file___ReadFile__0x_08x__n
jmp 0x1400b8f2b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_sekurlsa_sk_search_file___SetFilePointerEx__0x_08x__n
mov edx, eax
call fcn.14000a838
mov rax, qword [rsp + 0x80]
mov rcx, r12
cmp r12, rax
jl 0x1400b8eb1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1400b8f65
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_sekurlsa_sk_search_file___GetFileSizeEx__0x_08x__n
mov edx, eax
call fcn.14000a838
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400b8f84
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ERROR_kuhl_m_sekurlsa_sk_search_file___CreateFile__0x_08x__n
mov edx, eax
call fcn.14000a838
mov eax, ebp
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x1400bc4e0
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x530
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rbx, qword [rsp + 0x158]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x1400bc54b
and qword [rsp + 0x38], 0
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov r9, rax
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov r8, rbx
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_RtlVirtualUnwind]
jmp 0x1400bc56b
mov rax, qword [rsp + 0x538]
mov qword [rsp + 0x158], rax
lea rax, [rsp + 0x538]
mov qword [rsp + 0xf8], rax
lea rcx, str.Invalid_parameter_passed_to_C_runtime_function._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rsp, 0x530
pop rbx
ret
Function at 0x1400bc640
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [section..data]
jne 0x1400bc65b
rol rcx, 0x10
test cx, 0xffff
jne 0x1400bc657
ret 0
ror rcx, 0x10
jmp 0x1400bcd20
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x140123550]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov r11, qword [0x140123648]
mov qword [rsp + 0x58], r11
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x1400bcda5
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x140123550]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x1400bcdc7
mov rax, qword [rsp + 0x88]
mov qword [0x140123648], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x1401235e8], rax
mov rax, qword [0x140123648]
mov qword [0x1401234c0], rax
mov rax, qword [rsp + 0x90]
mov qword [0x1401235d0], rax
mov dword [0x1401234b0], 0xc0000409
mov dword [0x1401234b4], 1
mov rax, qword [section..data]
mov qword [rsp + 0x68], rax
mov rax, qword [0x14011d008]
mov qword [rsp + 0x70], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x1400c5388]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret

Function at 0x1400c1548
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
cmp rcx, rdx
je 0x1400c1595
cmp rcx, 0xffffffffffffffff
je 0x1400c1595
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400c158d
cmp dword [rcx + 0x3c], edx
jl 0x1400c158d
cmp dword [rcx + 0x3c], 0x10000000
jae 0x1400c158d
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x1400c1595
mov rax, rdx
add rsp, 0x18
ret
Function at 0x1400c16ec
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov rsi, rcx
cmp rcx, rdi
jne 0x1400c172a
call qword [sym.imp.msvcrt.dll__errno]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
mov dword [rax], Ordinal_27
call fcn.1400bc584
jmp 0x1400c1830
mov eax, dword [rcx + 0x18]
test al, 0x83
je 0x1400c1830
test al, 0x40
jne 0x1400c1830
test al, 2
je 0x1400c174c
or eax, 0x20
mov dword [rcx + 0x18], eax
jmp 0x1400c1830
or eax, 1
mov dword [rcx + 0x18], eax
test eax, 0x10c
je 0x1400c1705
mov rbx, qword [rcx + 0x10]
mov qword [rcx], rbx
call qword [sym.imp.msvcrt.dll__fileno]
mov r8d, dword [rsi + 0x24]
mov ecx, eax
mov rdx, rbx
call qword [sym.imp.msvcrt.dll__read]
mov dword [rsi + 8], eax
cmp eax, edi
je 0x1400c1820
cmp eax, 0xffffffff
je 0x1400c1820
test byte [rsi + 0x18], 0x82
jne 0x1400c17f2
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
cmp eax, 0xffffffff
je 0x1400c17dc
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
cmp eax, 0xfffffffe
je 0x1400c17dc
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
mov rbx, qword [sym.imp.msvcrt.dll___pioinfo]
mov rcx, rsi
movsxd rdi, eax
sar rdi, 5
call qword [sym.imp.msvcrt.dll__fileno]
mov r11d, eax
and r11d, 0x1f
imul r11, r11, 0x38
add r11, qword [rbx + rdi*8]
jmp 0x1400c17e3
mov r11, qword [sym.imp.msvcrt.dll___badioinfo]
mov al, byte [r11 + 8]
and al, 0x82
cmp al, 0x82
jne 0x1400c17f2
bts dword [rsi + 0x18], 0xd
cmp dword [rsi + 0x24], 0x200
jne 0x1400c180f
test byte [rsi + 0x18], 8
je 0x1400c180f
bt dword [rsi + 0x18], 0xa
jb 0x1400c180f
mov dword [rsi + 0x24], 0x1000
mov rcx, qword [rsi]
dec dword [rsi + 8]
movzx eax, byte [rcx]
inc rcx
mov qword [rsi], rcx
jmp 0x1400c1833
neg eax
mov dword [rsi + 8], edi
sbb eax, eax
and eax, 0x10
add eax, 0x10
or dword [rsi + 0x18], eax
or eax, 0xffffffff
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x1400c35b0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov rsi, rcx
cmp rcx, rdi
jne 0x1400c35ee
call qword [sym.imp.msvcrt.dll__errno]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
mov dword [rax], Ordinal_27
call fcn.1400bc584
jmp 0x1400c36ff
mov eax, dword [rcx + 0x18]
test al, 0x83
je 0x1400c36ff
test al, 0x40
jne 0x1400c36ff
test al, 2
je 0x1400c3610
or eax, 0x20
mov dword [rcx + 0x18], eax
jmp 0x1400c36ff
or eax, 1
mov dword [rcx + 0x18], eax
test eax, 0x10c
je 0x1400c35c9
mov rbx, qword [rcx + 0x10]
mov qword [rcx], rbx
call qword [sym.imp.msvcrt.dll__fileno]
mov r8d, dword [rsi + 0x24]
mov ecx, eax
mov rdx, rbx
call qword [sym.imp.msvcrt.dll__read]
mov dword [rsi + 8], eax
cmp eax, edi
je 0x1400c36ef
cmp eax, 1
je 0x1400c36ef
cmp eax, 0xffffffff
je 0x1400c36ef
test byte [rsi + 0x18], 0x82
jne 0x1400c36bf
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
cmp eax, 0xffffffff
je 0x1400c36a9
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
cmp eax, 0xfffffffe
je 0x1400c36a9
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__fileno]
mov rbx, qword [sym.imp.msvcrt.dll___pioinfo]
mov rcx, rsi
movsxd rdi, eax
sar rdi, 5
call qword [sym.imp.msvcrt.dll__fileno]
mov r11d, eax
and r11d, 0x1f
imul r11, r11, 0x38
add r11, qword [rbx + rdi*8]
jmp 0x1400c36b0
mov r11, qword [sym.imp.msvcrt.dll___badioinfo]
mov al, byte [r11 + 8]
and al, 0x82
cmp al, 0x82
jne 0x1400c36bf
bts dword [rsi + 0x18], 0xd
cmp dword [rsi + 0x24], 0x200
jne 0x1400c36dc
test byte [rsi + 0x18], 8
je 0x1400c36dc
bt dword [rsi + 0x18], 0xa
jb 0x1400c36dc
mov dword [rsi + 0x24], 0x1000
mov rcx, qword [rsi]
add dword [rsi + 8], 0xfffffffe
movzx eax, word [rcx]
add rcx, 2
mov qword [rsi], rcx
jmp 0x1400c3704
neg eax
mov dword [rsi + 8], edi
sbb eax, eax
and eax, 0x10
add eax, 0x10
or dword [rsi + 0x18], eax
mov eax, 0xffff
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x140008628
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140008758