joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180001020
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x330
mov rbx, rcx
cmp edx, 1
jne 0x180001170
xor r8d, r8d
mov edx, 0x96000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [0x18002aad8], rax
call fcn.18000cd10
mov rcx, rbx
mov qword [0x180029f68], rbx
mov dword [0x180029f60], 1
call fcn.18001ad38
mov edx, 0x288
lea rcx, [0x180023dd0]
mov r8d, 5
call fcn.18000cc58
xor r8d, r8d
mov qword [0x180029f58], rax
mov edx, 0x1d0
lea rcx, [0x180023f20]
call fcn.18000cc58
mov ecx, 0x113a
mov qword [0x180029f50], rax
call fcn.18000dae4
mov rcx, rax
mov qword [rsp + 0x358], rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea rcx, [rsp + 0x358]
cmp eax, 0xffffffff
je 0x1800010db
call fcn.18000da80
xor eax, eax
jmp 0x18000115f
call fcn.18000da80
xor ebx, ebx
mov edi, reloc.OLEAUT32.dll_SafeArrayLock
movzx eax, word [0x18002400c]
lea rcx, [rsp + 0x33]
mov word [rsp + 0x30], ax
xor edx, edx
mov al, byte [0x18002400e]
mov r8d, 0xfd
mov byte [rsp + 0x32], al
call sub.msvcrt.dll_memset
xor edx, edx
mov word [rsp + 0x130], bx
mov r8d, 0x1fe
lea rcx, [rsp + 0x132]
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x130]
mov dword [rsp + 0x28], 0xff
or r9d, 0xffffffff
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sub rdi, 1
jne 0x1800010e7
mov eax, 1
mov rbx, qword [rsp + 0x340]
add rsp, 0x330
pop rdi
ret
test edx, edx
jne 0x18000115a
mov rax, qword [0x180029f58]
mov ecx, 0xaa
call qword [rax + 0x178]
jmp 0x1800010d4
Function at 0x1800011b4
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
push rsi
push rdi
push r14
sub rsp, 0x40
mov rcx, qword [0x18002aad8]
xor ebx, ebx
test rcx, rcx
jne 0x1800011d3
mov edi, ebx
jmp 0x1800011e5
mov edx, 8
lea r8d, [rdx + 0x10]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
mov rcx, qword [0x180029fc0]
cmp word [rcx + 0x242], 0x3a
jne 0x18000122a
movzx eax, word [rcx + 0x240]
mov word [rsp + 0x20], ax
movzx eax, word [rcx + 0x242]
mov word [rsp + 0x22], ax
movzx eax, word [rcx + 0x244]
lea rcx, [rsp + 0x20]
mov word [rsp + 0x24], ax
mov word [rsp + 0x26], bx
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov qword [rdi], 2
lea r14, [rdi + 8]
call fcn.1800032f8
mov ecx, 0x78c
mov qword [r14], rax
call fcn.18000dae4
mov rcx, qword [0x180029fc0]
xor r8d, r8d
add rcx, 0x240
mov qword [rsp + 0x68], rax
mov rdx, rax
call fcn.18000d2dc
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x70], rax
mov rsi, rax
call fcn.18000da80
mov rax, qword [0x180029f58]
mov rcx, rsi
call qword [rax + 0x110]
cmp eax, 0xffffffff
je 0x1800012ba
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180015454
test rax, rax
jne 0x1800012a3
mov rax, rbx
jmp 0x1800012ab
mov rcx, rax
call fcn.18000f744
lea rsi, [rdi + 0x10]
mov dword [rdi], 3
mov qword [rsi], rax
jmp 0x1800012be
lea rsi, [rdi + 0x10]
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x70]
call fcn.18000c7c0
mov rcx, qword [r14]
test rcx, rcx
je 0x180001300
mov r8d, dword [rcx]
mov eax, ebx
test r8d, r8d
je 0x180001300
mov rdx, qword [rcx + 8]
mov ecx, eax
add rcx, rcx
cmp dword [rdx + rcx*8], 0x3b
je 0x1800012f9
inc eax
cmp eax, r8d
jb 0x1800012e5
jmp 0x180001300
cmp qword [rdx + rcx*8 + 8], rbx
jne 0x18000130e
call fcn.1800031cc
test eax, eax
je 0x18000130e
or ebx, 0xffffffff
jmp 0x180001316
mov rcx, rdi
call fcn.1800022e4
mov rcx, r14
call fcn.18000f860
mov rcx, rsi
call fcn.18000f860
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x1800013fc
Capabilities:
Set current directory

