joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14047d900
Capabilities:
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x1498
call fcn.1401909af
sub rsp, rax
mov rax, qword [0x1405bdcc0]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov eax, dword [rsp + 0x14b8]
sar eax, 6
cdqe
lea rcx, [0x1405cbbf0]
mov edx, dword [rsp + 0x14b8]
and edx, 0x3f
movsxd rdx, edx
imul rdx, rdx, 0x48
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + rdx + 0x28]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x14c8]
mov rcx, qword [rsp + 0x14c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x68]
mov rdi, rax
xor eax, eax
mov ecx, 0xc
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x14c0]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x48], rax
jae 0x14047daf2
lea rax, [rsp + 0x147f]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x38], rax
jae 0x14047da46
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x48], rax
jae 0x14047da46
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax]
mov byte [rsp + 0x31], al
mov rax, qword [rsp + 0x48]
inc rax
mov qword [rsp + 0x48], rax
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x30], al
movsx eax, byte [rsp + 0x30]
cmp eax, 0xa
jne 0x14047da2b
mov eax, dword [rsp + 0x70]
inc eax
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x38]
mov byte [rax], 0xd
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rsp + 0x30]
mov byte [rax], cl
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
jmp 0x14047d9c8
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
mov r8d, dword [rsp + 0x40]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14047dab2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x14047db11
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x6c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x44], eax
jae 0x14047daed
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x14047db11
jmp 0x14047d99e
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.1401934b6
add rsp, 0x1498
pop rdi
pop rsi
ret
Function at 0x14047dbc0
Capabilities:
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x1498
call fcn.1401909af
sub rsp, rax
mov rax, qword [0x1405bdcc0]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov eax, dword [rsp + 0x14b8]
sar eax, 6
cdqe
lea rcx, [0x1405cbbf0]
mov edx, dword [rsp + 0x14b8]
and edx, 0x3f
movsxd rdx, edx
imul rdx, rdx, 0x48
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + rdx + 0x28]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x14c8]
mov rcx, qword [rsp + 0x14c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x70]
mov rdi, rax
xor eax, eax
mov ecx, 0xc
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x14c0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x50], rax
jae 0x14047ddcd
lea rax, [rsp + 0x147e]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x38], rax
jae 0x14047dd19
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x50], rax
jae 0x14047dd19
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
mov word [rsp + 0x40], ax
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
movzx eax, word [rsp + 0x40]
mov word [rsp + 0x30], ax
movzx eax, word [rsp + 0x30]
cmp eax, 0xa
jne 0x14047dcf9
mov eax, dword [rsp + 0x78]
add eax, 2
mov dword [rsp + 0x78], eax
mov eax, 0xd
mov rcx, qword [rsp + 0x38]
mov word [rcx], ax
mov rax, qword [rsp + 0x38]
add rax, 2
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movzx ecx, word [rsp + 0x30]
mov word [rax], cx
mov rax, qword [rsp + 0x38]
add rax, 2
mov qword [rsp + 0x38], rax
jmp 0x14047dc88
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov eax, eax
shl rax, 1
mov dword [rsp + 0x44], eax
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x48]
mov r8d, dword [rsp + 0x44]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14047dd8d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x14047ddec
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x74]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x48], eax
jae 0x14047ddc8
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x14047ddec
jmp 0x14047dc5e
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.1401934b6
add rsp, 0x1498
pop rdi
pop rsi
ret
Function at 0x180001630
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x180001663
xor eax, eax
jmp 0x18000172c
mov rax, qword [rsp + 0x38]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x180001690
xor eax, eax
jmp 0x18000172c
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x14]
mov rcx, qword [rsp + 0x28]
lea rax, [rcx + rax + 0x18]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], 0
jmp 0x1800016bc
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 6]
cmp dword [rsp + 0x20], eax
jge 0x18000172a
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x28
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x60]
call fcn.18000e600
test eax, eax
jne 0x180001728
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x28
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + rax + 8]
mov dword [rcx], eax
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x28
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax + 0xc]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
jmp 0x18000172c
jmp 0x1800016b2
xor eax, eax
add rsp, 0x48
ret
Function at 0x140032970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea rsi, [r8 - 1]
mov r15, r9
sar rsi, 1
mov r13, r8
mov rbp, rdx
mov rbx, rcx
mov r14, rdx
mov rdi, rdx
cmp rdx, rsi
jge 0x1400329e8
nop word [rax + rax]
add rdi, rdi
lea rcx, [rbx + 0x10]
lea rcx, [rcx + rdi*8]
lea rdx, [rcx - 8]
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
movzx eax, al
lea rcx, [rbx + rbp*8]
xor rax, 1
inc rax
add rdi, rax
lea rdx, [rbx + rdi*8]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rbp, rdi
cmp rdi, rsi
jl 0x1400329b0
cmp rdi, rsi
jne 0x140032a09
test r13b, 1
jne 0x140032a09
lea rdx, [r13 - 1]
lea rdx, [rbx + rdx*8]
lea rcx, [rbx + rbp*8]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
lea rbp, [r13 - 1]
cmp r14, rbp
jge 0x140032a40
nop
lea rsi, [rbp - 1]
mov rdx, r15
sar rsi, 1
lea rdi, [rbx + rsi*8]
mov rcx, rdi
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
test al, al
je 0x140032a40
lea rcx, [rbx + rbp*8]
mov rdx, rdi
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rbp, rsi
cmp r14, rsi
jl 0x140032a10
lea rcx, [rbx + rbp*8]
mov rdx, r15
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
Function at 0x140064d80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea rax, [r8 - 1]
mov r13, r9
mov rbp, rax
mov qword [rsp + 0x50], rax
sar rbp, 1
mov r15, r8
mov rbx, rdx
mov rsi, rcx
mov r12, rdx
mov r14, rdx
cmp rdx, rbp
jge 0x140064e30
nop dword [rax]
nop word [rax + rax]
lea rdi, [r14 + r14]
mov rax, rdi
lea rdx, [rsi + 0x60]
shl rax, 6
lea rcx, [rsi + 0xa0]
add rdx, rax
add rcx, rax
call fcn.14000ece0
lea r14, [rdi + 1]
movzx eax, al
xor rax, 1
shl rbx, 6
add r14, rax
add rbx, rsi
mov rdi, r14
mov rcx, rbx
shl rdi, 6
add rdi, rsi
mov rdx, rdi
call fcn.14001a2e0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14001a2e0
mov rbx, r14
cmp r14, rbp
jl 0x140064dd0
cmp r14, rbp
jne 0x140064e68
test r15b, 1
jne 0x140064e68
shl r15, 6
shl rbx, 6
add rbx, rsi
mov rcx, rbx
lea rdi, [r15 + rsi]
lea rdx, [rdi - 0x40]
call fcn.14001a2e0
lea rdx, [rdi - 0x20]
lea rcx, [rbx + 0x20]
call fcn.14001a2e0
mov rbx, qword [rsp + 0x50]
cmp r12, rbx
jge 0x140064eb9
nop dword [rax]
lea rdi, [rbx - 1]
sar rdi, 1
lea rdx, [r13 + 0x20]
mov rbp, rdi
shl rbp, 6
add rbp, rsi
lea rcx, [rbp + 0x20]
call fcn.14000ece0
test al, al
je 0x140064eb9
shl rbx, 6
mov rdx, rbp
add rbx, rsi
mov rcx, rbx
call fcn.14001a2e0
lea rcx, [rbx + 0x20]
lea rdx, [rbp + 0x20]
call fcn.14001a2e0
mov rbx, rdi
cmp r12, rdi
jl 0x140064e70
shl rbx, 6
mov rdx, r13
add rbx, rsi
mov rcx, rbx
call fcn.14001a2e0
lea rdx, [r13 + 0x20]
lea rcx, [rbx + 0x20]
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp fcn.14001a2e0

