joyce8/EMBER2024-capa huggingface dataset:
Function at 0x444a40
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x444baa
sub rsp, 0x20
mov qword [rsp + 0x18], rbp
lea rbp, [rsp + 0x18]
mov ecx, dword [rax + 0x190]
mov edx, dword [rax + 0x194]
mov rsi, qword [rax + 0x998]
mov edi, dword [rax + 0x194]
cmp edi, edx
jne 0x444a58
cmp edx, ecx
jne 0x444b98
nop dword [rax]
test rsi, rsi
jne 0x444b98
mov qword [rsp + 0x28], rax
test rbx, rbx
jne 0x444ab4
nop
call fcn.00466180
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rbx, qword [rsp]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x10], rbx
call fcn.00444940
mov rcx, qword [0x00671d18]
mov rdx, qword [0x00671d10]
mov rbx, qword [rsp + 0x28]
mov esi, dword [rbx]
mov edi, esi
sar esi, 0x1f
shr esi, 0x1b
add esi, edi
mov r8d, esi
and esi, 0xffffffe0
sub edi, esi
test edi, edi
jl 0x444b93
cmp edi, 0x20
sbb esi, esi
sar r8d, 5
mov rax, rcx
mov ecx, edi
mov r9d, 1
shl r9d, cl
and r9d, esi
movsxd rsi, r8d
cmp rax, rsi
jbe 0x444b88
lea rcx, [rdx + rsi*4]
lock or dword [rcx], r9d
mov rcx, qword [0x006729f0]
mov qword [rbx + 8], rcx
nop
mov rcx, rbx
mov qword [0x006729f0], rbx
nop
mov edx, 1
lea rsi, [0x006729f8]
lock xadd dword [rsi], edx
mov rdx, qword [rcx + 0x1220]
shr rdx, 0x3d
test dl, dl
jne 0x444b77
nop
nop
mov rax, qword [rsp + 0x10]
movabs rdx, 0x1fffffffffffffff
and rdx, rax
bts rdx, 0x3f
xchg qword [rcx + 0x1220], rdx
mov rbp, qword [rsp + 0x18]
add rsp, 0x20
ret
lea rax, [0x0056f7d4]
mov ebx, 0x28
call fcn.00436220
mov rcx, rax
mov rax, rsi
call fcn.004647c0
call fcn.004346e0
lea rax, [0x0056e2db]
mov ebx, 0x23
call fcn.00436220
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462160
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00444a40
Function at 0x4518e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x18
mov qword [rsp + 0x10], rbp
lea rbp, [rsp + 0x10]
mov qword [rsp + 0x20], rax
test rbx, rbx
jbe 0x451a58
movzx edx, byte [rax]
nop
test edx, edx
jne 0x45191c
test r8b, r8b
jne 0x45191c
xor eax, eax
xor ebx, ebx
mov rcx, rbx
xor edi, edi
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
bt edx, 7
jae 0x45192f
xor edx, edx
xor r8d, r8d
xor r9d, r9d
jmp 0x451a18
mov r8d, 1
mov r9d, edx
and edx, 1
neg edx
shr r9d, 1
xor edx, r9d
add dword [rsi], edx
cmp rbx, r8
jb 0x451a06
sub rbx, r8
sub rcx, r8
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and r8, rcx
lea rsi, [rax + r8]
test rbx, rbx
jbe 0x4519fc
movzx r8d, byte [rax + r8]
bt r8d, 7
jae 0x451983
xor eax, eax
xor ecx, ecx
xor r8d, r8d
jmp 0x4519c6
mov eax, 1
cmp rax, rbx
ja 0x4519b5
add qword [rdi], r8
sub rdx, rax
sub rbx, rax
mov rcx, rdx
neg rdx
sar rdx, 0x3f
and rax, rdx
add rax, rsi
mov edi, 1
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
mov rcx, rbx
call fcn.00464880
lea r8d, [rcx + 7]
mov ecx, eax
mov eax, r10d
cmp rax, rbx
jae 0x4519f4
movzx r9d, byte [rax + rsi]
lea r10d, [rax + 1]
mov r11d, r9d
and r9d, 0x7f
mov eax, ecx
mov ecx, r8d
shl r9d, cl
or eax, r9d
test r11b, 0x80
jne 0x4519bd
mov r8d, eax
mov eax, r10d
jmp 0x451988
mov rcx, rbx
call fcn.004647c0
xor eax, eax
mov rcx, rax
call fcn.004647c0
mov eax, r8d
mov rcx, rbx
call fcn.00464880
lea r9d, [rcx + 7]
mov rcx, r12
cmp rbx, rdx
jbe 0x451a4e
movzx r10d, byte [rdx + rax]
inc edx
mov r11d, r10d
and r10d, 0x7f
mov r12, rcx
mov ecx, r9d
shl r10d, cl
or r8d, r10d
test r11b, 0x80
jne 0x451a11
mov rcx, r12
mov r9d, edx
mov edx, r8d
mov r8d, r9d
jmp 0x451935
mov eax, edx
mov rcx, rbx
call fcn.004647c0
xor eax, eax
mov rcx, rax
nop dword [rax]
call fcn.004647c0
nop
int3
Function at 0x459460
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x459519
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
mov qword [rsp + 0x70], rbx
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 rdx, [0x00459560]
mov qword [rsp + 0x10], rdx
lea rdx, [rsp + 8]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x28], rdx
mov rdx, r14
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call fcn.00462020
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 8]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00462160
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00459460
Function at 0x464200
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4030ef
sub rsp, 0x20
mov qword [rsp + 0x18], rbp
lea rbp, [rsp + 0x18]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
mov rax, rdx
nop
call fcn.00409a40
mov rbp, qword [rsp + 0x18]
add rsp, 0x20
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462160
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x4030c0
cmp byte [0x006c5714], 0
je 0x464215
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp 0x461260
jmp 0x4030c0

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

Disassembly:
mov eax, dword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x006c5ac0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d124b
mul rcx
nop
nop
xor rax, rdx
ret
cmp byte [0x006c5714], 0
je 0x464255
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x006c5e00]
aesenc xmm0, xmmword [0x006c5e10]
aesenc xmm0, xmmword [0x006c5e20]
movq rax, xmm0
ret
jmp 0x409c40

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

Disassembly:
mov rax, qword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x006c5ac0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d1247
mul rcx
nop
nop
xor rax, rdx
ret
cmp byte [0x006c5714], 0
je 0x464296
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x006c5e00]
aesenc xmm0, xmmword [0x006c5e10]
aesenc xmm0, xmmword [0x006c5e20]
movq rax, xmm0
ret
jmp 0x409ca0

Function at 0x465ca0
Capabilities:
Write file on windows

Disassembly:
sub rsp, 0x30
mov rcx, 0xfffffffffffffff4
mov qword [rsp], rcx
mov rax, qword [sym.imp.kernel32.dll_GetStdHandle]
call rax
mov rcx, rax
mov qword [rsp], rcx
lea rdx, [0x006c5d80]
mov qword [rsp + 8], rdx
lea r8d, [0x006c5730]
mov qword [rsp + 0x10], r8
lea r9, [rsp + 0x28]
mov qword [r9], 0
mov qword [rsp + 0x18], r9
mov qword [rsp + 0x20], 0
mov rax, qword [sym.imp.kernel32.dll_WriteFile]
call rax
call fcn.00464140
add rsp, 0x30
ret

Function at 0x4661e0
Capabilities:
Allocate thread local storage

Disassembly:
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 0x466210
mov rcx, 0x28
jmp 0x46621b
shl rcx, 3
add rcx, 0x1480
mov qword [0x006c5910], rcx
ret
Function at 0x483da0
Capabilities:
Hash data using fnv

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x483feb
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x78], rbp
lea rbp, [rsp + 0x78]
mov ebx, dword [rax + 0x2c]
nop dword [rax + rax]
test ebx, ebx
jne 0x483e4c
mov qword [rsp + 0x88], rax
lea rbx, [0x0055fd60]
mov rcx, rax
lea rax, [0x00671e60]
call fcn.004772c0
test cl, cl
jne 0x483e31
mov rax, qword [rsp + 0x88]
call fcn.00481ea0
mov ecx, 1
mov rdi, rax
mov rsi, rbx
lea rax, [rsp + 0x30]
lea rbx, [0x0059c7f0]
call fcn.0044ddc0
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x28], rbx
nop dword [rax]
call fcn.00485100
mov rcx, qword [rsp + 0x88]
xor edx, edx
jmp 0x483e6d
lea rdx, [0x0055faa0]
cmp rax, rdx
jne 0x483e5b
test byte [rbx], al
mov rax, rbx
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
call fcn.0045fe00
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov rbx, rdx
lea rcx, [0x0053e860]
call fcn.0040a7e0
inc rdx
cmp rbx, rdx
jle 0x483eb8
mov rsi, qword [rax + rdx*8]
cmp qword [rsi + 0x30], rcx
jne 0x483e6a
lea rax, [0x00671e60]
lea rbx, [0x0055fd60]
lea rdi, [0x0055faa0]
call fcn.00477480
lea rdx, [0x0055faa0]
nop dword [rax]
cmp rax, rdx
jne 0x483fdb
test byte [rbx], al
mov rax, rbx
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
lea rcx, [0x00537d00]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x58], rcx
lea rax, [0x00549280]
nop
call fcn.0040d5c0
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x58]
test byte [rcx], al
cmp dword [0x006c5a20], 0
jne 0x483f1a
mov rdx, qword [rcx]
mov qword [rax], rdx
movups xmm0, xmmword [rcx + 8]
movups xmmword [rax + 8], xmm0
movups xmm0, xmmword [rcx + 0x18]
movups xmmword [rax + 0x18], xmm0
movups xmm0, xmmword [rcx + 0x28]
movups xmmword [rax + 0x28], xmm0
jmp 0x483f29
mov rbx, rax
lea rax, [0x00549280]
call fcn.004134a0
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x28]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8d, esi
nop dword [rax]
call fcn.00481960
call fcn.0045fec0
mov rsi, qword [rsp + 0x60]
mov dword [rsi + 0x28], eax
mov dword [rsi + 0x2c], 0
mov rcx, qword [rsp + 0x88]
mov edx, dword [rcx + 0x10]
xor eax, eax
jmp 0x483f76
imul edx, edx, 0x1000193
xor edx, 0x2a
mov eax, 1
cmp rax, 1
jl 0x483f68
mov dword [rsi + 0x10], edx
cmp dword [0x006c5a20], 0
jne 0x483f8e
mov qword [rsi + 0x30], rcx
jmp 0x483f97
lea rdi, [rsi + 0x30]
call fcn.00464420
lea rax, [0x00671e60]
lea rbx, [0x0055fd60]
lea rdi, [0x0055faa0]
call fcn.00477480
lea rdx, [0x0055faa0]
cmp rax, rdx
jne 0x483fcc
test byte [rbx], al
mov rax, rbx
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov rbx, rdx
lea rcx, [0x0053e860]
call fcn.0040a7e0
mov rbx, rdx
lea rcx, [0x0053e860]
call fcn.0040a7e0
nop
mov qword [rsp + 8], rax
call fcn.00462160
mov rax, qword [rsp + 8]
jmp fcn.00483da0
Function at 0x4e8120
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4e827b
sub rsp, 0x70
mov qword [rsp + 0x68], rbp
lea rbp, [rsp + 0x68]
movups xmmword [rsp + 0x40], xmm15
mov qword [rsp + 0x30], 0
mov rax, qword [0x00670b68]
call fcn.004ca5a0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
movups xmmword [rsp + 0x50], xmm15
mov qword [rsp + 0x60], 0
lea rcx, [0x004e82a0]
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x58], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x60], rcx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x2b
call fcn.00402f20
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x4e823b
mov rdx, qword [rsp + 0x28]
cmp rdx, rcx
jb 0x4e8275
mov qword [rsp + 0x20], rcx
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov rbx, rcx
lea rdx, [rsp + 0x50]
call rsi
mov rax, qword [rsp + 0x20]
lea rcx, [rax + 1]
mov rbx, qword [rsp + 0x28]
cmp rbx, rcx
jb 0x4e826a
mov rsi, qword [rsp + 0x50]
sub rbx, rax
dec rbx
mov rdi, rbx
neg rbx
sar rbx, 0x3f
and rcx, rbx
mov r8, qword [rsp + 0x38]
lea rax, [r8 + rcx]
mov rbx, rdi
lea rdx, [rsp + 0x50]
nop
call rsi
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
lea rdx, [rsp + 0x50]
call rcx
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
mov rax, rcx
mov rcx, rbx
call fcn.00464880
call fcn.00464800
nop
nop dword [rax + rax]
call fcn.00462160
jmp fcn.004e8120
Function at 0x502ca0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x502f01
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
test rax, rax
je 0x502ee5
mov qword [rsp + 0xb8], rax
mov rbx, qword [rax + 8]
mov rdx, qword [rax]
mov rcx, qword [rax + 0x10]
test rbx, rbx
jne 0x502ced
xor ebx, ebx
xor ecx, ecx
jmp 0x502d00
mov rax, rdx
call fcn.004f4e00
mov rcx, rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x48], rbx
cmp qword [rax + 0x28], 0
je 0x502e18
mov rcx, qword [rax + 0x18]
mov rax, rcx
nop
call fcn.0047db40
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x58], rbx
mov rcx, qword [rsp + 0xb8]
mov r8, qword [rcx + 0x20]
mov r9, qword [rcx + 0x28]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x0059c7b8]
mov esi, 1
lea rax, [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
call fcn.0044de60
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x3a
call fcn.00402f20
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0
jl 0x502ddb
xor eax, eax
lea rbx, [0x005650c4]
mov ecx, 1
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x60]
lea r8, [0x00565140]
mov r9d, 2
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0x58]
call fcn.0044df40
jmp 0x502e08
xor eax, eax
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
lea rdi, [0x0059c838]
mov esi, 1
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x58]
call fcn.0044de60
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rax, qword [rax + 0x18]
nop dword [rax]
call fcn.0047db40
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x50], rbx
mov rcx, qword [rsp + 0x88]
mov qword [rsp], rcx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 8], rdx
mov byte [rsp + 0x10], 0x3a
call fcn.00402f20
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0
jl 0x502ea8
xor eax, eax
lea rbx, [0x005650c4]
mov ecx, 1
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x48]
lea r8, [0x00565140]
mov r9d, 2
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x50]
call fcn.0044df40
jmp 0x502ed5
xor eax, eax
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x0059c838]
mov esi, 1
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x50]
call fcn.0044de60
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rax, [0x005654e7]
mov ebx, 5
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov qword [rsp + 8], rax
call fcn.00462160
mov rax, qword [rsp + 8]
jmp fcn.00502ca0
Function at 0x51af20
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x51b137
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x58], rax
add qword [rax + 0x58], rcx
mov rdx, qword [rax + 0x50]
test rdx, rdx
jle 0x51b04e
nop dword [rax + rax]
cmp rdx, 0x40
ja 0x51b129
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x60], rbx
lea rsi, [rdx - 0x40]
mov r8, rsi
neg rsi
cmp rcx, rsi
cmovl rsi, rcx
mov qword [rsp + 0x28], rsi
sar r8, 0x3f
and r8, rdx
lea rdx, [rax + r8]
lea rdx, [rdx + 0x10]
cmp rbx, rdx
je 0x51afc2
mov rax, rdx
mov rcx, rsi
call fcn.00465160
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rax + 0x50]
add rdx, rsi
mov qword [rax + 0x50], rdx
cmp rdx, 0x40
jne 0x51b02a
mov qword [rsp], rax
lea rcx, [rax + 0x10]
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], 0x40
mov qword [rsp + 0x18], 0x40
call fcn.0051b3c0
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x58]
mov qword [rax + 0x50], 0
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x70]
cmp rcx, rsi
jb 0x51b121
sub rdi, rsi
mov rdx, rcx
sub rcx, rsi
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
add rbx, rsi
jmp 0x51b054
mov rdx, rcx
mov r8, rdi
cmp rcx, 0x40
jl 0x51b0d1
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x40], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
and rcx, 0xffffffffffffffc0
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], r8
call fcn.0051b3c0
xorps xmm15, xmm15
mov r14, qword [0x006c5910]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x38]
mov rdx, rax
sub rax, rcx
sar rax, 0x3f
mov rcx, qword [rsp + 0x30]
and rax, rcx
and rax, 0xffffffffffffffc0
mov rbx, qword [rsp + 0x40]
add rbx, rax
sub rcx, rdx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
test rcx, rcx
je 0x51b10f
cmp rcx, 0x40
mov esi, 0x40
cmovl rsi, rcx
lea rdi, [rax + 0x10]
cmp rbx, rdi
je 0x51b10b
mov qword [rsp + 0x38], rsi
mov rax, rdi
mov rcx, rsi
call fcn.00465160
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x38]
mov qword [rax + 0x50], rsi
mov rax, rdx
xor ebx, ebx
xor ecx, ecx
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
nop
ret
mov rax, rsi
call fcn.00464880
mov rax, rdx
mov ecx, 0x40
call fcn.00464880
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00462160
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0051af20
Function at 0x140006bf0
Capabilities:
Access peb ldr_data
Encode data using xor
Get kernel32 base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x38
cmp byte [0x1401bdc28], 0
je 0x140006c04
xor al, al
add rsp, 0x38
ret
mov rax, qword gs:[0x60]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rdi
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x30], r14
mov rax, qword [rax + 0x10]
nop dword [rax]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov esi, dword [rcx + rbx + 0x88]
add rsi, rbx
cmp rsi, rbx
je 0x140006cbd
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140006cbd
mov r14d, dword [rsi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r11d
mov r10d, 0x45de5a33
lea rcx, [r14 + r11*4]
mov ecx, dword [rcx + rbx]
add rcx, rbx
movzx r9d, byte [rcx]
inc rcx
test r9b, r9b
je 0x140006cb8
nop
movsx edx, r9b
lea rcx, [rcx + 1]
sub r9b, 0x41
mov r8d, edx
or r8d, 0x20
cmp r9b, 0x19
movzx r9d, byte [rcx - 1]
cmova r8d, edx
xor r8d, r10d
imul r10d, r8d, 0x1000193
test r9b, r9b
jne 0x140006c80
cmp r10d, 0x562534cb
je 0x140006cc5
test r11d, r11d
jne 0x140006c60
mov rax, qword [rax]
jmp 0x140006c30
mov ecx, dword [rsi + 0x24]
lea r8, [0x140004260]
add rcx, rbx
xor r9d, r9d
movzx edx, word [rcx + r11*2]
mov ecx, dword [rsi + 0x1c]
add rcx, rbx
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
mov qword [rsp + 0x28], rcx
add rax, rbx
xor edx, edx
mov dword [rsp + 0x20], ecx
call rax
mov r14, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov byte [0x1401bdc28], 1
add rsp, 0x38
ret
Function at 0x14000d520
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
movsd xmm2, qword [0x1400f91d0]
mov r9, rcx
movsd xmm4, qword [0x1400f9230]
xorps xmm3, xmm3
xorps xmm0, xmm0
mov edi, 2
xor esi, esi
nop
mov edx, dword [r9]
cmp edx, 0x270
jne 0x14000d5b1
lea r8, [r9 + 8]
mov r10d, edx
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x14000d570
mov edx, dword [r9]
jmp 0x14000d695
cmp edx, 0x4e0
jb 0x14000d695
lea r10, [r9 + 0x9c4]
mov r11d, 0xe3
mov ebx, dword [r10]
nop dword [rax]
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
mov edx, eax
xor edx, ebx
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14000d5d0
lea r10, [r9 + 0xd50]
mov r11d, 0x18c
mov ebx, dword [r10]
nop dword [rax]
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
mov edx, eax
xor edx, ebx
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14000d620
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov edx, esi
mov dword [r9 + 0x9c0], ecx
mov dword [r9], esi
mov eax, edx
xorps xmm1, xmm1
mov ecx, dword [r9 + rax*4 + 4]
lea eax, [rdx + 1]
mov dword [r9], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [r9 + 0x1384]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
cvtsi2sd xmm1, rax
subsd xmm1, xmm3
mulsd xmm1, xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm1
sub rdi, 1
jne 0x14000d550
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
divsd xmm0, xmm2
ret
Function at 0x14000da30
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1468
call fcn.1400f31f0
sub rsp, rax
movaps xmmword [rsp + 0x1450], xmm6
movaps xmmword [rsp + 0x1440], xmm7
movaps xmmword [rsp + 0x1430], xmm8
movaps xmmword [rsp + 0x1420], xmm9
movaps xmmword [rsp + 0x1410], xmm10
movaps xmmword [rsp + 0x1400], xmm11
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x13f0], rax
mov rax, qword [0x1401bce10]
movaps xmm8, xmm1
movaps xmm10, xmm0
mov qword [rsp + 0x30], r8
xorps xmm9, xmm9
xorps xmm7, xmm7
xorps xmm6, xmm6
movss xmm11, dword [rax + 0x20]
addss xmm11, dword [0x1400f91e0]
call sub.msvcp140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x64], eax
mov edx, 1
mov dword [rsp + 0x13e4], 0xffffffff
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x64], eax
inc rdx
cmp rdx, 0x270
jb 0x14000dad0
movaps xmm0, xmmword [0x1400f9340]
movss xmm2, dword [rsp + 0x30]
ucomiss xmm2, xmm9
mov dword [rsp + 0x60], 0x270
mov byte [rsp + 0x48], 0
movss xmm3, dword [0x1400f9380]
movups xmmword [rsp + 0x38], xmm0
xorps xmm0, xmm0
movsd qword [rsp + 0x50], xmm0
jp 0x14000db27
je 0x14000db79
comiss xmm2, xmm10
jbe 0x14000db57
movaps xmm7, xmm10
movaps xmm1, xmm10
subss xmm7, xmm2
movaps xmm0, xmm10
addss xmm0, xmm10
xorps xmm7, xmm3
divss xmm7, xmm11
addss xmm1, xmm7
comiss xmm1, xmm0
jbe 0x14000db57
movaps xmm7, xmm9
comiss xmm10, xmm2
jbe 0x14000db79
movaps xmm7, xmm2
subss xmm7, xmm10
divss xmm7, xmm11
addss xmm10, xmm7
comiss xmm9, xmm10
jbe 0x14000db79
movaps xmm7, xmm9
movss xmm2, dword [rsp + 0x34]
ucomiss xmm2, xmm9
jp 0x14000db87
je 0x14000dbd9
comiss xmm2, xmm8
jbe 0x14000dbb7
movaps xmm6, xmm8
movaps xmm1, xmm8
subss xmm6, xmm2
movaps xmm0, xmm8
addss xmm0, xmm8
xorps xmm6, xmm3
divss xmm6, xmm11
addss xmm1, xmm6
comiss xmm1, xmm0
jbe 0x14000dbb7
movaps xmm6, xmm9
comiss xmm8, xmm2
jbe 0x14000dbd9
movaps xmm6, xmm2
subss xmm6, xmm8
divss xmm6, xmm11
addss xmm8, xmm6
comiss xmm9, xmm8
jbe 0x14000dbd9
movaps xmm6, xmm9
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x38]
call fcn.14000c7c0
xorps xmm1, xmm1
lea rdx, [rsp + 0x60]
cvtss2sd xmm1, xmm7
lea rcx, [rsp + 0x38]
xorps xmm7, xmm7
addsd xmm0, xmm1
cvtsd2ss xmm7, xmm0
call fcn.14000c7c0
mov rcx, qword [0x1401bce10]
xorps xmm1, xmm1
mov ecx, dword [rcx + 0x4c]
cvtss2sd xmm1, xmm6
xorps xmm6, xmm6
addsd xmm0, xmm1
cvtsd2ss xmm6, xmm0
call qword [sym.imp.kernel32.dll_Sleep]
addss xmm6, xmm9
mov dword [rsp + 0x20], 0
addss xmm7, xmm9
lea rdx, [0x140013b10]
lea rcx, [0x140013af0]
cvttss2si r9d, xmm6
cvttss2si r8d, xmm7
call fcn.1400094a0
mov rcx, qword [rsp + 0x13f0]
xor rcx, rsp
call fcn.1400f3250
lea r11, [rsp + 0x1468]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
mov rsp, r11
ret