joyce8/EMBER2024-capa huggingface dataset:
Function at 0x448580
Capabilities:
Access peb ldr_data

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rcx, r14
test rcx, rcx
je 0x4485c8
mov rcx, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x90]
nop dword [rax + rax]
test rcx, rcx
je 0x4485c8
mov qword [rsp + 0x68], rcx
nop
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
jmp 0x4485d8
mov eax, 1
add rsp, 0x70
pop rbp
ret
mov rax, qword [rsp + 0x60]
mov rcx, qword [sym.imp.kernel32.dll_RtlLookupFunctionEntry]
lea rdx, [rsp + 0x58]
mov rbx, qword [rax + 0xf8]
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], 0
call sym.runtime.stdcall3.abi0
xorps xmm15, xmm15
mov r14, qword [0x005c4670]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x20]
nop
test rax, rax
je 0x4486b1
mov rcx, qword [rsp + 0x58]
mov rdx, qword [sym.imp.kernel32.dll_RtlVirtualUnwind]
mov rbx, qword [rsp + 0x60]
mov rsi, rbx
lea rdi, [rsp + 0x50]
mov r8, qword [rsi + 0xf8]
mov qword [rsp], rdx
mov qword [rsp + 8], 0
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], 0
call sym.runtime.stdcall8.abi0
xorps xmm15, xmm15
mov r14, qword [0x005c4670]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
cmp qword [rcx], rax
ja 0x4486b1
cmp qword [rcx + 8], rax
ja 0x4485d3
mov eax, 1
add rsp, 0x70
pop rbp
ret
Function at 0x44fd60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rsp + 0x20], rax
test rbx, rbx
jbe 0x44fed7
movzx edx, byte [rax]
test edx, edx
jne 0x44fd94
nop dword [rax]
test r8b, r8b
jne 0x44fd94
xor eax, eax
xor ebx, ebx
mov rcx, rbx
xor edi, edi
add rsp, 0x10
pop rbp
ret
bt edx, 7
jae 0x44fda7
xor edx, edx
xor r8d, r8d
xor r9d, r9d
jmp 0x44fe97
mov r8d, 1
mov r9d, edx
and edx, 1
neg edx
shr r9d, 1
xor edx, r9d
add dword [rsi], edx
nop dword [rax]
cmp rbx, r8
jb 0x44fe85
sub rbx, r8
sub rcx, r8
mov rdx, rcx
neg rdx
sar rdx, 0x3f
and r8, rdx
lea rdx, [rax + r8]
test rbx, rbx
jbe 0x44fe77
movzx esi, byte [rax + r8]
bt esi, 7
jae 0x44fdfd
xor eax, eax
xor esi, esi
xor r8d, r8d
jmp 0x44fe40
mov eax, 1
cmp rax, rbx
ja 0x44fe2b
add qword [rdi], rsi
sub rcx, rax
sub rbx, rax
mov rsi, rcx
neg rsi
sar rsi, 0x3f
and rax, rsi
add rax, rdx
mov edi, 1
add rsp, 0x10
pop rbp
ret
mov rcx, rbx
call sym.runtime.panicSliceB
lea r8d, [rcx + 7]
mov rcx, r11
mov eax, r12d
nop dword [rax]
cmp rax, rbx
jae 0x44fe6f
movzx r9d, byte [rax + rdx]
mov r10d, r9d
and r9d, 0x7f
mov r11, rcx
mov ecx, r8d
shl r9d, cl
lea r12d, [rax + 1]
or esi, r9d
test r10b, 0x80
jne 0x44fe33
mov rcx, r11
mov eax, r12d
jmp 0x44fe02
mov rcx, rbx
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
nop dword [rax]
call sym.runtime.panicIndex
mov eax, r8d
mov rcx, rbx
call sym.runtime.panicSliceB
lea r9d, [rcx + 7]
mov rcx, r12
cmp rbx, rdx
jbe 0x44fecd
movzx r10d, byte [rdx + rax]
mov r11d, r10d
and r10d, 0x7f
mov r12, rcx
mov ecx, r9d
shl r10d, cl
inc edx
or r8d, r10d
test r11b, 0x80
jne 0x44fe90
mov rcx, r12
mov r9d, edx
mov edx, r8d
mov r8d, r9d
jmp 0x44fdad
mov eax, edx
mov rcx, rbx
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
nop dword [rax]
call sym.runtime.panicIndex
nop
int3

