joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18000cc30
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x1b0
mov rax, qword [0x18008c590]
xor rax, rsp
mov qword [rsp + 0x1a8], rax
mov rsi, rdx
mov rdi, rcx
test rdx, rdx
jne 0x18000cc64
mov eax, 0x80070057
jmp 0x18000cde6
mov qword [rsp + 0x1d0], rbx
xor ebx, ebx
xor r9d, r9d
mov rdx, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18000cdb5
xor eax, eax
lea r9, [rsp + 0x30]
lea r8d, [rbx + 0x40]
lea rdx, [rsp + 0x140]
mov rcx, rdi
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000cdb5
cmp dword [rsp + 0x30], 0x40
jne 0x18000cdc3
movsxd rdx, dword [rsp + 0x17c]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18000cdb5
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0xf8
call fcn.18005c9d0
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov r8d, 0xf8
mov rcx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000cdb5
cmp dword [rsp + 0x30], 0xf8
jne 0x18000cdc3
movzx eax, word [rsp + 0x46]
lea r9d, [rbx + 1]
xor r8d, r8d
dec eax
mov rcx, rdi
cdqe
lea rdx, [rax + rax*4]
shl rdx, 3
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18000cdb5
lea r8d, [rbx + 0x28]
lea rcx, [rsp + 0x180]
xor edx, edx
call fcn.18005c9d0
lea r9, [rsp + 0x30]
lea r8d, [rbx + 0x28]
lea rdx, [rsp + 0x180]
mov rcx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18000cdbc
call fcn.180007a70
jmp 0x18000cdde
cmp dword [rsp + 0x30], 0x28
je 0x18000cdca
mov eax, 0x80004005
jmp 0x18000cdde
mov eax, dword [rsp + 0x190]
mov ecx, dword [rsp + 0x194]
add ecx, eax
xor eax, eax
mov dword [rsi], ecx
mov rbx, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1a8]
xor rcx, rsp
call fcn.180057da0
mov rsi, qword [rsp + 0x1d8]
add rsp, 0x1b0
pop rdi
ret
Function at 0x18000ce10
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
sub rsp, 0x68
mov rbp, r8
mov rdi, rdx
test rcx, rcx
je 0x18000cfa1
cmp word [rcx], 0
je 0x18000cfa1
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x50], r12
xor r12d, r12d
test rdx, rdx
je 0x18000ce45
mov dword [rdx], r12d
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x18000ce88
call fcn.180007a70
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
add rsp, 0x68
pop rdi
pop rbp
ret
xor eax, eax
lea r9, [rsp + 0x44]
mov rdx, rbp
lea r8d, [rax + 4]
mov rcx, rbx
mov dword [rsp + 0x44], r12d
mov dword [rbp], eax
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18000ced3
call fcn.180007a70
mov rcx, rbx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
mov eax, edi
add rsp, 0x68
pop rdi
pop rbp
ret
mov ax, word [rbp]
cmp ax, word [0x18007405c]
je 0x18000cefc
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
xor eax, eax
add rsp, 0x68
pop rdi
pop rbp
ret
lea rdx, [rsp + 0x40]
mov rcx, rbx
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0x40], r12d
call fcn.18000cc30
mov esi, eax
test eax, eax
je 0x18000cf3a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
add rsp, 0x68
pop rdi
pop rbp
ret
mov esi, dword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18000cf80
xor eax, eax
mov dword [rbp], eax
test rdi, rdi
je 0x18000cf60
mov dword [rdi], esi
lea r9, [rsp + 0x44]
mov r8d, 4
mov rdx, rbp
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18000cf94
call fcn.180007a70
mov rcx, rbx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x18000cf24
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x18000cf24
mov eax, 0x80070057
add rsp, 0x68
pop rdi
pop rbp
ret
Function at 0x180013c00
Capabilities:
Delete file

