joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14002933c
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.1400150bc
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x1400293c6
cmp byte [rbp - 0x21], r15b
je 0x1400293c1
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x1400293fc
call fcn.14001f224
test eax, eax
jne 0x1400293e8
cmp byte [rbp - 0x21], r15b
je 0x1400293e0
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x1400293fc
cmp byte [rbp - 0x21], r15b
je 0x1400293f9
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.14001a290
test eax, eax
jne 0x14002949c
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.1400150bc
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x14002943b
cmp byte [rbp - 0x21], r15b
je 0x140029470
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x140029470
call fcn.14001f224
test eax, eax
jne 0x14002945c
cmp byte [rbp - 0x21], r15b
je 0x140029455
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x140029470
cmp byte [rbp - 0x21], r15b
je 0x14002946d
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.14001a290
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x14002949c
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x14002949f
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x1400294ad
mov rcx, rdi
call fcn.14001ef78
cmp byte [rbp + 0x3f], r15b
je 0x1400294bc
mov rcx, qword [rbp + 0x27]
call fcn.14001ef78
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 0x140008f70
Capabilities:
Get geographical location
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
call fcn.1400086ac
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
shr rax, 0x10
mov r9d, 4
movzx ecx, ax
lea r8, [rbx + 0x2c]
mov edx, 0x20001004
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x140008fa9
and dword [rbx + 0x2c], eax
add rsp, 0x20
pop rbx
ret

Function at 0x140009d84
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
add rsp, 0x28
ret

Function at 0x140013b6c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
movsxd rbp, r9d
mov r14, r8
test r8, r8
je 0x140013b93
and qword [r8], 0
call fcn.140013c38
mov rbx, rax
test rax, rax
je 0x140013c1b
mov rcx, rax
call fcn.140013af4
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140013c13
lea rcx, [rax + rbp]
call fcn.14001615c
mov rsi, rax
test rax, rax
je 0x140013c13
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
cmp rax, rdi
je 0x140013bec
mov rcx, rbx
call fcn.140013ae0
mov rcx, rsi
call fcn.1400161ac
jmp 0x140013c1b
test ebp, ebp
jle 0x140013bfe
lea rcx, [rsi + rdi]
mov r8, rbp
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call fcn.140013ae0
test r14, r14
je 0x140013c0e
mov qword [r14], rdi
mov rax, rsi
jmp 0x140013c1d
mov rcx, rbx
call fcn.140013ae0
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret

Function at 0x140013ff0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rcx
not r8d
test rdx, rdx
je 0x14001401e
movzx eax, byte [r9]
inc r9
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
lea rax, [0x1401ed7e0]
xor r8d, dword [rax + rcx*4]
sub rdx, 1
jne 0x140013ffb
not r8d
mov eax, r8d
ret