Disassembly:
push rbx
sub rsp, 0x60
mov ecx, 0xd29
call fcn.18000daa4
mov rcx, rax
mov qword [rsp + 0x70], rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea rax, [0x18002a9fc]
cmp rbx, rax
je 0x180001437
or rdx, 0xffffffffffffffff
lea rcx, [rsp + 0x70]
call fcn.18000c7c0
mov r8, qword [0x180029fc0]
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor edx, edx
xor ecx, ecx
mov r8d, dword [r8 + 0xac]
call fcn.18000ec4c
mov qword [0x18002aaf8], rax
test rax, rax
jne 0x18000146c
or eax, 0xffffffff
jmp 0x180001569
call fcn.180017358
mov ecx, 0x31
mov dword [rsp + 0x70], ebx
call fcn.18000f154
test eax, eax
jne 0x1800014bc
mov rax, qword [0x180029fc0]
cmp dword [rax + 0x218], 3
je 0x1800014bc
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea r8, [0x180003108]
mov rax, qword [0x180029f58]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], ebx
call qword [rax + 0xf0]
call fcn.180001630
mov dword [0x18002a9e0], eax
test eax, eax
je 0x18000152b
sub eax, 1
je 0x180001534
sub eax, 1
je 0x180001567
cmp eax, 1
jne 0x180001567
mov rax, qword [0x180029fc0]
lea rcx, [rsp + 0x30]
mov edx, dword [rax + 0xac]
add edx, 4
call fcn.1800106f0
lea rcx, [rsp + 0x30]
call fcn.180011098
mov rcx, qword [0x180029fc0]
mov edx, 0x1d4c0
mov ecx, dword [rcx + 0xac]
call fcn.180002ca0
mov qword [0x180029fa0], rax
call fcn.180001338
jmp 0x180001549
call fcn.1800011b4
test eax, eax
js 0x180001567
mov rax, qword [0x180029fc0]
cmp dword [rax + 0xa4], 1
je 0x180001549
call fcn.180017278
mov rax, qword [0x180029f58]
lea rdx, [0x18000118c]
mov ecx, 1
call qword [rax + 0x230]
call fcn.1800029a4
xor eax, eax
add rsp, 0x60
pop rbx
ret
Function at 0x180009148
Capabilities:
Create directory

