joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400d43d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r14
sub rsp, 0x250
mov rax, qword [0x140122040]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov eax, dword [rcx + 0x58]
lea rbx, [rsp + 0x30]
mov dword [rsp + 0x40], eax
mov ebp, r9d
mov eax, dword [rcx + 0x5c]
mov rsi, rcx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x290]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x3c], r8d
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x278], rdi
nop dword [rax]
mov r10d, dword [rbx + 0x14]
mov eax, r10d
mov r14d, dword [rbx + 4]
cmp r10d, r14d
mov r9d, dword [rbx + 0xc]
cmovg eax, r14d
cmp r9d, eax
jl 0x1400d456c
cmp r10d, r14d
mov eax, r14d
cmovg eax, r10d
cmp r9d, eax
jg 0x1400d456c
cmp r10d, r14d
jne 0x1400d4470
sub rbx, 0x10
jmp 0x1400d45b4
mov edx, dword [rsi + 0x88]
xor r9d, r9d
cmp r10d, r14d
setge r9b
inc r9d
cmp edx, r9d
je 0x1400d44e2
mov eax, dword [rsi + 4]
mov ecx, eax
mov r8d, dword [rsi + 8]
neg ecx
cmp r10d, r14d
jge 0x1400d44a4
dec eax
add eax, r10d
and eax, ecx
sub eax, r10d
jmp 0x1400d44ac
and ecx, r10d
mov eax, r10d
sub eax, ecx
cmp eax, r8d
setge r11b
test edx, edx
je 0x1400d44cb
movzx edx, r11b
mov rcx, rsi
call fcn.1400d5580
test al, al
jne 0x1400d45c5
movzx r8d, r11b
mov edx, r9d
mov rcx, rsi
call fcn.1400d5bf0
test al, al
jne 0x1400d45c5
mov edx, dword [rsi + 0x64]
lea r9, [0x1400d5f50]
mov ecx, dword [rsi + 0x60]
mov r8, rbx
cmp r10d, r14d
jge 0x1400d450e
mov dword [rsp + 0x28], edx
mov edx, 2
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.1400d4250
jmp 0x1400d4562
mov eax, dword [rbx + 4]
neg ecx
movzx edi, byte [rsi + 0x6a]
neg eax
mov dword [rbx + 4], eax
neg edx
mov eax, dword [rbx + 0xc]
neg eax
mov dword [rsp + 0x28], ecx
mov dword [rbx + 0xc], eax
mov rcx, rsi
mov eax, dword [rbx + 0x14]
neg eax
mov dword [rsp + 0x20], edx
mov edx, 2
mov dword [rbx + 0x14], eax
call fcn.1400d4250
test dil, dil
je 0x1400d455a
cmp byte [rsi + 0x6a], 0
jne 0x1400d455a
mov rdx, qword [rsi + 0x70]
mov ecx, dword [rdx + 0x20]
neg ecx
mov dword [rdx + 0x20], ecx
mov ecx, dword [rbx + 4]
neg ecx
mov dword [rbx + 4], ecx
test al, al
jne 0x1400d45c5
sub rbx, 0x10
jmp 0x1400d45b4
mov eax, dword [rbx + 8]
mov ecx, dword [rbx + 0x10]
mov dword [rbx + 0x20], ecx
add ecx, eax
mov dword [rbx + 0x24], r10d
lea edx, [rax + rbp]
mov eax, ecx
sar eax, 1
mov dword [rbx + 0x18], eax
lea eax, [rcx + rdx]
sar eax, 2
lea ecx, [r10 + r9]
mov dword [rbx + 0x10], eax
mov eax, ecx
sar edx, 1
sar eax, 1
mov dword [rbx + 8], edx
lea edx, [r14 + r9]
mov dword [rbx + 0x1c], eax
lea eax, [rcx + rdx]
sar eax, 2
sar edx, 1
mov dword [rbx + 0x14], eax
mov dword [rbx + 0xc], edx
add rbx, 0x10
lea rax, [rsp + 0x30]
cmp rbx, rax
jb 0x1400d45c9
mov ebp, dword [rbx]
jmp 0x1400d4430
mov al, 1
jmp 0x1400d45d2
mov dword [rsi + 0x58], ebp
xor al, al
mov dword [rsi + 0x5c], r14d
mov rdi, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1400e04a0
mov rbx, qword [rsp + 0x280]
add rsp, 0x250
pop r14
pop rsi
pop rbp
ret
Function at 0x1400da920
Capabilities:
Get file size
Read file on windows
Read file via mapping