Function at 0x140014028
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
not r8d
mov r10, rcx
mov r9d, r8d
test rdx, rdx
je 0x140014082
mov r11b, reloc.WLDAP32.dll_Ordinal_35
lea rbx, [0x1401ed7e0]
movzx edi, byte [r10]
dec rdx
inc r10
cmp dil, r11b
jne 0x14001406c
cmp rdx, 2
jb 0x14001406c
cmp byte [r10], r11b
jne 0x14001406c
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
xor rcx, rdi
shr r9d, 8
xor r9d, dword [rbx + rcx*4]
test rdx, rdx
jne 0x14001404a
jmp 0x1400140c3
mov dl, byte [rcx]
inc r10
test dl, dl
je 0x1400140c3
mov r11b, reloc.WLDAP32.dll_Ordinal_35
lea rbx, [0x1401ed7e0]
cmp dl, r11b
jne 0x1400140a7
cmp byte [r10], r11b
jne 0x1400140a7
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
movzx eax, dl
mov dl, byte [r10]
xor rcx, rax
shr r9d, 8
inc r10
xor r9d, dword [rbx + rcx*4]
test dl, dl
jne 0x140014095
mov rbx, qword [rsp + 8]
not r9d
mov rdi, qword [rsp + 0x10]
mov eax, r9d
ret
Function at 0x14001602c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x67f8], 0
lea rdi, [rcx + 0x6800]
mov rbx, rcx
mov rsi, r8
mov rcx, rdi
mov rbp, rdx
je 0x1400160a8
xor edx, edx
call fcn.1400227f8
mov r8, rsi
mov rdx, rbp
mov rcx, rdi
call fcn.140021a58
mov eax, dword [rdi]
mov edx, 1
mov r9, qword [rbx + 0x67f8]
lea ecx, [rax - 1]
neg eax
sbb eax, eax
and eax, ecx
lea rcx, [0x140377ca8]
movsxd r8, eax
mov rax, qword [rbx + 0x6808]
test rax, rax
cmovne rcx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
jmp 0x1400160ad
call fcn.140021a58
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x14001c7c4
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x140377ca0]
mov rbx, rcx
and dword [rax + 0x6754], 0
test rcx, rcx
je 0x14001c82b
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call fcn.14001c838
lea rdx, [0x1401ef444]
mov rcx, rbx
mov rdi, rax
call fcn.140013c38
mov rbx, rax
test rax, rax
je 0x14001c82b
mov r8, qword [rsp + 0x30]
mov r9, rax
mov edx, 1
mov rcx, rdi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov rcx, rbx
call fcn.140013ae0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x1400230b8
Capabilities:
Hash data using fnv

Disassembly:
xor r8d, r8d
movzx eax, byte [rdx + r8]
movabs r9, 0x100000001b3
xor rcx, rax
inc r8
imul rcx, r9
cmp r8, 4
jb 0x140023093
mov rax, rcx
ret
mov rdx, rcx
movabs rcx, 0xcbf29ce484222325
jmp 0x140023090
Function at 0x14002b014
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 8], rbx
mov r10, rdx
movzx r9d, cx
mov eax, 0x5e6ea9af
shr ecx, 0x10
mul r8d
mov r11d, r8d
shr edx, 0xb
imul eax, edx, 0x15b0
sub r11d, eax
test r8d, r8d
je 0x14002b108
xor edx, edx
cmp r11d, 7
jbe 0x14002b0b4
lea ebx, [rdx + 7]
movzx eax, byte [r10]
add edx, 8
add r9d, eax
add ebx, 8
movzx eax, byte [r10 + 1]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 2]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 3]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 4]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 5]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 6]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 7]
add ecx, r9d
add r9d, eax
add r10, 8
add ecx, r9d
cmp ebx, r11d
jb 0x14002b04e
cmp edx, r11d
jae 0x14002b0d3
mov eax, r11d
sub eax, edx
mov edx, eax
movzx eax, byte [r10]
inc r10
add r9d, eax
add ecx, r9d
sub rdx, 1
jne 0x14002b0c0
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
sub r8d, r11d
mov r11d, 0x15b0
jne 0x14002b043
mov rbx, qword [rsp + 8]
shl ecx, 0x10
lea eax, [r9 + rcx]
ret

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

