joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401c34a0
Capabilities:
Decode data using base64 via winapi

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r14, rdx
mov rdi, rcx
mov qword [rsp + 0x48], rcx
xor ebp, ebp
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
lea r12, [rsp + 0xc8]
movabs r13, 0xff00ff00ff00ff00
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r12
mov rbx, qword [r12]
mov rsi, rbx
xor rsi, r13
mov qword [rsp + 0x68], rsi
mov qword [r12], rbp
mov rcx, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x1401c351a
mov rcx, qword [rdx]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rbp
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8d, [r9 + 1]
mov edx, dword [rdx + 0x10]
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x1401c3556
mov qword [rdi], rbp
mov qword [rdi + 8], rbp
mov qword [rdi + 0x10], rbp
mov qword [r12], rbx
jmp 0x1401c363a
mov r15d, dword [rsp + 0x48]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rbp
test r15, r15
je 0x1401c3593
mov edx, r15d
lea rcx, [rsp + 0x50]
call fcn.1401c18c0
mov rcx, qword [rsp + 0x50]
lea rbx, [r15 + rcx]
mov r8d, r15d
xor edx, edx
call fcn.140235fa8
mov qword [rsp + 0x58], rbx
mov edx, dword [r14 + 0x10]
cmp qword [r14 + 0x18], 0x10
jb 0x1401c35a1
mov r14, qword [r14]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rbp
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8d, 1
mov rcx, r14
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x1401c3619
mov qword [rdi], rbp
mov qword [rdi + 8], rbp
mov qword [rdi + 0x10], rbp
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1401c3633
mov rdx, qword [rsp + 0x60]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c3612
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c3612
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140234e40
jmp 0x1401c3633
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], rdx
xor rsi, r13
mov qword [r12], rsi
mov rax, rdi
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140234e20
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1401c9b60
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor esi, esi
lea rbp, [0x140280720]
mov qword [rsp + 0x28], rbp
mov rcx, rbp
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1401c9baf
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
nop
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1401c9bd4
mov ecx, 1
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rdi, rax
test rax, rax
jne 0x1401c9bf6
call qword [sym.imp.USER32.dll_CloseClipboard]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rsi
xor r8d, r8d
lea rdx, [0x14025fb83]
mov rcx, rbx
call fcn.1401d4c30
jmp 0x1401c9c75
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
je 0x1401c9bce
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1401c9c20
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1401d4c30
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
call qword [sym.imp.USER32.dll_CloseClipboard]
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rbx + 0x10], xmm1
movdqa xmm0, xmmword [0x140265130]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call fcn.140210af0
nop
mov rcx, rbp
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov rax, rbx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140234e20
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1401c9cb0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, r8
mov rbx, rdx
mov r9, rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x30], xmm0
lea r15, [rsp + 0x78]
movabs rbp, 0xff00ff00ff00ff00
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], r15
mov rsi, qword [r15]
xor rsi, rbp
mov qword [rsp + 0x30], rsi
mov qword [r15], rax
lea r14, [r8 + 0x10]
cmp qword [r14], rax
je 0x1401c9e07
cmp qword [rdx + 0x18], 0x10
jb 0x1401c9d29
mov rcx, qword [rdx]
mov rdx, qword [rdx + 0x10]
add rdx, rcx
jmp 0x1401c9d33
mov rdx, qword [rdx + 0x10]
add rdx, rbx
mov rcx, rbx
mov dword [rsp + 0x20], 0x10
call fcn.140218fa0
test al, al
je 0x1401c9e07
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1401c9d55
mov rdx, qword [rdi]
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x1401c9d63
mov rbx, qword [rbx]
cmp r8, qword [r14]
jne 0x1401c9d78
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1401c9e07
lea rax, [rsp + 0x78]
mov qword [rax], 0
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1401c9e03
call qword [sym.imp.USER32.dll_EmptyClipboard]
mov rdx, qword [r14]
inc rdx
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
test rax, rax
jne 0x1401c9db9
call qword [sym.imp.USER32.dll_CloseClipboard]
mov al, 1
jmp 0x1401c9e09
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalLock]
cmp qword [rdi + 0x18], 0x10
jb 0x1401c9dcc
mov rdi, qword [rdi]
mov r8, qword [r14]
inc r8
mov rdx, rdi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, rbx
mov ecx, 1
call qword [sym.imp.USER32.dll_SetClipboardData]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov al, 1
jmp 0x1401c9e09
xor al, al
xor rsi, rbp
mov qword [r15], rsi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140234e20
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1401ceee0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
lea r14, [rsp + 0x78]
movabs r15, 0xff00ff00ff00ff00
mov qword [r11 - 0x30], r15
mov qword [r11 - 0x28], r14
mov rbp, qword [r14]
xor rbp, r15
mov qword [r11 - 0x38], rbp
xor esi, esi
mov qword [r14], rsi
movups xmmword [rsp + 0x20], xmm0
mov qword [r11 - 0x48], rsi
mov qword [r11 - 0x40], 0xf
mov byte [rsp + 0x20], sil
cmp qword [rcx + 0x18], 0x10
jb 0x1401cef5e
mov rdi, qword [rcx]
mov rbx, rdi
add rdi, qword [rcx + 0x10]
jmp 0x1401cef68
mov rdi, qword [rcx + 0x10]
add rdi, rcx
mov rbx, rcx
cmp rbx, rdi
je 0x1401cf05b
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je 0x1401cefbe
movzx r9d, byte [rbx]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
cmp rcx, rdx
jae 0x1401cefb4
lea rax, [rcx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x20]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x1401cefbe
lea rcx, [rsp + 0x20]
call fcn.140214460
inc rbx
cmp rbx, rdi
jne 0x1401cef71
mov rax, qword [rsp + 0x30]
add rax, 0xfffffffffffffff3
cmp rax, 6
ja 0x1401cf05b
lea rbx, [rsp + 0x78]
mov r11, qword [rbx]
mov qword [rbx], rsi
xor r8b, r8b
mov eax, dword [rsp + 0x30]
sub eax, 1
movsxd rdx, eax
js 0x1401cf02f
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x20]
nop dword [rax]
lea rax, [rsp + 0x20]
cmp r9, 0x10
cmovae rax, r10
movsx ecx, byte [rax + rdx]
sub ecx, 0x30
test r8b, r8b
je 0x1401cf023
add ecx, ecx
cmp ecx, 9
jle 0x1401cf023
sub ecx, 9
add esi, ecx
xor r8b, 1
sub rdx, 1
jns 0x1401cf000
mov qword [rbx], r11
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
cmp esi, eax
jne 0x1401cf05b
lea rcx, [rsp + 0x20]
call fcn.1401ccce0
movzx ebx, al
jmp 0x1401cf05d
xor bl, bl
lea rcx, [rsp + 0x20]
call fcn.140210af0
nop
xor rbp, r15
mov qword [r14], rbp
movzx eax, bl
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140234e20
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1401cf0a0
Capabilities:
Enumerate processes
Terminate process

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x280
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x278], rax
mov rdi, rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r11 - 0x48], xmm0
lea r12, [rsp + reloc.SHELL32.dll_IsUserAnAdmin]
movabs r13, 0xff00ff00ff00ff00
mov qword [r11 - 0x40], r13
mov qword [r11 - 0x38], r12
mov r14, qword [r12]
xor r14, r13
mov qword [r11 - 0x48], r14
mov qword [r12], rax
xor edx, edx
lea ecx, [rax + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1401cf146
lea rdx, str.Failed_to_create_snapshot.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140212970
lea rdx, [0x140212b40]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor sil, sil
jmp 0x1401cf22b
mov dword [rsp + 0x20], 0x238
lea rdx, [rsp + 0x20]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x1401cf171
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor sil, sil
jmp 0x1401cf22b
xor sil, sil
mov r15d, 1
nop word [rax + rax]
lea rcx, [rsp + 0x4c]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1401cf190
mov rdx, qword [rdi + 0x10]
mov r8, rdi
cmp qword [rdi + 0x18], 8
jb 0x1401cf1ab
mov r8, qword [rdi]
cmp rdx, rax
jne 0x1401cf20b
lea rax, [rsp + 0x4c]
test rdx, rdx
je 0x1401cf1d5
lea rcx, [rsp + 0x4c]
sub r8, rcx
movzx ecx, word [r8 + rax]
cmp cx, word [rax]
jne 0x1401cf20b
add rax, 2
sub rdx, r15
jne 0x1401cf1c2
mov r8d, dword [rsp + 0x28]
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x1401cf20b
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
movzx esi, sil
test eax, eax
cmovne esi, r15d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x20]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x1401cf180
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor r14, r13
mov qword [r12], r14
movzx eax, sil
mov rcx, qword [rsp + 0x278]
xor rcx, rsp
call fcn.140234e20
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x14020c180
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x14020c1a8
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp 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]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14020c1ce
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x14020c1d0
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x14020c229
test ecx, ecx
jle 0x14020c209
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x14020c229
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x14020c229
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x14020c250
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x14020c272
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x14020c288
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp 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]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x14020c2a4
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14020c2a6
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14020c2e2
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14020c37e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x14020c31d
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x14020c35e
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x14020c37e
cmp rbx, rax
ja 0x14020c330
test rbx, rbx
je 0x14020c37e
mov r9, qword [rsi + 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 rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x14020c780
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14020c7ad
xor eax, eax
jmp 0x14020c919
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x14020c7e7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x14020c7e7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x14020c919
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14020c90c
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14020c82a
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x14020c855
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14020c911
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
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 0x14020c8c4
sub eax, 1
je 0x14020c8c4
cmp eax, 2
jne 0x14020c90c
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14020c911
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x14020c8f2
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x14020c90c
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x14020c911
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140234e20
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x14020d270
Capabilities:
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x80
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, 0xffff
movzx esi, dx
mov rbx, rcx
cmp di, dx
jne 0x14020d2a1
xor eax, eax
jmp 0x14020d3f0
mov rax, qword [rcx + 0x40]
mov r8, qword [rax]
test r8, r8
je 0x14020d2de
mov r9, qword [rcx + 0x58]
movsxd r10, dword [r9]
lea rdx, [r8 + r10*2]
cmp r8, rdx
jae 0x14020d2de
lea ecx, [r10 - 1]
movzx eax, si
mov dword [r9], ecx
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 2]
mov qword [rdx], rcx
mov word [r8], si
jmp 0x14020d3f0
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xb0], rbp
je 0x14020d3e5
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x14020d325
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
mov qword [r8], rcx
sub rdx, rcx
mov rax, qword [rbx + 0x38]
sar rdx, 1
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x14020d34f
movzx ecx, si
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputwc]
cmp ax, di
je 0x14020d3e5
movzx edi, si
jmp 0x14020d3e5
lea rax, [rsp + 0x40]
mov word [rsp + 0x50], si
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x52]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_wchar_t__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14020d3a5
sub eax, 1
je 0x14020d3a5
cmp eax, 2
jne 0x14020d3e5
movzx ecx, word [rsp + 0x50]
jmp 0x14020d331
mov rbp, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rbp, rax
je 0x14020d3d3
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rbp
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbp, rax
jne 0x14020d3e5
lea rax, [rsp + 0x50]
mov byte [rbx + 0x72], 1
cmp qword [rsp + 0x48], rax
cmovne di, si
mov rbp, qword [rsp + 0xb0]
movzx eax, di
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140234e20
add rsp, 0x80
pop rdi
pop rsi
pop rbx
ret

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