Disassembly:
push rbp
push rbx
push rsi
push r14
push r15
lea rbp, [rsp - 0x9a0]
sub rsp, 0xaa0
and dword [rbp + 0x9d0], 0
lea eax, [rcx - 1]
mov r8, rdx
mov ebx, ecx
cmp eax, 1
jbe 0x18000917b
or eax, 0xffffffff
jmp 0x18000935f
lea rdx, [rbp + 0x9d0]
mov rcx, r8
call fcn.180016354
mov qword [rsp + 0x30], rax
mov rsi, rax
test rax, rax
jne 0x18000919f
lea eax, [rsi - 2]
jmp 0x18000935f
mov rcx, qword [0x180029fc0]
xor edx, edx
add rcx, 0xb0
je 0x1800091c2
cmp byte [rcx], dl
je 0x1800091c2
mov rax, rcx
inc rax
inc edx
cmp byte [rax], 0
jne 0x1800091b8
xor r8d, r8d
call fcn.180013f88
lea rdx, [rbp - 0x30]
lea ecx, [rbx + rax]
call fcn.18001b86c
mov r9d, SafeArrayGetDim
lea rax, [rbp - 0x30]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r8d, [r9 - 2]
lea ecx, [r9 - 0xa]
call fcn.18000cdc0
movsxd rcx, eax
lea rdx, [0x180024230]
mov eax, 0x2e
xor r8d, r8d
mov word [rsp + rcx*2 + 0x48], ax
mov rcx, qword [0x180029fc0]
add rcx, 0x458
call fcn.18000d2dc
xor r9d, r9d
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x50]
mov rcx, rax
lea rdx, [0x180024184]
mov rbx, rax
call fcn.18000d2dc
xor edx, edx
mov qword [rsp + 0x40], rax
mov rcx, rbx
mov r15, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rdx, qword [0x180029fc0]
mov r9b, 2
add rdx, 0xb0
mov r8d, 2
mov rcx, r15
call fcn.1800154f8
mov qword [rbp + 0x9e0], rax
mov r14, rax
test rax, rax
jne 0x180009289
lea ebx, [rax - 4]
jmp 0x18000931a
mov r8d, dword [rbp + 0x9d0]
mov rdx, rsi
mov rcx, rax
call fcn.1800158ec
test eax, eax
jns 0x1800092a6
mov ebx, 0xfffffffb
jmp 0x18000931a
lea rcx, [rbp + 0x9e0]
call fcn.180015618
mov rcx, qword [0x180029fc0]
lea r8, [rsp + 0x50]
add rcx, 0x458
lea rdx, [0x180024184]
xor r9d, r9d
call fcn.18000d2dc
mov rdx, rax
mov qword [rbp + 0x9e8], rax
mov rcx, r15
call fcn.18000de84
mov ebx, eax
lea rcx, [rbp + 0x9e8]
mov rdx, 0xfffffffffffffffe
sar ebx, 0x1f
call fcn.18000c7c0
and ebx, 0xfffffff9
jne 0x18000930f
mov ecx, 0x2deb8b96
call fcn.1800089e8
jmp 0x18000932b
test ebx, ebx
jns 0x18000932b
mov r14, qword [rbp + 0x9e0]
test r14, r14
je 0x18000932b
lea rcx, [rbp + 0x9e0]
call fcn.180015618
mov edx, dword [rbp + 0x9d0]
lea rcx, [rsp + 0x30]
call fcn.18000c7c0
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x38]
call fcn.18000c7c0
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x40]
call fcn.18000c7c0
mov eax, ebx
add rsp, 0xaa0
pop r15
pop r14
pop rsi
pop rbx
pop rbp
ret
Function at 0x18000cc58
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
mov r10d, r8d
lea r11, [0x180028470]
imul r9, r10, 0x21
xor ebx, ebx
mov dword [rsp + 0x60], 0xa235cb91
mov edi, edx
mov rsi, rcx
mov r8d, ebx
movzx eax, byte [r9 + r11]
test al, al
je 0x18000ccc5
lea r8, [rsp + 0x20]
mov edx, ebx
sub r9, r8
lea rcx, [rsp + 0x20]
add r11, r9
mov r8d, eax
mov r9d, eax
mov rax, rdx
inc rdx
and eax, 3
mov al, byte [rsp + rax + 0x60]
xor al, byte [r11 + rcx + 1]
mov byte [rcx], al
inc rcx
sub r9, 1
jne 0x18000cca8
mov byte [rsp + r8 + 0x20], bl
lea rcx, [rsp + 0x20]
cmp r10d, 5
jne 0x18000ccdd
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
jmp 0x18000cce6
mov rax, qword [0x180029f58]
call qword [rax]
test rax, rax
je 0x18000ccfb
mov r8, rax
mov edx, edi
mov rcx, rsi
call fcn.18000cbcc
mov rbx, rax
mov rsi, qword [rsp + 0x58]
mov rax, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret

Function at 0x18000d700
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r15
sub rsp, 0x90
lea rax, [rax - 0x78]
mov r10d, r9d
mov r9, qword [rsp + 0xd0]
mov r11, r8
mov qword [rsp + 0x28], rax
mov edi, edx
mov r12, rcx
xor ebx, ebx
mov dword [rax], ebx
mov r8d, r10d
mov eax, dword [rsp + 0xd8]
mov rdx, r11
xor ecx, ecx
mov dword [rsp + 0x20], eax
call fcn.180010ca0
mov qword [rsp + 0x38], rax
mov r15, rax
test rax, rax
jne 0x18000d76c
lea rax, [0x18002a9fc]
jmp 0x18000d860
mov ebp, dword [rsp + 0xe0]
mov esi, ebp
cmp ebp, edi
jae 0x18000d797
lea r8, [r12 + rbp]
xor edx, edx
mov eax, esi
div dword [rsp + 0x30]
mov al, byte [r8]
cmp byte [rdx + r15], al
je 0x18000d7d8
inc esi
inc r8
cmp esi, edi
jb 0x18000d77d
lea rax, [rsp + 0x40]
mov dword [rsp + 0x28], 0x22
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea r8, str.chickenfried
mov edx, 0x172
mov ecx, 0xdc
call qword [sym.imp.KERNEL32.dll_GetNumberFormatA]
test eax, eax
jne 0x18000d839
lea rax, [rsp + 0x40]
inc ebx
inc rax
cmp ebx, 0x14
jb 0x18000d7cc
jmp 0x18000d848
sub esi, ebp
je 0x18000d797
mov rcx, qword [0x18002aad8]
test rcx, rcx
je 0x18000d826
lea r8d, [rsi + 1]
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x18000d826
mov r8, rax
mov r9d, esi
xor edx, edx
mov eax, ebp
div dword [rsp + 0x30]
mov al, byte [rdx + r15]
xor al, byte [rbp + r12]
inc ebp
mov byte [r8], al
inc r8
sub r9, 1
jne 0x18000d805
jmp 0x18000d84f
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.18000c7c0
jmp 0x18000d760
lea rcx, [rsp + 0x40]
inc ebx
inc rcx
cmp ebx, 0x22
jb 0x18000d83e
lea rdi, [0x18002a9fc]
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.18000c7c0
mov rax, rdi
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r12
pop rdi
ret
Function at 0x18000db24
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 0x10], rdx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1d8]
sub rsp, 0x2b0
mov rdi, rdx
xor r8d, r8d
lea rdx, [0x180024390]
mov r14d, r9d
mov r13, rcx
call fcn.18000d2dc
xor ebx, ebx
mov qword [rsp + 0x58], rax
test rax, rax
je 0x18000dd1f
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rbp + 0x210], rax
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x18000dd0e
mov r12d, dword [rbp + 0x220]
mov r15d, dword [rbp + 0x218]
cmp word [rbp - 0x74], 0x2e
jne 0x18000dbca
movzx eax, word [rbp - 0x72]
test ax, ax
je 0x18000dce8
cmp ax, 0x2e
jne 0x18000dbca
cmp word [rbp - 0x70], bx
je 0x18000dce8
mov eax, dword [rsp + 0x60]
test al, 0x10
je 0x18000dbda
test r14b, 2
jne 0x18000dbe0
jmp 0x18000dc4f
test r14b, 4
je 0x18000dc4f
mov r15, qword [rbp + 0x208]
mov rsi, qword [rbp + 0x200]
mov rax, qword [0x180029fd0]
lea rcx, [rbp - 0x74]
mov rdx, qword [rdi]
call qword [rax + 0x30]
test eax, eax
je 0x18000dc29
mov r8, r15
lea rdx, [rsp + 0x60]
mov rcx, r13
call rsi
test eax, eax
je 0x18000dc34
test r12d, r12d
je 0x18000dc29
mov rax, qword [0x180029f58]
mov ecx, r12d
call qword [rax + 0x188]
inc ebx
add rdi, 8
cmp ebx, 1
jb 0x18000dbee
mov eax, dword [rsp + 0x60]
xor ebx, ebx
mov rsi, qword [rbp + 0x210]
mov r15d, dword [rbp + 0x218]
mov rdi, qword [rbp + 0x1e8]
test al, 0x10
je 0x18000dce8
test r14b, 1
je 0x18000dce8
xor r9d, r9d
lea r8, [rbp - 0x74]
lea rdx, [0x180024184]
mov rcx, r13
call fcn.18000d2dc
mov qword [rsp + 0x50], rax
mov rbx, rax
test rax, rax
je 0x18000dce6
test r15d, r15d
je 0x18000dc99
mov rax, qword [0x180029f58]
mov ecx, r15d
call qword [rax + 0x188]
mov rax, qword [rbp + 0x208]
mov r9d, r14d
mov dword [rsp + 0x40], r12d
mov r8d, 1
mov dword [rsp + 0x38], r15d
mov rdx, rdi
and qword [rsp + 0x30], 0
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x200]
mov qword [rsp + 0x20], rax
call fcn.18000db24
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x50]
call fcn.18000c7c0
xor ebx, ebx
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x18000dba6
mov rax, qword [0x180029f58]
mov rcx, rsi
call qword [rax + 0x108]
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x58]
call fcn.18000c7c0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x18000de84
Capabilities:
Move file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x180029f58]
xor r8d, r8d
mov rbp, rdx
mov rsi, rcx
xor edi, edi
call qword [rax + 0x240]
test eax, eax
jne 0x18000df6c
xor edx, edx
mov word [rsp + 0x30], di
mov r8d, 0x206
lea rcx, [rsp + 0x32]
call sub.msvcrt.dll_memset
mov ecx, 0x6de
call fcn.18000dae4
mov rcx, qword [0x180029fc0]
lea edx, [rdi + 1]
add rcx, 0x668
mov qword [rsp + 0x260], rax
mov r8d, 0xf4240
mov rbx, rax
call fcn.18001b9b4
mov r9, rbp
mov dword [rsp + 0x20], eax
mov r8, rbx
lea rcx, [rsp + 0x30]
mov edx, 0x103
call fcn.180010954
lea rcx, [rsp + 0x260]
call fcn.18000da80
lea rdx, [rsp + 0x30]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x18000df55
mov rax, qword [0x180029f58]
xor r8d, r8d
mov rdx, rbp
mov rcx, rsi
call qword [rax + 0x240]
test eax, eax
jne 0x18000df5a
or edi, 0xffffffff
jmp 0x18000df7c
mov rax, qword [0x180029f58]
mov rcx, rsi
call qword [rax + 0x238]
jmp 0x18000df7c
mov rdx, qword [0x180029f58]
mov rcx, rsi
call qword [rdx + 0x238]
lea r11, [rsp + 0x240]
mov eax, edi
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x18000df98
Capabilities:
Set file attributes