Disassembly:
xor r8d, r8d
movzx eax, byte [rdx + r8]
movabs r9, 0x100000001b3
xor rcx, rax
inc r8
imul rcx, r9
cmp r8, 8
jb 0x14002cd0b
mov rax, rcx
ret
mov rdx, rcx
movabs rcx, 0xcbf29ce484222325
jmp 0x14002cd08
Function at 0x14003a0a0
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x70
movss xmm0, dword [rcx + 0xc]
mov rdi, r9
mulss xmm2, dword [0x1401ef6b4]
mov r14, rdx
mov rbx, rcx
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
subss xmm0, xmm2
xorps xmm8, xmm8
movaps xmmword [rax - 0x58], xmm9
maxss xmm0, xmm8
ucomiss xmm0, xmm8
movss dword [rcx + 0xc], xmm0
jp 0x14003a0f9
jne 0x14003a0f9
mov al, 1
jmp 0x14003a0fb
xor al, al
mov byte [rcx + 8], al
mov rcx, qword [rcx + 0x20]
test rcx, rcx
je 0x14003a258
mov rax, qword [rbx + 0x10]
test rax, rax
jne 0x14003a14e
mov r8d, 0x1505
lea r9, [0x1402f428d]
lea rdx, str.pos_y
movzx eax, byte [rdx]
inc rdx
imul r8d, r8d, 0x21
xor r8d, eax
cmp rdx, r9
jne 0x14003a128
movss xmm3, dword [0x1401ef7c4]
mov edx, dword [rcx + 0x10]
call fcn.14002d7b0
mov qword [rbx + 0x10], rax
mov byte [rax + 0x10], 1
mov ebp, dword [r14]
mov esi, ebp
shr esi, 3
and sil, 1
call fcn.14001336c
mov rcx, qword [rbx + 0x10]
movaps xmm0, xmm8
mov r8b, 1
movss xmm6, dword [rax + 0x14]
movss xmm7, dword [rax + 0x10]
unpcklps xmm0, xmm6
movq rdx, xmm0
call fcn.1400338dc
call fcn.1400137f8
xorps xmm0, xmm0
movss xmm1, dword [rax + 0x50]
test rdi, rdi
js 0x14003a19e
cvtsi2ss xmm0, rdi
jmp 0x14003a1b3
mov rax, rdi
and edi, 1
shr rax, 1
or rax, rdi
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [rbx + 0x10]
addss xmm1, xmm1
xor r8d, r8d
mulss xmm1, xmm0
mulss xmm0, dword [rbx + 0x2c]
addss xmm1, xmm0
call fcn.140033960
movss xmm9, dword [0x140376040]
and dword [rsp + 0x90], 0
movaps xmm8, xmm9
and dword [rsp + 0x94], 0
mulss xmm8, dword [r14 + 4]
shr ebp, 1
mulss xmm9, dword [r14 + 8]
test bpl, 1
jne 0x14003a20f
subss xmm7, dword [rbx + 0x28]
subss xmm7, xmm8
movaps xmm8, xmm7
mov rcx, qword [rbx + 0x10]
xor edx, edx
call fcn.1400338a8
test sil, sil
je 0x14003a229
movaps xmm6, xmm0
addss xmm6, xmm9
jmp 0x14003a237
subss xmm6, xmm0
subss xmm6, dword [rbx + 0x2c]
subss xmm6, xmm9
lea r8, [rsp + 0x90]
movss dword [rsp + 0x20], xmm8
xor edx, edx
movss dword [rsp + 0x24], xmm6
lea rcx, [rsp + 0x20]
call fcn.14001d634
movaps xmm6, xmmword [rsp + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm7, xmmword [rsp + 0x50]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x14004754c
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rdx, rcx
movabs rcx, 0xcbf29ce484222325
jmp 0x140023090

Function at 0x140047b64
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
push rdi
mov eax, 0x13d0
call fcn.14015a300
sub rsp, rax
mov rax, qword [0x1403768c0]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
mov rbx, rdx
mov rdi, rcx
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
or dword [rsp + 0x13b4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x34], eax
mov ecx, 0x270
mov r8d, eax
shr r8d, 0x1e
xor r8d, eax
imul eax, r8d, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x34], eax
inc rdx
cmp rdx, rcx
jb 0x140047baa
sub rbx, rdi
mov dword [rsp + 0x30], ecx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
cmp rbx, 0xffffffffffffffff
jne 0x140047c01
lea rcx, [rsp + 0x30]
call fcn.14004aaa8
mov ebx, eax
lea rcx, [rsp + 0x30]
shl rbx, 0x20
call fcn.14004aaa8
mov eax, eax
or rbx, rax
jmp 0x140047c12
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x20]
call fcn.14004a994
mov rbx, rax
lea rax, [rbx + rdi]
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.14015a2d0
mov rbx, qword [rsp + 0x13e0]
add rsp, 0x13d0
pop rdi
ret
Function at 0x14004aaa8
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
mov r9d, 0x270
mov rbx, rcx
cmp dword [rcx], r9d
jne 0x14004aafb
lea r8, [rcx + 8]
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 r9, 1
jne 0x14004aac0
jmp 0x14004ab08
cmp dword [rcx], 0x4e0
jb 0x14004ab08
call fcn.14004ba10
mov eax, dword [rbx]
mov edx, dword [rbx + rax*4 + 4]
inc eax
mov dword [rbx], eax
mov ecx, edx
mov eax, dword [rbx + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 0x20
pop rbx
ret
Function at 0x14004b868
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x1403768c0]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x14004b8d7
cmp byte [rcx + 0x71], 0
je 0x14004b8d7
mov rax, qword [rcx]
or edx, 0xffffffff
call qword [rax + Ordinal_26]
cmp eax, 0xffffffff
je 0x14004b92c
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14004b8f1
sub eax, 1
je 0x14004b8f5
cmp eax, 2
jne 0x14004b92c
mov byte [rbx + 0x71], 0
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14015a2d0
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x14004b923
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x14004b92c
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14004b8d9
xor al, al
jmp 0x14004b8d9