Function at 0x1400665e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
mov eax, 0x13e0
call fcn.140284820
sub rsp, rax
mov rax, qword [0x140468080]
xor rax, rsp
mov qword [rsp + 0x13d8], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov ecx, 1
mov qword [rsp + 0x38], rdx
movabs r8, 0x5851f42d4c957f2d
movabs rax, 0x5555555555555555
mov qword [rsp + 0x13b8], rax
nop word [rax + rax]
mov rax, rdx
shr rax, 0x3e
xor rdx, rax
imul rdx, r8
add rdx, rcx
mov qword [rsp + rcx*8 + 0x38], rdx
inc rcx
cmp rcx, 0x138
jb 0x140066640
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x138
call fcn.140066b70
mov r9, rax
lea r8, str._16llX
mov edx, 0x14
lea rcx, [rsp + 0x13c0]
call fcn.140066580
xorps xmm0, xmm0
lea rax, [rsp + 0x13c0]
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov r8, 0xffffffffffffffff
mov qword [rbx + 0x18], 0
inc r8
cmp byte [rax + r8], 0
jne 0x1400666b5
lea rdx, [rsp + 0x13c0]
mov rcx, rbx
call fcn.140009a00
mov rax, rbx
mov rcx, qword [rsp + 0x13d8]
xor rcx, rsp
call fcn.140283e40
add rsp, 0x13e0
pop rbx
ret
Function at 0x140066b70
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r10, rcx
mov r9d, 0x138
mov ecx, dword [rcx]
cmp ecx, r9d
jne 0x140066bd7
lea r8, [r10 + 0x10]
movabs r11, 0xb5026f5aa96619e9
mov rdx, qword [r8]
xor rdx, qword [r8 - 8]
lea r8, [r8 + 8]
and rdx, 0xffffffff80000000
xor rdx, qword [r8 - 8]
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, r11
xor rcx, qword [r8 + 0x4d0]
xor rcx, rdx
mov qword [r8 + 0x9b0], rcx
sub r9, 1
jne 0x140066b92
mov ecx, dword [r10]
jmp 0x140066cf8
cmp ecx, 0x270
jb 0x140066cf8
mov qword [rsp + 0x10], rbx
movabs r11, 0xb5026f5aa96619e9
lea rbx, [r10 + 0x9c8]
mov qword [rsp], rdi
mov rax, qword [rbx]
mov edi, 0x9c
nop word [rax + rax]
mov r9, qword [rbx + 8]
mov r8, rbx
add rbx, 8
mov rdx, r9
xor rdx, rax
and rdx, 0xffffffff80000000
xor rdx, r9
movzx eax, dl
and al, 1
neg al
mov rax, r9
sbb rcx, rcx
shr rdx, 1
and rcx, r11
xor rcx, qword [r8 + 0x4e0]
xor rcx, rdx
mov qword [r8 - 0x9c0], rcx
sub rdi, 1
jne 0x140066c10
lea rbx, [r10 + 0xea8]
mov edi, 0x9b
mov r9, qword [rbx]
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rbx + 8]
mov rdx, rbx
xor r9, r8
add rbx, 8
and r9, 0xffffffff80000000
xor r9, r8
movzx eax, r9b
and al, 1
neg al
sbb rcx, rcx
shr r9, 1
and rcx, r11
xor rcx, qword [rdx - 0xea0]
xor rcx, r9
mov r9, r8
mov qword [rdx - 0x9c0], rcx
sub rdi, 1
jne 0x140066c70
mov rdx, qword [r10 + 8]
xor rdx, qword [r10 + 0x1380]
mov rdi, qword [rsp]
and rdx, 0xffffffff80000000
xor rdx, qword [r10 + 8]
mov rbx, qword [rsp + 0x10]
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, r11
xor rcx, qword [r10 + 0x4e0]
xor rcx, rdx
mov qword [r10 + 0x9c0], rcx
xor ecx, ecx
mov dword [r10], ecx
mov eax, ecx
mov rdx, qword [r10 + rax*8 + 8]
lea eax, [rcx + 1]
mov dword [r10], eax
mov rcx, rdx
mov rax, qword [r10 + 0x1388]
shr rcx, 0x1d
and rax, rcx
movabs rcx, 0x38eb3ffff6d3
xor rdx, rax
mov rax, rdx
and rax, rcx
shl rax, 0x11
xor rdx, rax
mov rax, rdx
and rax, 0xffffffffffffbf77
shl rax, 0x25
xor rdx, rax
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
add rsp, 8
ret
Function at 0x1401974c0
Capabilities:
Hash data using fnv