Disassembly:
push rdi
push r12
push r13
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
mov r12, r9
mov r13, r8
mov rbp, rdx
mov rsi, rcx
mov ecx, 0xf8
call fcn.180058470
mov qword [rsp + 0x68], rax
test rax, rax
je 0x180013c4f
mov rcx, rax
call fcn.18000d5b0
mov rbx, rax
jmp 0x180013c51
xor ebx, ebx
mov qword [rsp + 0x68], rbx
test rbx, rbx
je 0x180013c65
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
mov r8, qword [rbp + 0x58]
mov rdx, rbp
mov rcx, rbx
call fcn.180017e00
mov edi, eax
test eax, eax
je 0x180013c8f
test rbx, rbx
je 0x180013c88
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
mov eax, edi
jmp 0x180013d64
mov r8, qword [rsi + 0xb0]
mov rdx, qword [rsi + 0xb8]
mov rcx, rbx
call fcn.18000d670
mov r8, r12
mov rdx, rbp
mov rcx, rbx
call fcn.180017fe0
mov edi, eax
test eax, eax
je 0x180013cce
test rbx, rbx
je 0x180013cc7
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
mov eax, edi
jmp 0x180013d64
mov qword [rsp + 0x20], r12
mov r9, r13
mov r8, rbx
mov rdx, rbp
mov rcx, rsi
call fcn.180013b50
mov edi, eax
test eax, eax
js 0x180013d14
cmp eax, 1
je 0x180013d14
mov rcx, rbx
call fcn.180018f30
mov edi, eax
mov rcx, rsi
call fcn.180011a90
nop
test rbx, rbx
je 0x180013d10
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
mov eax, edi
jmp 0x180013d64
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180013d2b
mov qword [rbx + 0x58], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp qword [rbx + 0xb0], 8
jb 0x180013d3e
mov rcx, qword [rbx + 0x98]
jmp 0x180013d45
lea rcx, [rbx + 0x98]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, rsi
call fcn.180011a90
nop
test rbx, rbx
je 0x180013d62
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, edi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r13
pop r12
pop rdi
ret
Function at 0x180014e60
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x400
or r9d, 0xffffffff
xor r11d, r11d
mov r10, rdx
mov edx, r11d
lea rbx, [rsp]
nop word [rax + rax]
mov eax, edx
mov ecx, 8
test al, 1
je 0x180014e94
shr eax, 1
xor eax, 0xedb88320
jmp 0x180014e96
shr eax, 1
sub rcx, 1
jne 0x180014e87
inc edx
mov dword [rbx], eax
add rbx, 4
cmp edx, 0x100
jl 0x180014e80
test r8, r8
je 0x180014ed8
test r10b, 7
je 0x180014ed8
movzx ecx, byte [r10]
movzx eax, r9b
inc r10
xor rcx, rax
mov eax, r9d
mov r9d, dword [rsp + rcx*4]
shr eax, 8
xor r9d, eax
sub r8, 1
jne 0x180014eb1
cmp r8, 8
jb 0x180014f6e
mov rbx, r8
shr rbx, 3
mov rax, rbx
imul rax, rax, 0xfffffffffffffff8
add r8, rax
nop word [rax + rax]
xor r9d, dword [r10]
add r10, 8
movzx eax, r9b
shr r9d, 8
mov ecx, dword [rsp + rax*4]
xor ecx, r9d
movzx eax, cl
shr ecx, 8
mov edx, dword [rsp + rax*4]
xor edx, ecx
movzx eax, dl
shr edx, 8
mov ecx, dword [rsp + rax*4]
xor ecx, edx
movzx eax, cl
shr ecx, 8
mov edx, dword [rsp + rax*4]
xor edx, dword [r10 - 4]
xor edx, ecx
movzx eax, dl
shr edx, 8
mov ecx, dword [rsp + rax*4]
xor ecx, edx
movzx eax, cl
shr ecx, 8
mov edx, dword [rsp + rax*4]
xor edx, ecx
movzx eax, dl
shr edx, 8
mov ecx, dword [rsp + rax*4]
xor ecx, edx
movzx eax, cl
shr ecx, 8
mov r9d, dword [rsp + rax*4]
xor r9d, ecx
sub rbx, 1
jne 0x180014f00
test r8, r8
je 0x180014fa1
nop word [rax + rax]
movzx edx, byte [r11 + r10]
movzx eax, r9b
mov ecx, r9d
xor rdx, rax
shr ecx, 8
inc r11
mov r9d, dword [rsp + rdx*4]
xor r9d, ecx
cmp r11, r8
jb 0x180014f80
mov eax, r9d
add rsp, 0x400
pop rbx
ret

Function at 0x180014fb0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x400
mov r11d, edx
mov rbx, rcx
xor r9d, r9d
lea r10, [rsp]
nop word [rax + rax]
mov eax, r9d
mov r8d, 8
nop dword [rax]
test al, 1
je 0x180014fed
shr eax, 1
xor eax, 0xedb88320
jmp 0x180014fef
shr eax, 1
sub r8, 1
jne 0x180014fe0
inc r9d
mov dword [r10], eax
add r10, 4
cmp r9d, 0x100
jl 0x180014fd0
or r8d, 0xffffffff
test edx, edx
je 0x180015030
movzx eax, byte [rbx]
movzx edx, r8b
mov ecx, r8d
xor rdx, rax
shr ecx, 8
inc rbx
mov r8d, dword [rsp + rdx*4]
xor r8d, ecx
sub r11d, 1
jne 0x180015010
not r8d
mov eax, r8d
add rsp, 0x400
pop rbx
ret
Function at 0x1800169d0
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rbp, rdx
test rdx, rdx
jne 0x1800169fa
mov eax, 0x80070057
jmp 0x180016b84
xor r13d, r13d
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r13 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0xa8], rax
cmp rax, 0xffffffffffffffff
jne 0x180016a3d
call fcn.180007a70
nop
jmp 0x180016b84
mov qword [rsp + 0xa0], r13
lea rdx, [rsp + 0xa0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x180016a71
call fcn.180007a70
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x180016b84
lea rdx, [0x18008ef80]
mov r14d, 0x100000
mov rcx, r14
call fcn.180058578
mov rdi, rax
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x180016aa6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x8007000e
jmp 0x180016b84
mov rsi, r13
cmp qword [rsp + 0xa0], r13
jbe 0x180016b70
nop word [rax + rax]
mov r8, r14
xor edx, edx
mov rcx, rdi
call fcn.18005c9d0
mov r11, qword [rsp + 0xa0]
sub r11, rsi
cmp r11, r14
cmova r11d, r14d
mov dword [rsp + 0x98], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x98]
mov r8d, r11d
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180016b53
mov rax, qword [rbp]
xor r9d, r9d
mov r8d, dword [rsp + 0x98]
mov rdx, rdi
mov rcx, rbp
call qword [rax + 0x18]
mov r12d, eax
test eax, eax
jne 0x180016b3c
mov eax, dword [rsp + 0x98]
add rsi, rax
cmp rsi, qword [rsp + 0xa0]
jb 0x180016ac0
jmp 0x180016b70
mov rcx, rdi
call fcn.180058570
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, r12d
jmp 0x180016b84
call fcn.180007a70
mov esi, eax
mov rcx, rdi
call fcn.180058570
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
jmp 0x180016b84
mov rcx, rdi
call fcn.180058570
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x180016e00
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x30
xor eax, eax
mov rbx, r9
test r9, r9
je 0x180016e13
mov dword [r9], eax
test r8d, r8d
je 0x180016e4c
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180016e3f
call fcn.180007a70
add rsp, 0x30
pop rbx
ret
test rbx, rbx
je 0x180016e4a
mov eax, dword [rsp + 0x50]
mov dword [rbx], eax
xor eax, eax
add rsp, 0x30
pop rbx
ret

Function at 0x180016e60
Capabilities:
Clear file content

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [rcx]
xor r9d, r9d
xor r8d, r8d
mov rbx, rcx
call qword [rax + 0x20]
test eax, eax
jne 0x180016e93
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x180016e91
add rsp, 0x20
pop rbx
jmp fcn.180007a70
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x180017290
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
xor edi, edi
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
cmp rcx, 0xffffffffffffffff
mov eax, 1
cmovne edi, eax
cmp rcx, 0xffffffffffffffff
je 0x1800172c3
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x10], 0xffffffffffffffff
test edi, edi
je 0x18001730b
cmp qword [rbx + 0x60], 0
jne 0x1800172e1
cmp qword [rbx + 0x40], 8
jb 0x1800172db
mov rcx, qword [rbx + 0x28]
jmp 0x1800172f2
lea rcx, [rbx + 0x28]
jmp 0x1800172f2
cmp qword [rbx + 0x68], 8
jb 0x1800172ee
mov rcx, qword [rbx + 0x50]
jmp 0x1800172f2
lea rcx, [rbx + 0x50]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x18001730b
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.180007a70
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180017320
Capabilities:
Check if file exists
Delete file
Move file

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x180017341
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x10], 0xffffffffffffffff
cmp qword [rbx + 0x60], 0
je 0x1800173b4
cmp qword [rbx + 0x40], 8
jb 0x180017355
mov rcx, qword [rbx + 0x28]
jmp 0x180017359
lea rcx, [rbx + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180017388
cmp qword [rbx + 0x40], 8
jb 0x180017370
mov rcx, qword [rbx + 0x28]
jmp 0x180017374
lea rcx, [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x180017388
add rsp, 0x20
pop rbx
jmp fcn.180007a70
cmp qword [rbx + 0x40], 8
jb 0x180017395
mov rdx, qword [rbx + 0x28]
jmp 0x180017399
lea rdx, [rbx + 0x28]
cmp qword [rbx + 0x68], 8
jb 0x1800173a6
mov rcx, qword [rbx + 0x50]
jmp 0x1800173aa
lea rcx, [rbx + 0x50]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x18001737e
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x18001a4b0
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov rax, rdx
xor r9d, r9d
mov rdi, rcx
mov qword [rsp + 0x30], 0
lea r8d, [r9 + 3]
mov edx, 0xc0000000
mov rcx, rax
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18001a504
xor eax, eax
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
xor r9d, r9d
xor edx, edx
mov rcx, rdi
lea r8d, [r9 + 2]
mov qword [rsp + 0x50], rbx
call fcn.1800690a0
mov rbx, rax
test rax, rax
jne 0x18001a53c
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
lea rdx, str.SFXJPG
mov r9d, 0x409
mov r8d, 0xce
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
test rax, rax
jne 0x18001a578
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
mov rdx, rax
mov rcx, rbx
mov qword [rsp + 0x58], rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov rbp, rax
test rax, rax
je 0x18001a65f
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov edi, eax
call fcn.180057d74
mov dword [rsp + 0x60], 0
mov rbx, rax
test rax, rax
je 0x18001a5f3
lea r9, [rsp + 0x60]
mov r8d, edi
mov rdx, rax
mov rcx, rsi
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x18001a649
cmp edi, dword [rsp + 0x60]
jne 0x18001a649
lea rdx, str.SFXJPG
mov r9d, 0x409
mov r8d, 0xce
mov rcx, rbp
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_UpdateResourceW]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
test eax, eax
je 0x18001a657
mov rcx, rbx
call fcn.180058570
mov eax, 1
jmp 0x18001a661
mov edx, 1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
mov rcx, rbx
call fcn.180058570
xor eax, eax
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
Function at 0x18001a680
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x70
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0xa0], rbx
mov rax, qword [0x18008c590]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rbx, rdx
mov rbp, rcx
mov edx, 0x18
mov r9d, 0x409
lea r8d, [rdx - 0x17]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
mov rsi, rax
test rax, rax
jne 0x18001a6de
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x18001a859
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
movsxd rdi, eax
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [rsp + 0x58], 0xf
mov qword [rsp + 0x50], 0
mov byte [rsp + 0x40], 0
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.180001c10
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, str._asInvoker_
repne scasb al, byte [rdi]
not rcx
lea r9, [rcx - 1]
xor r8d, r8d
lea rdx, str._asInvoker_
lea rcx, [rsp + 0x38]
call fcn.18001b1e0
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x18001a77f
cmp qword [rsp + 0x58], 0x10
jb 0x18001a778
mov rcx, qword [rsp + 0x40]
call fcn.180057d7c
xor eax, eax
jmp 0x18001a859
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, str._asInvoker_
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
lea rdi, str._requireAdministrator_
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rsp + 0x20], rcx
lea r9, str._requireAdministrator_
lea rcx, [rsp + 0x38]
call fcn.18001afd0
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov rdi, rax
test rax, rax
jne 0x18001a7e7
cmp qword [rsp + 0x58], 0x10
jb 0x18001a7e3
mov rcx, qword [rsp + 0x40]
call fcn.180057d7c
xor eax, eax
jmp 0x18001a859
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rcx, qword [rsp + 0x40]
mov r9d, 0x409
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov edx, 0x18
lea r8d, [rdx - 0x17]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_UpdateResourceW]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
test eax, eax
jne 0x18001a842
cmp qword [rsp + 0x58], 0x10
jb 0x18001a83e
mov rcx, qword [rsp + 0x40]
call fcn.180057d7c
xor eax, eax
jmp 0x18001a859
cmp qword [rsp + 0x58], 0x10
jb 0x18001a854
mov rcx, qword [rsp + 0x40]
call fcn.180057d7c
mov eax, 1
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180057da0
mov rbx, qword [rsp + 0xa0]
add rsp, 0x70
pop rdi
pop rsi
pop rbp
ret
Function at 0x18001d550
Capabilities:
Hash data using sha256

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x18008c590]
xor rax, rsp
mov qword [rsp + 0xa8], rax
xor eax, eax
mov r14, rdx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x30], 0x6a09e667
mov dword [rsp + 0x34], 0xbb67ae85
mov dword [rsp + 0x38], 0x3c6ef372
mov dword [r11 - 0x37], eax
mov word [r11 - 0x33], ax
mov byte [r11 - 0x31], al
mov dword [rsp + 0x3c], 0xa54ff53a
mov dword [rsp + 0x40], 0x510e527f
mov dword [rsp + 0x44], 0x9b05688c
mov dword [rsp + 0x48], 0x1f83d9ab
mov dword [rsp + 0x4c], 0x5be0cd19
mov qword [rsp + 0x50], 0
mov byte [r11 - 0x38], 0
mov r15d, r8d
mov r13d, 0x80000
nop
mov ebx, dword [rsp + 0x50]
mov rbp, r15
mov r12, r14
mov edi, ebx
and edi, 0x3f
movsxd rsi, edi
test r15, r15
je 0x18001d645
nop word [rax + rax]
movzx eax, byte [r12]
inc edi
inc rsi
mov byte [rsp + rsi + 0x57], al
inc qword [rsp + 0x50]
inc r12
dec rbp
cmp edi, 0x40
jne 0x18001d63c
lea rcx, [rsp + 0x30]
xor edi, edi
xor esi, esi
call fcn.18001e940
test rbp, rbp
jne 0x18001d610
mov ebx, dword [rsp + 0x50]
and ebx, 0x3f
mov esi, 8
lea rbp, [rsp + 0xa0]
movsxd rdi, ebx
nop dword [rax + rax]
movzx eax, byte [rbp]
inc ebx
inc rdi
mov byte [rsp + rdi + 0x57], al
inc qword [rsp + 0x50]
inc rbp
dec rsi
cmp ebx, 0x40
jne 0x18001d68b
lea rcx, [rsp + 0x30]
xor ebx, ebx
xor edi, edi
call fcn.18001e940
test rsi, rsi
jne 0x18001d660
xor eax, eax
add byte [rsp + rax + 0xa0], 1
jne 0x18001d6a5
inc rax
cmp rax, 8
jl 0x18001d692
sub r13, 1
jne 0x18001d5f0
mov rdx, qword [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.18001ea20
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.180057da0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x18001e590
Capabilities:
Hash data using sha1

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x20
mov ebx, dword [rcx + 0x20]
mov rsi, qword [rcx + 0x18]
xor r12d, r12d
shl rsi, 6
mov r8d, ebx
mov rbp, rdx
add rsi, rbx
shr ebx, 2
mov rdi, rcx
shl rsi, 3
and r8d, 3
jne 0x18001e5d6
mov dword [rcx + rbx*4 + 0x24], r12d
mov ecx, 3
mov eax, 0x80
sub ecx, r8d
shl ecx, 3
shl eax, cl
or dword [rdi + rbx*4 + 0x24], eax
inc ebx
cmp ebx, 0xe
je 0x18001e61a
and ebx, 0xf
jne 0x18001e60e
lea rdx, [rdi + 0x24]
xor r9d, r9d
mov r8, rdi
mov rcx, rdi
call fcn.18001df30
inc qword [rdi + 0x18]
mov dword [rdi + rbx*4 + 0x24], r12d
inc ebx
cmp ebx, 0xe
jne 0x18001e5f3
lea eax, [rbx + 1]
mov rcx, rsi
lea rdx, [rdi + 0x24]
shr rcx, 0x20
xor r9d, r9d
mov r8, rdi
mov dword [rdi + rbx*4 + 0x24], ecx
mov rcx, rdi
mov dword [rdi + rax*4 + 0x24], esi
call fcn.18001df30
inc qword [rdi + 0x18]
mov ecx, dword [rdi]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov eax, ecx
shr eax, 0x18
mov byte [rbp], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 1], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 2], al
mov byte [rbp + 3], cl
mov ecx, dword [rdi + 4]
mov eax, ecx
shr eax, 0x18
mov byte [rbp + 4], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 5], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 6], al
mov byte [rbp + 7], cl
mov ecx, dword [rdi + 8]
mov eax, ecx
shr eax, 0x18
mov byte [rbp + 8], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 9], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 0xa], al
mov byte [rbp + 0xb], cl
mov ecx, dword [rdi + 0xc]
mov eax, ecx
shr eax, 0x18
mov byte [rbp + 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 0xd], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 0xe], al
mov byte [rbp + 0xf], cl
mov ecx, dword [rdi + 0x10]
mov eax, ecx
mov dword [rdi], 0x67452301
mov dword [rdi + 4], 0xefcdab89
shr eax, 0x18
mov dword [rdi + 8], 0x98badcfe
mov dword [rdi + 0xc], 0x10325476
mov byte [rbp + 0x10], al
mov eax, ecx
mov dword [rdi + 0x10], 0xc3d2e1f0
shr eax, 0x10
mov qword [rdi + 0x18], r12
mov dword [rdi + 0x20], r12d
mov rdi, qword [rsp + 0x48]
mov byte [rbp + 0x11], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 0x12], al
mov byte [rbp + 0x13], cl
mov rbp, qword [rsp + 0x38]
add rsp, 0x20
pop r12
ret