Function at 0x14004ba10
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
lea r10, [rcx + 0x9c4]
mov r9, rcx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, eax
lea r10, [r10 + 4]
xor edx, r11d
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 [r10 + 0x630]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x14004ba27
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, eax
lea r10, [r10 + 4]
xor edx, r11d
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 [r10 - 0xd50]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x14004ba72
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
and dword [r9], ebx
mov rbx, qword [rsp + 8]
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
ret

Function at 0x14004c214
Capabilities:
Hash data using djb2

Disassembly:
mov r8, qword [rcx]
mov edx, 0x1505
mov r9, qword [rcx + 8]
add r9, r8
jmp 0x14004c231
movzx ecx, byte [r8]
imul edx, edx, 0x21
xor edx, ecx
inc r8
cmp r8, r9
jne 0x14004c225
mov eax, edx
ret
Function at 0x14004c438
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1403768c0]
xor rax, rsp
mov qword [rbp - 8], rax
or esi, 0xffffffff
mov r14d, edx
mov rdi, rcx
cmp edx, esi
jne 0x14004c472
xor eax, eax
jmp 0x14004c591
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
test rax, rax
je 0x14004c4ab
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::epptr_void_const___ptr64]
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
cmp rax, rbx
jae 0x14004c4ab
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void____ptr64]
mov byte [rax], r14b
mov eax, r14d
jmp 0x14004c591
cmp qword [rdi + 0x80], 0
je 0x14004c58f
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
lea rcx, [rdi + 0x70]
cmp rax, rcx
jne 0x14004c4e5
mov rdx, qword [rdi + 0x88]
mov rcx, rdi
mov r9, qword [rdi + 0x90]
mov r8, rdx
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char____ptr64__char____ptr64__char____ptr64____ptr64]
mov rcx, qword [rdi + 0x68]
test rcx, rcx
jne 0x14004c506
movsx ecx, r14b
mov rdx, qword [rdi + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
cmp eax, esi
jmp 0x14004c58b
lea rax, [rbp - 0x40]
mov byte [rbp - 0x30], r14b
mov qword [rsp + 0x38], rax
lea rdx, [rdi + 0x74]
lea rax, [rbp - 8]
mov qword [rsp + 0x30], rax
lea r9, [rbp - 0x2f]
lea rax, [rbp - 0x28]
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x30]
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14004c554
sub eax, 1
je 0x14004c554
cmp eax, 2
jne 0x14004c58f
movsx ecx, byte [rbp - 0x30]
jmp 0x14004c4f2
mov rbx, qword [rbp - 0x40]
lea rax, [rbp - 0x28]
sub rbx, rax
je 0x14004c57f
mov r9, qword [rdi + 0x80]
lea rcx, [rbp - 0x28]
mov r8, rbx
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbx, rax
jne 0x14004c58f
lea rax, [rbp - 0x30]
mov byte [rdi + 0x71], 1
cmp qword [rbp - 0x38], rax
cmovne esi, r14d
mov eax, esi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14015a2d0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x14004cd48
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov rsi, r8
mov r14, rdx
mov rbp, rcx
test r8, r8
jg 0x14004cd68
xor eax, eax
jmp 0x14004ce4f
cmp qword [rcx + 0x68], 0
je 0x14004cd7a
call qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
jmp 0x14004ce4f
mov rdi, rsi
call qword [sym.imp.MSVCP140.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Gnavail_void_const___ptr64]
test rax, rax
je 0x14004cdba
cmp rax, rsi
mov rbx, rsi
mov rcx, rbp
cmovb rbx, rax
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gptr_void_const___ptr64]
mov r8, rbx
mov rcx, r14
mov rdx, rax
call fcn.14015b5d0
mov edx, ebx
mov rcx, rbp
add r14, rbx
sub rdi, rbx
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gbump_int____ptr64]
cmp qword [rbp + 0x80], 0
je 0x14004ce49
mov rcx, rbp
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
lea rcx, [rbp + 0x70]
cmp rax, rcx
jne 0x14004cdf4
mov rdx, qword [rbp + 0x88]
mov rcx, rbp
mov r9, qword [rbp + 0x90]
mov r8, rdx
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char____ptr64__char____ptr64__char____ptr64____ptr64]
mov rcx, rdi
mov ebx, 0xfff
jmp 0x14004ce24
mov r9, qword [rbp + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rdi, rax
add r14, rax
mov rcx, rdi
cmp rax, rbx
jne 0x14004ce49
cmp rdi, rbx
ja 0x14004cdfe
test rcx, rcx
je 0x14004ce49
mov r9, qword [rbp + 0x80]
mov r8, rdi
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rdi, rax
sub rsi, rdi
mov rax, rsi
add rsp, 0x20
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14004ce5c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r14, rdx
mov rdi, rcx
je 0x14004ce86
call qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
jmp 0x14004cef6
mov rsi, rbx
call qword [sym.imp.MSVCP140.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pnavail_void_const___ptr64]
mov rbp, rax
test rbx, rbx
jle 0x14004cef0
test rax, rax
jle 0x14004ced0
cmp rbx, rax
mov rcx, rdi
cmovl rbp, rbx
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
mov r8, rbp
mov rdx, r14
mov rcx, rax
call fcn.14015b5d0
mov edx, ebp
mov rcx, rdi
add r14, rbp
sub rbx, rbp
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pbump_int____ptr64]
test rbx, rbx
jle 0x14004cef0
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x14004cef0
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
sub rsi, rbx
mov rax, rsi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret
Function at 0x14004f8e4
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm7
movaps xmm7, xmm1
movaps xmm6, xmm0
mov ecx, dword [0x14037ce28]
mov rax, qword gs:[0x58]
mov edx, 8
mov rax, qword [rax + rcx*8]
lea rbx, [0x140378e20]
mov eax, dword [rdx + rax]
cmp dword [0x14037a1a8], eax
jg 0x14004f989
cvtss2sd xmm6, xmm6
mov rcx, rbx
call fcn.14004e8c8
xorps xmm1, xmm1
cvtss2sd xmm1, xmm7
subsd xmm1, xmm6
mulsd xmm0, xmm1
addsd xmm0, xmm6
cvtsd2ss xmm0, xmm0
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rbx
ret
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [rbx + r8*4 + 4], eax
inc r8
cmp r8, r9
jb 0x14004f957
mov dword [0x140378e20], r9d
lea rcx, [0x14037a1a8]
call fcn.14015a38c
jmp 0x14004f924
lea rcx, [0x14037a1a8]
call fcn.14015a3f8
cmp dword [0x14037a1a8], 0xffffffff
jne 0x14004f924
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
or dword [0x14037a1a4], 0xffffffff
mov dword [0x140378e24], eax
mov r8d, 1
mov r9d, 0x270
jmp 0x14004f957