Disassembly:
mov r9, qword [rdx]
movabs r11, 0x100000001b3
mov rax, r9
movabs rdx, 0xcbf29ce484222325
shr rax, 8
movzx r10d, al
movzx eax, r9b
xor rax, rdx
imul rax, r11
xor r10, rax
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
shr rax, 0x18
imul r10, r11
shr r9, 0x20
xor r10, rcx
movzx r8d, r9b
movzx ecx, al
xor r8, rdx
imul r8, r11
imul r10, r11
mov eax, r9d
sar eax, 8
xor r10, rcx
movzx ecx, al
xor r8, rcx
mov eax, r9d
sar eax, 0x10
movzx ecx, al
imul r8, r11
imul r10, r11
xor r8, rcx
sar r9d, 0x18
imul r8, r11
movzx eax, r9b
xor r8, rax
mov eax, 0x9e3779b9
imul r8, r11
mov rcx, r8
mov rdx, r8
shl rcx, 6
shr rdx, 2
add rcx, r10
add rax, rdx
add rax, rcx
xor rax, r8
ret
Function at 0x14020ff20
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 0x14020ff48
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 0x14020ff6e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x14020ff70
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x14020ffc9
test ecx, ecx
jle 0x14020ffa9
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 0x14020ffc9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x14020ffc9
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 0x14020fff0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r14
sub rsp, 0x20
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140210021
xor eax, eax
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
cmp qword [rcx + 0x68], 0
je 0x14021003f
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
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 + 0x30], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x14021005b
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14021005d
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140210099
mov qword [rsp + 0x38], 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 + 0x38]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14021012e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x1402100d4
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 0x14021010e
nop dword [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 0x14021012e
cmp rbx, rax
ja 0x1402100e0
test rbx, rbx
je 0x14021012e
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
mov rsi, qword [rsp + 0x48]
sub rbp, rbx
mov rbx, qword [rsp + 0x30]
mov rax, rbp
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x140210590
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140468080]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x1402105bd
xor eax, eax
jmp 0x140210729
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x1402105f7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x1402105f7
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 0x140210729
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14021071c
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14021063a
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 0x140210665
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 0x140210721
lea rax, [rsp + 0x48]
mov byte [rsp + 0x40], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x41]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x40]
lea rax, [rsp + 0x50]
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 0x1402106d4
sub eax, 1
je 0x1402106d4
cmp eax, 2
jne 0x14021071c
movsx ecx, byte [rsp + 0x40]
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 0x140210721
mov rsi, qword [rsp + 0x48]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140210702
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 0x14021071c
lea rax, [rsp + 0x40]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x50], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140210721
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140283e40
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140210e00
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140468080]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140210ed3
cmp byte [rcx + 0x71], 0
je 0x140210ed3
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x140210ecf
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 0x140210e94
sub eax, 1
je 0x140210e98
cmp eax, 2
jne 0x140210ecf
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140283e40
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140210ec6
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 0x140210ecf
cmp byte [rbx + 0x71], 0
sete al
jmp 0x140210e7c
xor al, al
jmp 0x140210e7c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140283e40
add rsp, 0x60
pop rbx
ret

Function at 0x14022b9c0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x370
mov rax, qword [0x140468080]
xor rax, rsp
mov qword [rsp + 0x360], rax
mov rdi, rcx
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x104
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x150]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0xe
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rbx, 0xffffffffffffffff
lea rax, [rsp + 0x150]
mov rdx, rbx
nop dword [rax + rax]
inc rdx
cmp word [rax + rdx*2], 0
jne 0x14022ba30
mov r9d, 0x104
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x150]
call qword [sym.imp.obs.dll_os_wcs_to_utf8]
xorps xmm0, xmm0
lea rax, [rsp + 0x40]
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x14022ba70
mov r8, rbx
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.140009a00
mov rax, rdi
mov rcx, qword [rsp + 0x360]
xor rcx, rsp
call fcn.140283e40
mov rbx, qword [rsp + 0x388]
add rsp, 0x370
pop rdi
ret