Function at 0x455aa0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x455b55
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rdi
test byte [rax], al
lea rdx, [rax + 0x10]
mov rsi, qword [rsp + 0x68]
mov rcx, rdi
mov rax, rdx
mov rbx, rsi
call sym.runtime._traceMap_.put
nop
test bl, bl
je 0x455b4f
mov qword [rsp + 0x18], rax
movups xmmword [rsp + 0x20], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
lea rcx, [sym.runtime._traceStringTable_.put.func1]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x20]
mov qword [rsp], rcx
call sym.runtime.systemstack.abi0
xorps xmm15, xmm15
mov r14, qword [0x005c4670]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x18]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp sym.runtime._traceStringTable_.put
Function at 0x458aa0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x458b4f
push rbp
mov rbp, rsp
sub rsp, 0x58
mov qword [rsp + 0x70], rbx
lea rdx, [rsp + 0x68]
mov qword [rsp + 8], 0
movups xmmword [rsp + 0x10], xmm15
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
movups xmmword [rsp + 0x48], xmm15
lea rsi, [sym.runtime.callers.func1]
mov qword [rsp + 0x10], rsi
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdx
mov rdx, r14
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 8]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call sym.runtime.systemstack.abi0
xorps xmm15, xmm15
mov r14, qword [0x005c4670]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 8]
add rsp, 0x58
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax]
jmp sym.runtime.callers

Function at 0x462400
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp byte [0x005c446b], 0
je 0x46240e
jmp sym.aeshashbody
jmp sym.runtime.memhashFallback

Function at 0x462420
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp byte [0x005c446b], 0
je 0x462435
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp sym.aeshashbody
jmp sym.runtime.strhashFallback

Function at 0x462440
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp byte [0x005c446b], 0
je 0x462475
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x005c4a60]
aesenc xmm0, xmmword [0x005c4a70]
aesenc xmm0, xmmword [0x005c4a80]
movq rax, xmm0
ret
jmp sym.runtime.memhash32Fallback

Function at 0x462480
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp byte [0x005c446b], 0
je 0x4624b6
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x005c4a60]
aesenc xmm0, xmmword [0x005c4a70]
aesenc xmm0, xmmword [0x005c4a80]
movq rax, xmm0
ret
jmp sym.runtime.memhash64Fallback
Function at 0x463b20
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push rbp
mov rbp, rsp
pushfq
cld
sub rsp, 0xe0
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r15
movups xmmword [rsp + 0x40], xmm6
movups xmmword [rsp + 0x50], xmm7
movups xmmword [rsp + 0x60], xmm8
movups xmmword [rsp + 0x70], xmm9
movups xmmword [rsp + 0x80], xmm10
movups xmmword [rsp + 0x90], xmm11
movups xmmword [rsp + 0xa0], xmm12
movups xmmword [rsp + 0xb0], xmm13
movups xmmword [rsp + 0xc0], xmm14
movups xmmword [rsp + 0xd0], xmm15
xorps xmm15, xmm15
xor r14, r14
mov rax, qword [0x005c4670]
mov rax, qword gs:[rax]
cmp rax, 0
je 0x463bbb
mov r14, qword [rax]
sub rsp, 0x10
mov rax, rcx
mov rbx, rdx
call sym.runtime.sigtrampgo
add rsp, 0x10
mov rdi, qword [rsp]
mov rsi, qword [rsp + 8]
mov rbp, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
mov r12, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
movups xmm6, xmmword [rsp + 0x40]
movups xmm7, xmmword [rsp + 0x50]
movups xmm8, xmmword [rsp + 0x60]
movups xmm9, xmmword [rsp + 0x70]
movups xmm10, xmmword [rsp + 0x80]
movups xmm11, xmmword [rsp + 0x90]
movups xmm12, xmmword [rsp + 0xa0]
movups xmm13, xmmword [rsp + 0xb0]
movups xmm14, xmmword [rsp + 0xc0]
movups xmm15, xmmword [rsp + 0xd0]
add rsp, 0xe0
popfq
pop rbp
ret