Disassembly:
push rbx
sub rsp, 0x260
mov edx, 0x80
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x200
call sub.msvcrt.dll_memset
mov r8d, 0x200
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.18001422c
mov rax, qword [0x180029f58]
mov rcx, rbx
call qword [rax + 0x238]
test eax, eax
je 0x18000dff2
mov eax, 1
jmp 0x18000e076
mov rcx, qword [0x180029fc0]
or r8d, 0xffffffff
add rcx, 0x668
mov edx, 0xf0000000
call fcn.18001b9b4
mov r9d, eax
lea r8, [0x180024398]
mov edx, 0x20
lea rcx, [rsp + 0x20]
call fcn.180010954
xor r9d, r9d
lea r8, [rsp + 0x20]
lea rdx, [0x18002436c]
mov rcx, rbx
call fcn.18000d2dc
mov qword [rsp + 0x278], rax
test rax, rax
je 0x18000e074
mov rdx, rax
mov rcx, rbx
call fcn.18000de84
mov rdx, 0xfffffffffffffffe
lea rcx, [rsp + 0x278]
mov ebx, eax
call fcn.18000c7c0
test ebx, ebx
jns 0x18000dfe8
xor eax, eax
add rsp, 0x260
pop rbx
ret

Function at 0x18000ebec
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
xor ebx, ebx
mov rcx, qword [0x18002aad8]
test rcx, rcx
jne 0x18000ec0b
mov eax, ebx
jmp 0x18000ec40
mov r8d, dword [rdi]
mov edx, 8
inc r8d
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000ec40
cmp dword [rdi], ebx
jbe 0x18000ec40
mov ecx, ebx
and ecx, 3
mov edx, ebx
inc ebx
mov cl, byte [rcx + rdi + 0x108]
xor cl, byte [rdx + rdi + 4]
mov byte [rdx + rax], cl
cmp ebx, dword [rdi]
jb 0x18000ec25
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18001236c
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rbx, rcx
xor edi, edi
xor ecx, ecx
mov qword [rsp + 0x70], rdi
xor edx, edx
mov qword [rsp + 0x68], rdi
call qword [sym.imp.ole32.dll_CoInitializeEx]
mov qword [rsp + 0x40], rdi
xor r9d, r9d
mov dword [rsp + 0x38], edi
xor r8d, r8d
mov qword [rsp + 0x30], rdi
or edx, 0xffffffff
mov dword [rsp + 0x28], 3
xor ecx, ecx
mov dword [rsp + 0x20], edi
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
lea rax, [rsp + 0x70]
xor edx, edx
lea r9, [0x180023db0]
mov qword [rsp + 0x20], rax
lea r8d, [rdi + 1]
lea rcx, [0x180023dc0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x180012487
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x40], rdx
xor r9d, r9d
mov qword [rsp + 0x38], rdi
xor r8d, r8d
mov qword [rsp + 0x30], rdi
mov rdx, rax
mov r10, qword [rcx]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
call qword [r10 + SafeArrayPutElement]
test eax, eax
js 0x180012487
mov rcx, qword [rsp + 0x68]
lea edx, [rdi + 0xa]
mov dword [rsp + 0x38], edi
xor r9d, r9d
mov qword [rsp + 0x30], rdi
xor r8d, r8d
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x180012487
mov rcx, qword [0x18002aad8]
test rcx, rcx
je 0x180012487
lea edx, [rdi + 8]
lea r8d, [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x180012487
mov rcx, qword [rsp + 0x70]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
jmp 0x1800124a9
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x180012497
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1800124a7
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x1800161f4
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov ebx, edx
mov eax, 0xaaaaaaab
mul edx
mov rbp, rcx
mov rcx, qword [0x18002aad8]
shr edx, 1
lea edi, [rdx*4 + 5]
test rcx, rcx
je 0x18001633f
lea r8d, [rdi + 1]
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9, rax
test rax, rax
je 0x18001633f
xor r11d, r11d
xor edx, edx
test ebx, ebx
je 0x180016331
lea esi, [rdi - 4]
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp edx, esi
jae 0x180016331
xor r10d, r10d
xor r8d, r8d
mov cl, byte [r11 + rbp]
mov byte [rsp + r8 + 0x48], cl
cmp r11d, ebx
jae 0x18001627e
inc r10d
jmp 0x180016284
mov byte [rsp + r8 + 0x48], 0
inc r11d
inc r8
cmp r8, 3
jl 0x18001626b
test r10d, r10d
je 0x180016328
movzx ecx, byte [rsp + 0x48]
movzx eax, byte [rsp + 0x48]
and ecx, 3
movzx r8d, byte [rsp + 0x49]
shr rax, 2
shl ecx, 4
mov al, byte [rax + r14]
mov byte [rsp + 0x50], al
mov eax, r8d
shr rax, 4
or rcx, rax
mov al, byte [rcx + r14]
mov byte [rsp + 0x51], al
cmp r10d, 1
jle 0x180016306
movzx eax, byte [rsp + 0x4a]
and r8d, 0xf
shr rax, 6
shl r8d, 2
mov ecx, r8d
or rcx, rax
mov al, byte [rcx + r14]
mov byte [rsp + 0x52], al
cmp r10d, 2
jle 0x18001630b
movzx eax, byte [rsp + 0x4a]
and eax, 0x3f
mov cl, byte [rax + r14]
jmp 0x18001630d
mov byte [rsp + 0x52], 0x3d
mov cl, 0x3d
mov byte [rsp + 0x53], cl
xor r8d, r8d
mov al, byte [rsp + r8 + 0x50]
inc r8
mov byte [rdx + r9], al
inc edx
cmp r8, 4
jl 0x180016314
cmp r11d, ebx
jb 0x18001625d
cmp edx, edi
jae 0x18001633a
mov byte [rdx + r9], 0
mov rax, r9
jmp 0x180016341
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret

Function at 0x180016bb8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rbx, r8
movsxd rsi, edx
mov rdi, rcx
lea rax, str.business.doc
xor r9d, r9d
inc rax
inc r9d
cmp byte [rax], 0
jne 0x180016bda
mov eax, SafeArrayGetDim
mov byte [rsp + 0x2f], 0
cmp r9d, eax
cmova r9d, eax
xor ecx, ecx
test r9d, r9d
je 0x180016c11
lea rdx, [rsp + 0x20]
lea eax, [rcx + 0x41]
inc ecx
mov byte [rdx], al
inc rdx
cmp ecx, r9d
jb 0x180016c02
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r9b, byte [rbx + 0x100]
mov r11, rsi
mov r10b, byte [rbx + 0x101]
test esi, esi
jle 0x180016c62
inc r9b
movzx r8d, r9b
mov dl, byte [r8 + rbx]
add r10b, dl
movzx ecx, r10b
mov al, byte [rcx + rbx]
mov byte [r8 + rbx], al
mov byte [rcx + rbx], dl
add dl, byte [r8 + rbx]
movzx eax, dl
mov cl, byte [rax + rbx]
xor byte [rdi], cl
inc rdi
sub r11, 1
jne 0x180016c31
mov rsi, qword [rsp + 0x48]
mov byte [rbx + 0x100], r9b
mov byte [rbx + 0x101], r10b
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x180016d94
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x140
mov r8, rcx
lea r9, [rsp]
add rcx, 0x1d
mov r10d, reloc.OLEAUT32.dll_SafeArrayGetDim
sub r9, r8
movzx eax, byte [rcx]
movzx edx, byte [rcx - 1]
lea rcx, [rcx + 4]
shl edx, 8
or edx, eax
movzx eax, byte [rcx - 3]
shl edx, 8
or edx, eax
movzx eax, byte [rcx - 2]
shl edx, 8
or edx, eax
mov dword [r9 + rcx - 0x21], edx
sub r10, 1
jne 0x180016dc7
lea rcx, [rsp + 8]
lea edx, [r10 + 0x40]
mov eax, dword [rcx + 0x2c]
xor eax, dword [rcx + 0x18]
xor eax, dword [rcx - 8]
xor eax, dword [rcx]
lea rcx, [rcx + 4]
ror eax, 0x1f
mov dword [rcx + 0x34], eax
sub rdx, 1
jne 0x180016dfd
mov r15d, dword [r8]
lea esi, [rdx + 0x14]
mov r12d, dword [r8 + 4]
mov r14d, r15d
mov r13d, dword [r8 + 8]
mov r10d, r12d
mov ebx, dword [r8 + 0xc]
mov r9d, r13d
mov edi, dword [r8 + 0x10]
xor ebp, ebp
mov eax, r9d
lea r11d, [rdi + 0x5a827999]
and eax, r10d
mov ecx, r10d
not ecx
mov edx, r14d
and ecx, ebx
ror edx, 0x1b
or ecx, eax
mov edi, ebx
mov ebx, r9d
add edx, ecx
add edx, dword [rsp + rbp*4]
mov r9d, r10d
shr r10d, 2
add r11d, edx
shl r9d, 0x1e
inc rbp
or r9d, r10d
mov r10d, r14d
mov r14d, r11d
cmp rbp, rsi
jl 0x180016e39
mov ebp, 0x28
ror r11d, 0x1b
add edi, 0x6ed9eba1
add r11d, dword [rsp + rsi*4]
mov ecx, ebx
xor ecx, r9d
add r11d, edi
xor ecx, r10d
mov edi, ebx
mov ebx, r9d
add r11d, ecx
mov r9d, r10d
inc rsi
shr r10d, 2
shl r9d, 0x1e
or r9d, r10d
mov r10d, r14d
mov r14d, r11d
cmp rsi, rbp
jl 0x180016e83
mov edx, 0x3c
mov ecx, r9d
ror r11d, 0x1b
or ecx, r10d
mov eax, r9d
and ecx, ebx
and eax, r10d
add edi, 0x8f1bbcdc
or ecx, eax
add ecx, dword [rsp + rbp*4]
add r11d, edi
add r11d, ecx
mov edi, ebx
mov ebx, r9d
inc rbp
mov r9d, r10d
shr r10d, 2
shl r9d, 0x1e
or r9d, r10d
mov r10d, r14d
mov r14d, r11d
cmp rbp, rdx
jl 0x180016ec5
mov eax, dword [rsp + rdx*4]
add edi, 0xca62c1d6
ror r11d, 0x1b
mov ecx, ebx
xor ecx, r9d
add r11d, edi
xor ecx, r10d
mov edi, ebx
mov ebx, r9d
add eax, ecx
mov r9d, r10d
add r11d, eax
shr r10d, 2
inc rdx
shl r9d, 0x1e
or r9d, r10d
mov r10d, r14d
mov r14d, r11d
cmp rdx, 0x50
jl 0x180016f09
add dword [r8 + 0xc], ebx
lea eax, [r15 + r11]
add dword [r8 + 0x10], edi
lea r11, [rsp + 0x140]
and dword [r8 + 0x5c], 0
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov dword [r8], eax
lea eax, [r12 + r10]
mov dword [r8 + 4], eax
lea eax, [r9 + r13]
mov dword [r8 + 8], eax
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret