joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41ea40
Capabilities:
Hash data using murmur3

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
cmp byte [0x00613e13], 0
jne 0x41eb27
sub rbx, qword [rax + 0x18]
mov rdx, qword [rax + 0x50]
test byte [rdx], al
mov esi, dword [rax + 0x64]
imul rbx, rsi
mov rsi, rbx
shr rbx, 0x20
shr rsi, 0x23
and ebx, 7
mov rdi, rcx
mov rcx, rbx
mov r8d, 1
shl r8d, cl
add rdx, rsi
nop
nop
nop
nop
lock or byte [rdx], r8b
mov rcx, qword [rax + 0x18]
movabs rdx, 0x800000000000
lea rax, [rdx + rcx]
mov rdx, rax
shr rdx, 0x2a
nop
nop
nop
cmp rdx, 0x40
jae 0x41eb1a
lea rbx, [0x005e61f8]
mov rdx, qword [rbx + rdx*8]
test byte [rdx], al
mov rbx, rcx
shr rbx, 0x10
and ebx, 0x3f
shr rcx, 0xd
and ecx, 7
mov esi, 1
shl esi, cl
shr rax, 0x16
and eax, 0xfffff
mov rax, qword [rdx + rax*8]
test byte [rax], al
movzx edx, byte [rax + rbx + 0x11440]
lea rax, [rax + rbx]
lea rax, [rax + 0x11440]
test sil, dl
jne 0x41eb00
lock or byte [rax], sil
mov rax, qword [r14 + 0x30]
mov rax, qword [rax + 0xa0]
test byte [rax], al
add qword [rax + 0x1250], rdi
add rsp, 0x10
pop rbp
ret
mov rax, rdx
mov ecx, 0x40
call fcn.00461820
lea rax, [0x004c674e]
mov ebx, 0x2c
call fcn.004351e0
nop
int3

Function at 0x420e00
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x420f06
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rsp + 0x70], rcx
mov byte [rsp + 0x17], dil
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x18], 0
jmp 0x420e43
mov rax, qword [rsp + 0x60]
mov rcx, rdx
mov rbx, qword [rsp + 0x68]
movzx edi, byte [rsp + 0x17]
cmp qword [rsp + 0x18], rbx
jae 0x420efb
test byte [rax], al
lea rcx, [rax + 0x100b8]
mov ebx, edi
mov rax, rcx
nop dword [rax]
call fcn.00421be0
test rax, rax
je 0x420efb
movups xmmword [rsp + 0x20], xmm15
movups xmmword [rsp + 0x30], xmm15
movups xmmword [rsp + 0x40], xmm15
lea rcx, [0x00420f40]
mov qword [rsp + 0x20], rcx
lea rdx, [rsp + 0x18]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
lea rbx, [rsp + 0x20]
mov qword [rsp], rbx
nop dword [rax]
call fcn.0045f440
xorps xmm15, xmm15
mov r14, qword [0x00614038]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rdx, qword [rsp + 0x70]
nop dword [rax]
test rdx, rdx
jne 0x420ee9
xor eax, eax
jmp 0x420ef3
mov rax, qword [rdx]
call rax
mov rdx, qword [rsp + 0x70]
test al, al
je 0x420e31
mov rax, qword [rsp + 0x18]
add rsp, 0x50
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
call fcn.0045f580
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
jmp fcn.00420e00
Function at 0x42eee0
Capabilities:
Hash data using murmur3

Disassembly:
cmp rsp, qword [r14 + 0x18]
jbe 0x42f166
push rbp
mov rbp, rsp
sub rsp, 0x38
test byte [rax], al
mov rcx, qword [rax + 0x1268]
lea rsi, [rax + 0x1278]
sub rcx, rsi
shr rcx, 3
cmp rcx, 0x200
ja 0x42f15a
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], rcx
mov qword [rax + 0x1268], 0
cmp byte [0x00613e13], 0
jne 0x42ef3a
xor edx, edx
xor ebx, ebx
jmp 0x42ef80
xor edx, edx
jmp 0x42ef65
mov qword [rsp + 0x28], rdx
mov rcx, qword [rax + rdx*8 + 0x1278]
mov rax, rcx
call fcn.0041e2a0
mov rdx, qword [rsp + 0x28]
inc rdx
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
cmp rdx, rcx
jl 0x42ef3e
add rax, 0x1268
call fcn.0042ee60
add rsp, 0x38
pop rbp
ret
inc rdx
nop
cmp rdx, rcx
jge 0x42f0f4
mov rsi, qword [rax + rdx*8 + 0x1278]
cmp rsi, 0x1000
jb 0x42ef7b
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rbx
mov rax, rsi
xor ebx, ebx
mov rcx, rbx
call fcn.00412580
test rax, rax
jne 0x42efcc
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
jmp 0x42ef7b
mov rsi, qword [rbx + 0x50]
test byte [rsi], al
mov r8, rcx
shr r8, 3
movzx r9d, byte [rsi + r8]
and ecx, 7
mov r10d, 1
shl r10d, cl
nop
add rsi, r8
test r10b, r9b
je 0x42f00c
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
jmp 0x42ef7b
nop
lock or byte [rsi], r10b
mov rcx, qword [rbx + 0x18]
movabs rsi, 0x800000000000
lea r8, [rsi + rcx]
mov r9, r8
shr r8, 0x2a
nop
nop
nop
cmp r8, 0x40
jae 0x42f14d
lea r10, [0x005e61f8]
mov r8, qword [r10 + r8*8]
test byte [r8], al
mov r10, rcx
shr r10, 0x10
and r10d, 0x3f
shr rcx, 0xd
and ecx, 7
mov r11d, 1
shl r11d, cl
shr r9, 0x16
and r9d, 0xfffff
mov r8, qword [r8 + r9*8]
test byte [r8], al
movzx r9d, byte [r8 + r10 + 0x11440]
lea r8, [r8 + r10]
lea r8, [r8 + 0x11440]
test r11b, r9b
jne 0x42f08f
lock or byte [r8], r11b
movzx r8d, byte [rbx + 0x6a]
test r8b, 1
je 0x42f0c5
mov rax, qword [rsp + 0x48]
mov r8, qword [rax + 0x1250]
add r8, qword [rbx + 0x70]
mov qword [rax + 0x1250], r8
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
jmp 0x42ef7b
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
cmp r8, rcx
jae 0x42f145
mov rbx, qword [rsp + 0x48]
mov qword [rbx + r8*8 + 0x1278], rax
inc r8
mov rax, rbx
mov rdx, qword [rsp + 0x28]
mov rbx, r8
jmp 0x42ef7b
cmp rbx, 0x200
ja 0x42f134
lea rdx, [rax + 0x1278]
lea rsi, [rax + 0x1240]
mov rcx, rbx
mov edi, 0x200
mov rbx, rdx
mov rax, rsi
call fcn.00424ae0
mov rax, qword [rsp + 0x48]
add rax, 0x1268
call fcn.0042ee60
add rsp, 0x38
pop rbp
ret
mov rcx, rbx
mov edx, 0x200
nop dword [rax]
call fcn.00461880
mov rax, r8
call fcn.00461800
mov rax, r8
mov ecx, 0x40
call fcn.00461820
mov edx, 0x200
nop
call fcn.00461860
nop
mov qword [rsp + 8], rax
call fcn.004660c0
mov rax, qword [rsp + 8]
jmp fcn.0042eee0
Function at 0x443d80
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x443ee7
push rbp
mov rbp, rsp
sub 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 0x443d92
cmp edx, ecx
jne 0x443ed5
nop word [rax + rax]
test rsi, rsi
jne 0x443ed5
mov qword [rsp + 0x28], rax
test rbx, rbx
jne 0x443df4
nop
call fcn.00463060
xorps xmm15, xmm15
mov r14, qword [0x00614038]
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.00443ca0
mov rcx, qword [rsp + 0x28]
mov edx, dword [rcx]
mov ebx, edx
sar edx, 0x1f
shr edx, 0x1b
add edx, ebx
mov esi, edx
and edx, 0xffffffe0
sub ebx, edx
test ebx, ebx
jl 0x443ed0
mov rdx, qword [0x005c0ed8]
sar esi, 5
mov rax, rcx
mov ecx, ebx
mov edi, 1
shl edi, cl
movsxd rsi, esi
cmp ecx, 0x20
sbb r8d, r8d
and edi, r8d
cmp rdx, rsi
jbe 0x443ec5
mov rcx, qword [0x005c0ed0]
lea rcx, [rcx + rsi*4]
lock or dword [rcx], edi
mov rcx, qword [0x005c1a90]
mov qword [rax + 8], rcx
mov rcx, rax
nop
mov qword [0x005c1a90], rax
nop
mov edx, 1
lea rsi, [0x005c1a98]
lock xadd dword [rsi], edx
mov rdx, qword [rcx + 0x1228]
shr rdx, 0x3d
test dl, dl
jne 0x443eb3
mov rax, qword [rsp + 0x10]
movabs rdx, 0x1fffffffffffffff
and rdx, rax
bts rdx, 0x3f
nop
nop
xchg qword [rcx + 0x1228], rdx
add rsp, 0x18
pop rbp
ret
lea rax, [0x004c5df8]
mov ebx, 0x28
nop
call fcn.004351e0
mov rax, rsi
mov rcx, rdx
call fcn.00461800
call fcn.00433880
lea rax, [0x004c4ff4]
mov ebx, 0x23
call fcn.004351e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045f580
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00443d80
Function at 0x456920
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4569cf
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, [0x00456a20]
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 + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call fcn.0045f440
xorps xmm15, xmm15
mov r14, qword [0x00614038]
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 fcn.0045f580
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax]
jmp fcn.00456920
Function at 0x461360
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4038e3
push rbp
mov rbp, rsp
sub rsp, 0x18
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
mov rax, rdx
call fcn.00409380
add rsp, 0x18
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045f580
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x4038c0
cmp byte [0x00613e0c], 0
je 0x461375
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp 0x45e5c0
jmp 0x4038c0

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

Disassembly:
nop
mov eax, dword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x006140e0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d124b
mul rcx
xor rax, rdx
nop
nop
ret
cmp byte [0x00613e0c], 0
je 0x4613b5
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x006143a0]
aesenc xmm0, xmmword [0x006143b0]
aesenc xmm0, xmmword [0x006143c0]
movq rax, xmm0
ret
jmp 0x4095a0

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

Disassembly:
nop
mov rax, qword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x006140e0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d1247
mul rcx
xor rax, rdx
nop
nop
ret
cmp byte [0x00613e0c], 0
je 0x4613f6
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x006143a0]
aesenc xmm0, xmmword [0x006143b0]
aesenc xmm0, xmmword [0x006143c0]
movq rax, xmm0
ret
jmp 0x409600

Function at 0x4630c0
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 0x4630f4
mov rcx, 0x28
jmp 0x4630ff
shl rcx, 3
add rcx, 0x1480
mov qword [0x00614038], rcx
pop rbp
ret
Function at 0x46aee0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x46afaa
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rax
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0
call fcn.00403820
xorps xmm15, xmm15
mov r14, qword [0x00614038]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
jne 0x46af8f
mov rcx, qword [rsp + 0x60]
lea rdx, [rcx + 1]
mov qword [rsp + 0x40], rdx
lea rax, [0x004a7060]
xor ebx, ebx
mov rcx, rdx
call fcn.00448060
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 fcn.0046b920
inc rbx
cmp rcx, rbx
jae 0x46af7e
mov edi, 1
lea rsi, [0x004a7060]
call fcn.00448140
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, [0x004e28a8]
lea rsi, [0x004e21d8]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045f580
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0046aee0
Function at 0x402d20
Capabilities:
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, qword [fcn.004735b0]
xor ebx, ebx
mov rbp, rcx
mov rsi, rdx
test rdx, rdx
jle 0x402d63
nop
mov r12, qword [rbp + rbx*8]
mov ecx, 1
add rbx, 1
call rdi
xor r8d, r8d
mov rcx, rax
mov rdx, r12
call fcn.00402bc0
cmp rsi, rbx
jg 0x402d40
mov ecx, 1
call rdi
mov r8d, 1
mov edx, 1
lea rcx, [0x0047519c]
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 1
call rdi
mov rcx, rax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sub.msvcrt.dll_fflush

Function at 0x402fd0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbx
sub rsp, 0x20
xor r12d, r12d
mov r15, rcx
mov ecx, 0xfa0
call fcn.0040cc80
mov r14, rax
lea rbx, [rax + 0x10]
test rax, rax
je 0x4030e0
nop dword [rax]
mov rdx, qword [r14]
test rdx, rdx
jg 0x403013
sub rdx, 1
xor ecx, ecx
call fcn.0040dd50
mov r9, r15
mov r8d, 0xfa0
mov edx, 1
mov rcx, rbx
call sub.msvcrt.dll_fread
mov r13, rax
cmp rax, 0xfa0
je 0x4030a8
mov rcx, r15
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x403169
test r13, r13
js 0x403150
mov rdx, r13
mov rcx, r14
call fcn.0040d6a0
mov rbx, rax
test rax, rax
je 0x403130
mov rdx, qword [rax]
mov rcx, r12
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov r12, rax
mov rax, qword [rax]
lea rcx, [r12 + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [r12], rax
mov rax, r12
add rsp, 0x20
pop rbx
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [r14]
mov rcx, r12
call fcn.0040b8c0
mov r8, qword [r14]
mov rdx, rbx
mov r12, rax
mov rax, qword [rax]
add r8, 1
lea rcx, [r12 + rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rax, qword [r14]
add qword [r12], rax
jmp 0x403000
mov r12, rax
jmp 0x4030f5
mov rcx, r12
xor edx, edx
call fcn.0040b8c0
mov r12, rax
mov rdx, 0xffffffffffffffff
xor ecx, ecx
call fcn.0040dd50
mov r9, r15
mov edx, 1
mov rcx, rbx
mov r8d, 0xfa0
call sub.msvcrt.dll_fread
mov r13, rax
cmp rax, 0xfa0
jne 0x403034
jmp 0x4030e8
xor edx, edx
mov rcx, r12
add rsp, 0x20
pop rbx
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040b8c0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call fcn.0040dba0
jmp 0x40304d
mov rcx, r15
call fcn.00402a30
nop
nop word cs:[rax + rax]
nop dword [rax]
Function at 0x403180
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x20
mov r13, rcx
mov rbx, rdx
test rdx, rdx
js 0x4032e8
mov rcx, rbx
call fcn.0040cc80
mov r12, rax
test rax, rax
je 0x4032d8
mov rdx, qword [rax]
test rdx, rdx
jle 0x403240
test rbx, rbx
js 0x403254
lea rcx, [r12 + 0x10]
mov r9, r13
mov r8, rbx
mov edx, 1
call sub.msvcrt.dll_fread
mov rcx, r13
mov r14, rax
cmp rbx, rax
je 0x403270
call sub.msvcrt.dll_ferror
mov rcx, r13
test eax, eax
jne 0x403339
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov esi, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test esi, esi
jns 0x403285
cmp rbx, r14
jle 0x4032c2
test r14, r14
js 0x403320
mov rdx, r14
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.0040d6a0
sub rdx, 1
xor ecx, ecx
call fcn.0040dd50
test rbx, rbx
jns 0x4031c4
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.0040dba0
jmp 0x4031c4
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov ebx, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test ebx, ebx
js 0x4032c2
mov rcx, r13
call fcn.00402fd0
mov rbx, rax
test rax, rax
je 0x403308
mov rdx, qword [rax]
mov rcx, r12
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov r12, rax
mov rax, qword [rax]
lea rcx, [r12 + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [r12], rax
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov rdx, 0xffffffffffffffff
jmp 0x403244
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.0040dba0
jmp 0x40319b
xor edx, edx
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.0040b8c0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.0040dba0
jmp 0x40321f
call fcn.00402a30
nop
nop
push r14
push r13
push r12
push rbx
sub rsp, 0x28
mov r12, rcx
xor ecx, ecx
call qword [fcn.004735b0]
cmp r12, rax
je 0x403398
mov r13, qword [fcn.004735f0]
mov rcx, r12
call r13
xor edx, edx
mov r8d, 2
mov rcx, r12
mov r14, rax
mov rbx, qword [0x00474158]
call rbx
mov rcx, r12
call r13
xor r8d, r8d
mov rdx, r14
mov rcx, r12
mov r13, rax
call rbx
test r13, r13
jg 0x4033b0
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp fcn.00402fd0
mov rdx, r13
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp fcn.00403180
Function at 0x403340
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x20
mov r13, rcx
mov rbx, rdx
test rdx, rdx
js 0x4032e8
mov rcx, rbx
call fcn.0040cc80
mov r12, rax
test rax, rax
je 0x4032d8
mov rdx, qword [rax]
test rdx, rdx
jle 0x403240
test rbx, rbx
js 0x403254
lea rcx, [r12 + 0x10]
mov r9, r13
mov r8, rbx
mov edx, 1
call sub.msvcrt.dll_fread
mov rcx, r13
mov r14, rax
cmp rbx, rax
je 0x403270
call sub.msvcrt.dll_ferror
mov rcx, r13
test eax, eax
jne 0x403339
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov esi, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test esi, esi
jns 0x403285
cmp rbx, r14
jle 0x4032c2
test r14, r14
js 0x403320
mov rdx, r14
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.0040d6a0
sub rdx, 1
xor ecx, ecx
call fcn.0040dd50
test rbx, rbx
jns 0x4031c4
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.0040dba0
jmp 0x4031c4
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov ebx, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test ebx, ebx
js 0x4032c2
mov rcx, r13
call fcn.00402fd0
mov rbx, rax
test rax, rax
je 0x403308
mov rdx, qword [rax]
mov rcx, r12
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov r12, rax
mov rax, qword [rax]
lea rcx, [r12 + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [r12], rax
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov rdx, 0xffffffffffffffff
jmp 0x403244
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.0040dba0
jmp 0x40319b
xor edx, edx
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.0040b8c0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.0040dba0
jmp 0x40321f
call fcn.00402a30
nop
nop
push r14
push r13
push r12
push rbx
sub rsp, 0x28
mov r12, rcx
xor ecx, ecx
call qword [fcn.004735b0]
cmp r12, rax
je 0x403398
mov r13, qword [fcn.004735f0]
mov rcx, r12
call r13
xor edx, edx
mov r8d, 2
mov rcx, r12
mov r14, rax
mov rbx, qword [0x00474158]
call rbx
mov rcx, r12
call r13
xor r8d, r8d
mov rdx, r14
mov rcx, r12
mov r13, rax
call rbx
test r13, r13
jg 0x4033b0
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp fcn.00402fd0
mov rdx, r13
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp fcn.00403180
Function at 0x403d90
Capabilities:
Write file on windows

Disassembly:
push r13
push r12
sub rsp, 0x28
xor r8d, r8d
mov r13, rcx
mov r12, rdx
test rdx, rdx
je 0x403db1
mov rcx, rdx
call sub.msvcrt.dll_strlen
mov r8, rax
mov rcx, r12
mov r9, r13
mov edx, 1
call sub.msvcrt.dll_fwrite
mov rcx, r13
add rsp, 0x28
pop r12
pop r13
jmp sub.msvcrt.dll_fflush

Function at 0x403e20
Capabilities:
Write file on windows

Disassembly:
push r12
sub rsp, 0x20
mov ecx, 2
call qword [fcn.004735b0]
mov r8d, 0x4b
mov edx, 1
lea rcx, str._GC__cannot_register_thread_local_variable__too_many_thread_local_variables
mov r12, rax
mov r9, rax
call sub.msvcrt.dll_fwrite
mov rcx, r12
call sub.msvcrt.dll_fflush
mov ecx, 1
call sub.msvcrt.dll_exit
nop
nop word cs:[rax + rax]
nop dword [rax]
ret

Function at 0x4125f0
Capabilities:
Encode data using xor

Disassembly:
xor r9d, r9d
test rcx, rcx
je 0x41264b
mov rdx, qword [rcx]
add rcx, 0x10
xor eax, eax
lea r8, [rcx + rdx]
test rdx, rdx
jle 0x41264b
nop word [rax + rax]
movzx edx, byte [rcx]
add rcx, 1
add rdx, rax
mov rax, rdx
shl rax, 0xa
add rax, rdx
mov rdx, rax
shr rdx, 6
xor rax, rdx
cmp r8, rcx
jne 0x412610
lea r9, [rax + rax*8]
mov rax, r9
shr rax, 0xb
xor rax, r9
mov r9, rax
shl r9, 0xf
add r9, rax
mov rax, r9
ret

Function at 0x413f40
Capabilities:
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rsi, [rdx + 3]
test rdx, rdx
mov rbx, rcx
mov rdi, rdx
cmovns rsi, rdx
and rsi, 0xfffffffffffffffc
jle 0x4140a0
test rdx, rdx
jle 0x414090
cmp rdx, rsi
mov rax, rsi
cmovle rax, rdx
xor r12d, r12d
xor r13d, r13d
nop dword [rax]
mov edx, dword [rbx + r12]
add r12, 4
imul edx, edx, 0xcc9e2d51
rol edx, 0xf
imul edx, edx, 0x1b873593
xor edx, r13d
rol edx, 0xd
lea r13d, [rdx + rdx*4 - 0x19ab949c]
cmp r12, rax
jl 0x413f88
cmp rsi, r12
jle 0x413ff5
lea rbp, [rdi - 1]
nop dword [rax + rax]
mov rdx, rbp
mov rcx, r12
call fcn.0040dd50
mov edx, dword [rbx + r12]
add r12, 4
imul edx, edx, 0xcc9e2d51
rol edx, 0xf
imul edx, edx, 0x1b873593
xor edx, r13d
rol edx, 0xd
lea r13d, [rdx + rdx*4 - 0x19ab949c]
cmp rsi, r12
jg 0x413fc0
mov rax, rdi
xor ebp, ebp
sar rax, 0x3f
shr rax, 0x3e
lea r14, [rdi + rax]
and r14d, 3
sub r14, rax
test r14, r14
jle 0x414056
lea r12, [rdi - 1]
nop word cs:[rax + rax]
sub r14, 1
lea r15, [rsi + r14]
cmp rdi, r15
jg 0x414038
mov rdx, r12
mov rcx, r15
call fcn.0040dd50
movzx eax, byte [rbx + r15]
shl ebp, 8
or ebp, eax
test r14, r14
jne 0x414020
imul ebp, ebp, 0xcc9e2d51
rol ebp, 0xf
imul ebp, ebp, 0x1b873593
mov edx, r13d
xor edx, edi
xor edx, ebp
mov ebp, edx
shr ebp, 0x10
xor ebp, edx
imul ebp, ebp, 0x85ebca6b
mov eax, ebp
shr eax, 0xd
xor eax, ebp
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor eax, edx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r12d, r12d
xor r13d, r13d
jmp 0x413fb7
xor esi, esi
xor r13d, r13d
jmp 0x413ff5
sub rsp, 0x38
xor edx, edx
test rcx, rcx
je 0x4140c7
mov rdx, qword [rcx]
test rdx, rdx
js 0x4140d0
add rcx, 0x10
add rsp, 0x38
jmp 0x413f40
mov qword [rsp + 0x28], rcx
call fcn.00410b00
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx]
jmp 0x4140c3
Function at 0x4140b0
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rsi, [rdx + 3]
test rdx, rdx
mov rbx, rcx
mov rdi, rdx
cmovns rsi, rdx
and rsi, 0xfffffffffffffffc
jle 0x4140a0
test rdx, rdx
jle 0x414090
cmp rdx, rsi
mov rax, rsi
cmovle rax, rdx
xor r12d, r12d
xor r13d, r13d
nop dword [rax]
mov edx, dword [rbx + r12]
add r12, 4
imul edx, edx, 0xcc9e2d51
rol edx, 0xf
imul edx, edx, 0x1b873593
xor edx, r13d
rol edx, 0xd
lea r13d, [rdx + rdx*4 - 0x19ab949c]
cmp r12, rax
jl 0x413f88
cmp rsi, r12
jle 0x413ff5
lea rbp, [rdi - 1]
nop dword [rax + rax]
mov rdx, rbp
mov rcx, r12
call fcn.0040dd50
mov edx, dword [rbx + r12]
add r12, 4
imul edx, edx, 0xcc9e2d51
rol edx, 0xf
imul edx, edx, 0x1b873593
xor edx, r13d
rol edx, 0xd
lea r13d, [rdx + rdx*4 - 0x19ab949c]
cmp rsi, r12
jg 0x413fc0
mov rax, rdi
xor ebp, ebp
sar rax, 0x3f
shr rax, 0x3e
lea r14, [rdi + rax]
and r14d, 3
sub r14, rax
test r14, r14
jle 0x414056
lea r12, [rdi - 1]
nop word cs:[rax + rax]
sub r14, 1
lea r15, [rsi + r14]
cmp rdi, r15
jg 0x414038
mov rdx, r12
mov rcx, r15
call fcn.0040dd50
movzx eax, byte [rbx + r15]
shl ebp, 8
or ebp, eax
test r14, r14
jne 0x414020
imul ebp, ebp, 0xcc9e2d51
rol ebp, 0xf
imul ebp, ebp, 0x1b873593
mov edx, r13d
xor edx, edi
xor edx, ebp
mov ebp, edx
shr ebp, 0x10
xor ebp, edx
imul ebp, ebp, 0x85ebca6b
mov eax, ebp
shr eax, 0xd
xor eax, ebp
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor eax, edx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r12d, r12d
xor r13d, r13d
jmp 0x413fb7
xor esi, esi
xor r13d, r13d
jmp 0x413ff5
sub rsp, 0x38
xor edx, edx
test rcx, rcx
je 0x4140c7
mov rdx, qword [rcx]
test rdx, rdx
js 0x4140d0
add rcx, 0x10
add rsp, 0x38
jmp 0x413f40
mov qword [rsp + 0x28], rcx
call fcn.00410b00
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx]
jmp 0x4140c3