Disassembly:
mov dword [rcx + 0x1384], 0xffffffff
lea r9, [rcx + 8]
mov dword [rcx + 4], edx
mov r8d, 1
nop word [rax + rax]
mov eax, edx
lea r9, [r9 + 4]
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
inc r8
mov dword [r9 - 4], edx
cmp r8, 0x270
jb 0x14020dcc0
mov dword [rcx], 0x270
mov rax, rcx
ret

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

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x14020e974
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x14020e960
ret
Function at 0x14020fef0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x14020ffc3
cmp byte [rcx + 0x71], 0
je 0x14020ffc3
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14020ffbf
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 0x14020ff84
sub eax, 1
je 0x14020ff88
cmp eax, 2
jne 0x14020ffbf
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140234e20
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x14020ffb6
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 0x14020ffbf
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14020ff6c
xor al, al
jmp 0x14020ff6c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140234e20
add rsp, 0x60
pop rbx
ret

Function at 0x1402101d0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140275028]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x1402102a5
cmp byte [rcx + 0x72], 0
je 0x1402102a5
mov rax, qword [rcx]
mov qword [rsp + 0x78], rdi
mov edi, 0xffff
mov edx, edi
call qword [rax + 0x18]
cmp di, ax
je 0x1402102a1
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_wchar_t__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140210266
sub eax, 1
je 0x14021026a
cmp eax, 2
jne 0x1402102a1
mov byte [rbx + 0x72], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140234e20
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x72], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140210298
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 0x1402102a1
cmp byte [rbx + 0x72], 0
sete al
jmp 0x14021024e
xor al, al
jmp 0x14021024e
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140234e20
add rsp, 0x60
pop rbx
ret