Function at 0x463de0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x28
pushfq
cld
sub rsp, 0xe0
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r15
movups xmmword [rsp + 0x40], xmm6
movups xmmword [rsp + 0x50], xmm7
movups xmmword [rsp + 0x60], xmm8
movups xmmword [rsp + 0x70], xmm9
movups xmmword [rsp + 0x80], xmm10
movups xmmword [rsp + 0x90], xmm11
movups xmmword [rsp + 0xa0], xmm12
movups xmmword [rsp + 0xb0], xmm13
movups xmmword [rsp + 0xc0], xmm14
movups xmmword [rsp + 0xd0], xmm15
mov rax, qword [0x005c4670]
mov rax, qword gs:[rax]
cmp rax, 0
jne 0x463e77
int 3
mov r14, qword [rax]
sub rsp, 0x28
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], r9
call sym.runtime.sehhandler.abi0
mov eax, dword [rsp + 0x20]
add rsp, 0x28
mov rdi, qword [rsp]
mov rsi, qword [rsp + 8]
mov rbp, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
mov r12, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
movups xmm6, xmmword [rsp + 0x40]
movups xmm7, xmmword [rsp + 0x50]
movups xmm8, xmmword [rsp + 0x60]
movups xmm9, xmmword [rsp + 0x70]
movups xmm10, xmmword [rsp + 0x80]
movups xmm11, xmmword [rsp + 0x90]
movups xmm12, xmmword [rsp + 0xa0]
movups xmm13, xmmword [rsp + 0xb0]
movups xmm14, xmmword [rsp + 0xc0]
movups xmm15, xmmword [rsp + 0xd0]
add rsp, 0xe0
popfq
add rsp, 0x28
pop rbp
ret
Function at 0x464240
Capabilities:
Allocate thread local storage

Disassembly:
push rbp
mov rbp, rsp
mov rax, rsp
and rsp, 0xfffffffffffffff0
sub rsp, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [sym.imp.kernel32.dll_TlsAlloc]
call rax
mov rsp, qword [rsp + 0x20]
mov rcx, rax
cmp rcx, 0x40
jb 0x464274
mov rcx, 0x28
jmp 0x46427f
shl rcx, 3
add rcx, 0x1480
mov qword [0x005c4670], rcx
pop rbp
ret
Function at 0x47b8e0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x47b9aa
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0
call sym.internal_bytealg.IndexByteString.abi0
xorps xmm15, xmm15
mov r14, qword [0x005c4670]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
jne 0x47b98f
mov rcx, qword [rsp + 0x60]
lea rdx, [rcx + 1]
mov qword [rsp + 0x40], rdx
lea rax, [0x00491ce0]
xor ebx, ebx
mov rcx, rdx
call sym.runtime.makeslice
mov rbx, qword [rsp + 0x60]
mov rcx, rax
xor edi, edi
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
nop dword [rax]
call sym.syscall.encodeWTF16
inc rbx
cmp rcx, rbx
jae 0x47b97e
mov edi, 1
lea rsi, [0x00491ce0]
call sym.runtime.growslice
mov word [rax + rbx*2 - 2], 0
xor edi, edi
xor esi, esi
add rsp, 0x48
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x004c8d68]
lea rsi, [0x004c86e8]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp sym.syscall.UTF16FromString
Function at 0x180004de0
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x160
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x150], rax
cmp byte [0x1800ff630], 0
je 0x180004e16
movzx eax, byte [0x1800ff631]
jmp 0x180004e8d
mov ecx, 1
call fcn.180088680
mov rbx, rax
mov qword [rsp + 0x20], rax
mov byte [rax], 0
xor edx, edx
mov r8d, 0x11c
lea rcx, [rsp + 0x30]
call fcn.18008c480
mov dword [rsp + 0x30], 0x11c
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180004e5e
cmp dword [rsp + 0x34], 6
setae al
mov byte [rbx], al
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.18000b260
movzx ebx, al
mov byte [0x1800ff631], al
mov byte [0x1800ff630], 1
lea rcx, [rsp + 0x20]
call fcn.18000a0d0
movzx eax, bl
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.180087ea0
add rsp, 0x160
pop rbx
ret
Function at 0x180006730
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x160
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov ecx, 1
call fcn.180088680
mov rbx, rax
mov qword [rsp + 0x28], rax
mov byte [rax], 0
xor edx, edx
mov r8d, 0x11c
lea rcx, [rsp + 0x30]
call fcn.18008c480
mov dword [rsp + 0x30], 0x11c
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x18000679c
cmp dword [rsp + 0x34], 6
setae al
mov byte [rbx], al
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, eax
lea rcx, [rsp + 0x28]
call fcn.18000b530
movzx ebx, al
lea rcx, [rsp + 0x28]
call fcn.18000a0d0
movzx eax, bl
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.180087ea0
add rsp, 0x160
pop rbx
ret