Disassembly:
push rbx
push rbp
sub rsp, 0x48
mov rbp, rdx
mov rbx, rcx
test rcx, rcx
jne 0x1400da93c
lea eax, [rcx + 0x28]
add rsp, 0x48
pop rbp
pop rbx
ret
mov qword [rsp + 0x68], rsi
xor r9d, r9d
mov qword [rsp + 0x40], r14
mov edx, 0x80000000
xor r14d, r14d
mov rcx, rbp
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
lea r8d, [r14 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400da990
mov r14, qword [rsp + 0x40]
lea eax, [rsi + 2]
mov rsi, qword [rsp + 0x68]
add rsp, 0x48
pop rbp
pop rbx
ret
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x78], rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400daab5
mov rax, qword [rsp + 0x70]
cmp rax, 0x7fffffff
jg 0x1400daab5
test rax, rax
je 0x1400daab5
xor r9d, r9d
mov qword [rsp + 0x28], r14
xor edx, edx
mov dword [rsp + 0x20], r14d
mov rcx, rsi
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov rdi, rax
test rax, rax
je 0x1400daab5
mov ecx, dword [rsp + 0x70]
xor r9d, r9d
mov dword [rbx + 8], ecx
xor r8d, r8d
mov rcx, rax
mov dword [rbx + 0xc], r14d
mov qword [rsp + 0x20], r14
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rcx, rdi
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], r14
je 0x1400daa2a
lea rax, [0x1400dab10]
jmp 0x1400daa83
mov rcx, qword [rbx + 0x30]
xor edx, edx
movsxd r8, dword [rbx + 8]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
test rax, rax
je 0x1400daab5
mov edi, r14d
nop dword [rax + rax]
mov r8d, dword [rbx + 8]
lea r9, [rsp + 0x60]
mov edx, edi
sub r8d, edi
add rdx, qword [rbx]
mov rcx, rsi
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400daaa3
add edi, dword [rsp + 0x60]
cmp edi, dword [rbx + 8]
jne 0x1400daa50
lea rax, [0x1400daae0]
mov rcx, rsi
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbx]
mov qword [rbx + 0x10], rax
xor eax, eax
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x20], r14
jmp 0x1400daaca
mov rcx, qword [rbx + 0x30]
xor edx, edx
mov r8, qword [rbx]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x51
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x40]
add rsp, 0x48
pop rbp
pop rbx
ret
Function at 0x1400db810
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rdx
test rdx, rdx
jne 0x1400db81b
xor eax, eax
ret
lea r11, [0x1400ff1f0]
not ecx
cmp r8d, 8
jb 0x1400db8f1
mov r10d, r8d
shr r10, 3
nop word [rax + rax]
movzx edx, byte [r9]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
add r8d, 0xfffffff8
movzx edx, byte [r9 + 1]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 2]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 3]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 4]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 5]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 6]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 7]
add r9, 8
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
sub r10, 1
jne 0x1400db840
test r8d, r8d
je 0x1400db91d
nop word [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
add r8d, 0xffffffff
jne 0x1400db900
not ecx
mov eax, ecx
ret
Function at 0x1400df4ec
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x1400df526
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x1400df52b
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x1400df574
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400ff940]
cmp byte [rcx + rax], 0
je 0x1400df574
dec r8
sub rdx, 1
jne 0x1400df55a
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x1400e09cc
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400e0a16
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400e0a16
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400e0a16
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400e0a16
cmp dword [rcx + 0x84], 0xe
jbe 0x1400e0a16
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400e0a18
xor al, al
add rsp, 0x28
ret
Function at 0x140008e70
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [0x1400fa040]
xor rax, rsp
mov qword [rbp + 0x3f], rax
xor r14d, r14d
mov dword [rbp - 0x29], 0x67694c7c
xorps xmm0, xmm0
mov qword [rbp - 9], r14
mov rsi, r8
mov qword [rbp - 1], r14
movups xmmword [rbp - 0x19], xmm0
mov rbx, rdx
mov dword [rbp - 0x25], 0x6e697468
mov rdi, rcx
mov word [rbp - 0x21], 0x67
lea rax, [rbp - 0x28]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r14b
jne 0x140008ed2
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x19]
call fcn.140002e80
lea r8, [rbp - 0x19]
lea rdx, [rbp - 0x29]
lea rcx, [0x14011a700]
call fcn.140008870
mov ecx, dword [0x14011a678]
lea r8, [rbp + 0x17]
movaps xmm0, xmmword [rsi]
mov r9d, 0x28
mov rax, qword [rbp - 0x29]
mov edx, 0x2201c4
add rax, 0xec
mov qword [rsp + 0x38], r14
mov qword [rbp + 0x1f], rax
lea rax, [rbp + 7]
mov dword [rbp + 0x1b], ecx
mov rcx, qword [0x14011a680]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rbp + 0x27], rax
movaps xmmword [rbp + 7], xmm0
mov dword [rbp + 0x38], r14d
mov word [rbp + 0x3c], r14w
mov byte [rbp + 0x3e], r14b
mov dword [rbp + 0x17], 0x85b3e12
mov qword [rbp + 0x2f], 0x10
mov byte [rbp + 0x37], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [rdi]
mov rax, rbx
mov qword [rbx], rcx
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1400c5090
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret

Function at 0x140009110
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
movzx esi, byte [0x14011da38]
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov rbx, rdx
lea rax, [rsp + 0x21]
mov dword [rsp + 0x20], 0x67694c62
mov rdi, rcx
mov dword [rsp + 0x24], 0x6e697468
mov word [rsp + 0x28], 0x67
mov r8, 0xffffffffffffffff
movups xmmword [rsp + 0x30], xmm0
inc r8
cmp byte [rax + r8], 0
jne 0x140009163
lea rdx, [rsp + 0x21]
lea rcx, [rsp + 0x30]
call fcn.140002e80
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [0x14011a700]
call fcn.140008870
mov rcx, qword [rsp + 0x60]
movzx edx, sil
add rcx, 0x133
call fcn.14000b0a0
mov rax, qword [rdi]
mov rsi, qword [rsp + 0x70]
mov qword [rbx], rax
mov rax, rbx
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x1400091c0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
xor eax, eax
movaps xmmword [rsp + 0x50], xmm6
movss xmm6, dword [0x1401194c8]
xorps xmm0, xmm0
mov qword [rsp + 0x40], rax
mov rbx, rdx
mov qword [rsp + 0x48], rax
mov rdi, rcx
lea rax, [rsp + 0x21]
mov dword [rsp + 0x20], 0x67694c43
mov dword [rsp + 0x24], 0x6e697468
mov r8, 0xffffffffffffffff
mov word [rsp + 0x28], 0x67
movups xmmword [rsp + 0x30], xmm0
inc r8
cmp byte [rax + r8], 0
jne 0x140009214
lea rdx, [rsp + 0x21]
lea rcx, [rsp + 0x30]
call fcn.140002e80
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x70]
lea rcx, [0x14011a700]
call fcn.140008870
mov rcx, qword [rsp + 0x70]
movaps xmm1, xmm6
add rcx, 0x118
call fcn.14000b230
mov rax, qword [rdi]
movaps xmm6, xmmword [rsp + 0x50]
mov qword [rbx], rax
mov rax, rbx
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret

Function at 0x140009c20
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 0x140009c48
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 0x140009c6e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140009c70
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x140009cc9
test ecx, ecx
jle 0x140009ca9
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 0x140009cc9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x140009cc9
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 0x140009cf0
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 0x140009d12
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x140009d28
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 0x140009d44
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140009d46
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140009d82
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 0x140009e1e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x140009dbd
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 0x140009dfe
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 0x140009e1e
cmp rbx, rax
ja 0x140009dd0
test rbx, rbx
je 0x140009e1e
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 0x14000a240
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x1400fa040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14000a26d
xor eax, eax
jmp 0x14000a3d9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x14000a2a7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x14000a2a7
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 0x14000a3d9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14000a3cc
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14000a2ea
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 0x14000a315
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 0x14000a3d1
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 0x14000a384
sub eax, 1
je 0x14000a384
cmp eax, 2
jne 0x14000a3cc
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 0x14000a3d1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x14000a3b2
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 0x14000a3cc
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x14000a3d1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400c5090
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x14000a680
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1400fa040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x14000a753
cmp byte [rcx + 0x71], 0
je 0x14000a753
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14000a74f
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 0x14000a714
sub eax, 1
je 0x14000a718
cmp eax, 2
jne 0x14000a74f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400c5090
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x14000a746
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 0x14000a74f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000a6fc
xor al, al
jmp 0x14000a6fc
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400c5090
add rsp, 0x60
pop rbx
ret
Function at 0x1400123a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xb0
cmp qword [rdx + 0x18], 0xf
mov rdi, rdx
mov rsi, qword [rcx]
mov rbx, rcx
mov r8, qword [rdx + 0x10]
movaps xmmword [rsp + 0xa0], xmm6
movaps xmm6, xmm2
jbe 0x1400123d4
mov rdx, qword [rdx]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
test r8, r8
je 0x140012403
movabs r10, 0x100000001b3
nop
movzx eax, byte [rcx + rdx]
inc rcx
xor r9, rax
imul r9, r10
cmp rcx, r8
jb 0x1400123f0
mov r8, rdi
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140013810
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400125a3
cmp rcx, qword [rsi + 8]
je 0x1400125a3
movaps xmmword [rsp + 0x90], xmm7
lea rdx, [rsp + 0x50]
movaps xmmword [rsp + 0x80], xmm8
mov r8, rdi
movss xmm8, dword [rcx + 0x30]
movaps xmmword [rsp + 0x70], xmm9
movss xmm9, dword [rcx + 0x34]
mov rcx, qword [rbx + 8]
movaps xmmword [rsp + 0x60], xmm10
call fcn.1400131e0
xorps xmm10, xmm10
mov rcx, qword [rax]
movsd xmm2, qword [rcx + 0x30]
movaps xmm0, xmm2
movsd qword [rsp + 0x30], xmm2
addss xmm0, xmm10
movaps xmm1, xmm2
shufps xmm1, xmm1, 0x55
addss xmm6, xmm1
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rcx + 0x38]
lea rcx, [rsp + 0x40]
addss xmm0, xmm10
movss dword [rsp + 0x44], xmm6
movss dword [rsp + 0x48], xmm0
call fcn.140008380
mov qword [rsp + 0x30], rax
movss xmm7, dword [rsp + 0x30]
comiss xmm7, xmm10
jb 0x140012586
mov rax, qword [rbx + 0x10]
movss xmm0, dword [rax]
comiss xmm0, xmm7
jb 0x140012586
movss xmm6, dword [rsp + 0x34]
comiss xmm6, xmm10
jb 0x140012586
movss xmm0, dword [rax + 4]
comiss xmm0, xmm6
jb 0x140012586
cmp byte [0x14011a6a1], 0
je 0x140012541
mov rax, qword [rbx + 0x28]
lea r8, [rsp + 0x30]
mov r9, qword [rbx + 0x20]
lea rdx, [rsp + 0x40]
mov rcx, qword [rbx + 0x18]
movss dword [rsp + 0x30], xmm7
movss xmm0, dword [rax]
mov r9d, dword [r9]
mov rcx, qword [rcx]
movss dword [rsp + 0x20], xmm0
movss dword [rsp + 0x34], xmm6
movss dword [rsp + 0x40], xmm8
movss dword [rsp + 0x44], xmm9
call fcn.1400716a0
mov rax, qword [rbx + 0x38]
lea r8, [rsp + 0x40]
mov r9, qword [rbx + 0x30]
lea rdx, [rsp + 0x30]
mov rcx, qword [rbx + 0x18]
movss dword [rsp + 0x40], xmm7
movss xmm0, dword [rax]
mov r9d, dword [r9]
mov rcx, qword [rcx]
movss dword [rsp + 0x20], xmm0
movss dword [rsp + 0x44], xmm6
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x34], xmm9
call fcn.1400716a0
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm10, xmmword [rsp + 0x60]
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop rdi
ret
Function at 0x1400248f0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rdi
sub rsp, 0x20
mov eax, 1
mov qword [rsp + 0x38], rsi
mov r11, rcx
mov rdi, rdx
movzx ecx, byte [rdx + 0xb]
shl eax, cl
cmp byte [rdx + 0xa], 0
cdqe
lea r8, [rax + rax*2]
mov rax, qword [rdx + 0x18]
lea rsi, [rax + r8*8]
jge 0x140024950
mov ecx, dword [rdx + 0xc]
lea eax, [rcx - 1]
test ecx, eax
je 0x140024950
mov eax, ecx
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
inc eax
jmp 0x140024953
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x14002498e
mov qword [rsp + 0x30], rbx
xor r10d, r10d
mov ebx, eax
mov rax, qword [rdi + 0x10]
test byte [r10 + rax + 8], 0x40
je 0x14002497f
mov rdx, qword [r10 + rax]
test byte [rdx + 9], 0x18
je 0x14002497f
mov rcx, r11
call fcn.140024510
add r10, 0x10
sub rbx, 1
jne 0x140024961
mov rbx, qword [rsp + 0x30]
mov r10, qword [rdi + 0x18]
cmp r10, rsi
jae 0x1400249f0
nop word [rax + rax]
movzx eax, byte [r10 + 9]
and al, 0x40
test byte [r10 + 8], 0xf
jne 0x1400249b9
test al, al
je 0x1400249e7
mov byte [r10 + 9], 0xb
jmp 0x1400249e7
test al, al
je 0x1400249cf
mov rdx, qword [r10 + 0x10]
test byte [rdx + 9], 0x18
je 0x1400249cf
mov rcx, r11
call fcn.140024510
test byte [r10 + 8], 0x40
je 0x1400249e7
mov rdx, qword [r10]
test byte [rdx + 9], 0x18
je 0x1400249e7
mov rcx, r11
call fcn.140024510
add r10, 0x18
cmp r10, rsi
jb 0x1400249a0
movzx eax, byte [rdi + 9]
mov rsi, qword [rsp + 0x38]
movzx ecx, al
and cl, 7
cmp cl, 5
jne 0x140024a27
mov rcx, rdi
call fcn.140024480
mov rcx, qword [r11 + 0x90]
mov qword [rax], rcx
mov qword [r11 + 0x90], rdi
and byte [rdi + 9], 0xc7
add rsp, 0x20
pop rdi
ret
cmp cl, 6
jne 0x140024a31
xor al, 2
mov byte [rdi + 9], al
add rsp, 0x20
pop rdi
ret