Function at 0x1800067e0
Capabilities:
Check os version
Get common file path

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x180
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov rdi, rdx
xor ebx, ebx
call fcn.180006730
lea esi, [rbx + 1]
test al, al
jne 0x18000683c
mov r9d, esi
lea r8d, [rbx + 0x1a]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x18000683c
mov eax, esi
jmp 0x1800068ea
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], ebx
xor eax, eax
mov qword [rsp + 0x48], rax
mov rcx, rsi
call fcn.180088680
mov qword [rsp + 0x48], rax
mov byte [rax], bl
xor edx, edx
mov r8d, 0x11c
lea rcx, [rsp + 0x50]
call fcn.18008c480
mov dword [rsp + 0x50], 0x11c
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180006893
cmp dword [rsp + 0x54], 6
setae cl
mov rax, qword [rsp + 0x48]
mov byte [rax], cl
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
call fcn.18000ae70
test al, al
je 0x1800068de
lea rcx, [rsp + 0x48]
call fcn.18000a860
test al, al
je 0x1800068de
mov qword [rsp + 0x20], rdi
mov r9d, esi
mov r8, qword [rsp + 0x38]
mov edx, 0x1a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
cmove ebx, esi
lea rcx, [rsp + 0x48]
call fcn.18000ab90
nop
lea rcx, [rsp + 0x48]
call fcn.18000a0d0
mov eax, ebx
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180087ea0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x18000a050
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x150
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rbx, rcx
mov ecx, 1
call fcn.180088680
lea rcx, [rsp + 0x20]
xor edx, edx
mov qword [rbx], rax
mov r8d, 0x11c
mov byte [rax], 0
call fcn.18008c480
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov rax, rbx
je 0x18000a0b7
cmp dword [rsp + 0x24], 6
mov rcx, qword [rbx]
setae dl
mov byte [rcx], dl
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180087ea0
add rsp, 0x150
pop rbx
ret
Function at 0x180010d30
Capabilities:
Check os version
Extract resource via kernel32 functions

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor edx, edx
mov r8d, 0x11c
mov rbx, rcx
call fcn.18008c480
mov rcx, rbx
mov dword [rbx], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180010e37
mov eax, dword [rbx + 4]
cmp eax, 6
ja 0x180010d84
jne 0x180010e22
cmp dword [rbx + 8], 2
jb 0x180010e22
lea rcx, str.kernel32.dll
mov qword [rsp + 0x68], rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdi, rax
test rax, rax
je 0x180010e1d
mov edx, 1
mov rcx, rax
lea r8d, [rdx + 0xf]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x180010e1d
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x180010e1d
movups xmm0, xmmword [0x1800c4b30]
movups xmm1, xmmword [0x1800c4b40]
mov rcx, rax
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm1
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
test rax, rax
je 0x180010e1d
lea rcx, [rax + 6]
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x180010e1d
cmp word [rdi + 2], ax
jbe 0x180010e1d
movzx edx, word [rdi + 0x32]
movzx eax, word [rdi + 0x30]
movzx ecx, word [rdi + 0x36]
mov dword [rbx + 4], edx
mov dword [rbx + 8], eax
mov dword [rbx + 0xc], ecx
mov rdi, qword [rsp + 0x68]
mov al, 1
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180087ea0
add rsp, 0x50
pop rbx
ret
xor al, al
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180087ea0
add rsp, 0x50
pop rbx
ret
Function at 0x180011330
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xb8], rbx
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov ebp, r8d
mov r14, rdx
mov r15, rcx
xor r12d, r12d
mov ebx, r12d
mov qword [rsp + 0x48], rbx
or r13, 0xffffffffffffffff
cmp r8d, 0x3fe
jbe 0x1800113dd
lea ecx, [rbp + 2]
mov eax, 2
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.180087e84
mov r14, rax
mov rbx, rax
mov qword [rsp + 0x48], rax
mov rdx, rax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x1800113c9
cmp eax, ebp
ja 0x1800113c9
mov ecx, eax
mov word [rbx + rcx*2], r12w
lea ecx, [rax + 1]
mov word [rbx + rcx*2], r12w
mov ebp, eax
jmp 0x18001140c
test r14, r14
je 0x1800113d6
mov rcx, r14
call fcn.180088db0
xor al, al
jmp 0x1800114da
mov rax, rbp
add rax, rax
cmp rax, 0x800
jae 0x1800114d4
mov word [rax + rdx], r12w
lea ecx, [rbp + 1]
add rcx, rcx
cmp rcx, 0x800
jae 0x1800114ce
mov word [rcx + rdx], r12w
mov eax, r12d
mov edi, r12d
test ebp, ebp
je 0x1800114bd
mov rsi, r14
nop dword [rax]
cmp word [rsi], 0
jne 0x1800114af
cmp eax, edi
je 0x1800114af
lea rdx, [r14 + rax*2]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], r12
mov word [rsp + 0x20], r12w
cmp word [rdx], 0
jne 0x18001145f
mov r8, r12
jmp 0x18001146d
mov r8, r13
inc r8
cmp word [rdx + r8*2], 0
jne 0x180011462
lea rcx, [rsp + 0x20]
call fcn.180003940
nop
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.180002ef0
nop
cmp qword [rsp + 0x38], 8
jb 0x180011498
mov rcx, qword [rsp + 0x20]
call fcn.18008861c
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], r12
mov word [rsp + 0x20], r12w
lea eax, [rdi + 1]
inc edi
add rsi, 2
cmp edi, ebp
jb 0x180011420
test rbx, rbx
je 0x1800114ca
mov rcx, rbx
call fcn.180088db0
mov al, 1
jmp 0x1800114da
call fcn.180088fec
int3
call fcn.180088fec
nop
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180087ea0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x180011500
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rdi
sub rsp, 0x50
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rsi
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rcx
cmp qword [rcx + 0x18], 8
jb 0x180011535
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp eax, 0xffffffff
jne 0x1800115b2
xor esi, esi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x40], 7
mov qword [rsp + 0x38], rsi
mov word [rsp + 0x28], si
lea rdx, [rsp + 0x28]
mov rcx, rbx
call fcn.180011b10
test al, al
je 0x18001158b
lea rcx, [rsp + 0x28]
cmp qword [rsp + 0x40], 8
cmovae rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp qword [rsp + 0x40], 8
jb 0x18001159d
mov rcx, qword [rsp + 0x28]
call fcn.18008861c
mov qword [rsp + 0x40], 7
mov qword [rsp + 0x38], rsi
mov word [rsp + 0x28], si
mov eax, edi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.180087ea0
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret

Function at 0x1800115d0
Capabilities:
Create directory

Disassembly:
push rdi
sub rsp, 0x50
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rcx
cmp qword [rcx + 0x18], 8
jb 0x180011600
mov rcx, qword [rcx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x180011610
mov al, 1
jmp 0x18001168b
xor edi, edi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x40], 7
mov qword [rsp + 0x38], rdi
mov word [rsp + 0x28], di
lea rdx, [rsp + 0x28]
mov rcx, rbx
call fcn.180011b10
test al, al
je 0x180011661
lea rcx, [rsp + 0x28]
cmp qword [rsp + 0x40], 8
cmovae rcx, qword [rsp + 0x28]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x180011661
mov bl, 1
jmp 0x180011663
xor bl, bl
cmp qword [rsp + 0x40], 8
jb 0x180011675
mov rcx, qword [rsp + 0x28]
call fcn.18008861c
mov qword [rsp + 0x40], 7
mov qword [rsp + 0x38], rdi
mov word [rsp + 0x28], di
movzx eax, bl
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.180087ea0
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x1800116b0
Capabilities:
Get common file path

Disassembly:
push rdi
sub rsp, 0x670
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x688], rbx
mov rax, qword [0x1800fb008]
xor rax, rsp
mov qword [rsp + 0x660], rax
mov rdi, rcx
lea rax, [0x1800ff160]
mov qword [rsp + 0x28], rax
mov rcx, qword [0x1800ff160]
test rcx, rcx
je 0x1800116fe
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp qword [0x1800fcbf8], 0
je 0x18001173f
lea rdx, [0x1800fcbe8]
cmp rdi, rdx
je 0x180011724
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rcx, rdi
call fcn.1800032a0
nop
mov rcx, qword [0x1800ff160]
test rcx, rcx
je 0x180011736
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ebx, ebx
mov al, 1
jmp 0x180011862
xor ebx, ebx
mov word [rsp + 0x30], bx
xor edx, edx
mov r8d, 0x20a
lea rcx, [rsp + 0x32]
call fcn.18008c480
lea rdx, [rsp + 0x30]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18001184e
mov word [rsp + 0x23a], bx
mov word [rsp + 0x240], bx
xor edx, edx
mov r8d, 0x410
lea rcx, [rsp + 0x242]
call fcn.18008c480
mov r8d, 0x208
lea rdx, [rsp + 0x240]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [rax - 1]
cmp ecx, 0x207
ja 0x18001180a
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x180011804
mov word [rsp + rax + 0x240], bx
cmp word [rsp + 0x240], bx
jne 0x1800117e2
mov r8d, ebx
jmp 0x1800117fa
lea rax, [rsp + 0x240]
or r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], bx
jne 0x1800117f0
lea rdx, [rsp + 0x240]
jmp 0x18001182f
call fcn.180088fec
int3
cmp word [rsp + 0x30], bx
jne 0x180011816
mov r8, rbx
jmp 0x18001182a
lea rax, [rsp + 0x30]
or r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], bx
jne 0x180011820
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.180003940
nop
mov rcx, qword [0x1800ff160]
test rcx, rcx
je 0x18001184a
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
jmp 0x180011862
mov rcx, qword [0x1800ff160]
test rcx, rcx
je 0x180011860
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov qword [rsp + 0x28], rbx
mov rcx, qword [rsp + 0x660]
xor rcx, rsp
call fcn.180087ea0
mov rbx, qword [rsp + 0x688]
add rsp, 0x670
pop rdi
ret