joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18001e09c
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rdi, rcx
xor esi, esi
mov rcx, qword [rcx + 0x90]
mov r14, rdx
mov rbp, r8
lea edx, [rsi + 0x20]
cmp byte [rdi + 0xb0], sil
jne 0x18001e125
lea r8d, [rsi + 0x40]
mov byte [rdi + 0xb0], 1
mov qword [rdi + 0xa8], rsi
cmp rcx, r8
je 0x18001e0ff
sub r8, rcx
xor edx, edx
add rcx, 0x50
add rcx, rdi
call fcn.18002c230
mov r9b, 1
lea rdx, [rdi + 0x50]
mov r8d, 1
mov rcx, rdi
call fcn.18000aa18
movups xmm0, xmmword [rdi]
movups xmmword [rdi + 0x50], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rdi + 0x60], xmm1
jmp 0x18001e150
cmp rcx, rdx
jae 0x18001e155
mov rax, rdx
mov rsi, rbp
sub rax, rcx
lea rdx, [rcx + rdi]
cmp rax, rbp
mov rcx, r14
cmovb rsi, rax
mov r8, rsi
call fcn.18002bd80
add qword [rdi + 0x90], rsi
mov edx, 0x20
cmp rsi, rbp
jae 0x18001e229
movzx r15d, bp
mov rcx, qword [rdi + 0xa8]
mov rbx, rbp
sub rbx, rsi
mov r9b, 1
cmp rbx, rdx
mov r8d, 1
lea rax, [rcx + 1]
mov qword [rdi + 0xa8], rax
mov eax, ebx
movups xmm0, xmmword [0x18006c000]
cmova eax, edx
movups xmmword [rdi], xmm0
movups xmm1, xmmword [0x18006c010]
xorps xmm0, xmm0
movups xmmword [rdi + 0x10], xmm1
xor dword [rdi], eax
mov eax, r15d
xor eax, dword [rdi + 0xc]
xor dword [rdi + 4], edx
btc eax, 0x1d
xor dword [rdi + 8], ecx
lea rdx, [rdi + 0x50]
mov dword [rdi + 0xc], eax
mov rcx, rdi
mov eax, dword [rdi + 0x20]
xor dword [rdi + 0x10], eax
mov eax, dword [rdi + 0x24]
xor dword [rdi + 0x14], eax
mov eax, dword [rdi + 0x28]
xor dword [rdi + 0x18], eax
mov eax, dword [rdi + 0x2c]
xor dword [rdi + 0x1c], eax
mov qword [rdi + 0x98], 0x100
movups xmmword [rdi + 0x70], xmm0
movups xmmword [rdi + 0x80], xmm0
call fcn.18000aa18
mov eax, 0x20
lea rcx, [rsi + r14]
cmp rbx, rax
mov rdx, rdi
cmova rbx, rax
mov r8, rbx
mov qword [rdi + 0x90], rbx
call fcn.18002bd80
add rsi, qword [rdi + 0x90]
mov edx, 0x20
cmp rsi, rbp
jb 0x18001e162
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x18002968c
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
mov rdi, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x1800296b9
xor eax, eax
jmp 0x1800297b6
cmp qword [rcx + 0x68], 0
je 0x1800296ca
call fcn.1800197ec
jmp 0x1800297b6
mov rax, qword [rcx + 0x38]
mov rbp, rdi
mov rdx, qword [rax]
test rdx, rdx
je 0x1800296e1
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x1800296e3
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x180029718
cmp rax, rdi
mov rbx, rdi
mov rcx, r14
cmovb rbx, rax
mov r8, rbx
call fcn.18002bd80
mov rax, qword [rsi + 0x50]
sub rbp, rbx
add r14, rbx
mov r8, rbp
sub dword [rax], ebx
mov rcx, qword [rsi + 0x38]
movsxd rax, ebx
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x1800297b0
mov r9, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r9], rax
jne 0x180029753
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r9], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
mov r15d, 0xfff
mov rbx, r8
cmp r8, r15
jbe 0x18002978b
mov r9, qword [rsi + 0x80]
mov r8, r15
mov edx, 1
mov rcx, r14
call fcn.180032928
sub rbp, rax
add r14, rax
mov rbx, rbp
cmp rax, r15
jne 0x1800297cf
cmp rbp, r15
ja 0x180029761
mov r8, rbx
test rbx, rbx
je 0x1800297b0
mov r9, qword [rsi + 0x80]
mov r8, rbp
mov edx, 1
mov rcx, r14
call fcn.180032928
mov r8, rbx
sub r8, rax
sub rdi, r8
mov rax, rdi
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
sub rdi, rbp
jmp 0x1800297b3
Function at 0x180030fc8
Capabilities:
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x20
mov esi, r8d
mov ebx, edx
mov r14d, ecx
test r8d, r8d
jne 0x180030de8
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x180030de8
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x180030de8
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x180030de8
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x180030de8
cmp dword [rcx + 0x84], 0xe
jbe 0x180030de8
cmp dword [rcx + 0xf8], esi
je 0x180030de8
mov ecx, r14d
call fcn.180030f30
mov ecx, 2
call fcn.180031360
nop
cmp byte [0x180077380], 0
jne 0x180030eb2
mov r15d, 1
mov eax, r15d
xchg dword [0x180077370], eax
test ebx, ebx
jne 0x180030e5b
mov rdi, qword [0x180075098]
mov edx, edi
and edx, 0x3f
lea ecx, [rbx + 0x40]
sub ecx, edx
xor eax, eax
ror rax, cl
xor rax, rdi
mov rcx, qword [0x180077378]
cmp rcx, rax
je 0x180030e52
xor rdi, rcx
mov ecx, edx
ror rdi, cl
mov rcx, rdi
call qword [method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_8]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rdi
lea rcx, [0x1800776e8]
jmp 0x180030e67
cmp ebx, r15d
jne 0x180030e6d
lea rcx, [0x180077700]
call fcn.180036a98
nop
test ebx, ebx
jne 0x180030e84
lea rdx, [0x1800493c8]
lea rcx, [0x1800493a8]
call fcn.180035eac
lea rdx, [0x1800493d8]
lea rcx, [0x1800493d0]
call fcn.180035eac
movzx eax, byte [0x180077380]
test esi, esi
cmove eax, r15d
mov byte [0x180077380], al
jmp 0x180030eb2
mov ecx, 2
call fcn.1800313b4
test esi, esi
jne 0x180030ec9
mov ecx, r14d
call fcn.180030ee4
int3
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
xor r8d, r8d
xor edx, edx
jmp 0x180030d78
Function at 0x18003e28c
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
mov rbp, rsp
sub rsp, 0x20
test rcx, rcx
jne 0x18003e12c
call fcn.18002f054
mov dword [rax], 0x16
call fcn.18002ef04
or eax, 0xffffffff
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x18003e114
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 0xc
test cl, 1
jne 0x18003e114
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
mov rax, qword [rbp + 0x10]
shr ecx, 1
test cl, 1
je 0x18003e15e
lock or dword [rax + 0x14], 0x10
jmp 0x18003e114
lock or dword [rax + 0x14], 1
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
test ecx, 0x4c0
jne 0x18003e17b
mov rcx, qword [rbp + 0x10]
call fcn.18003f598
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 8]
mov qword [rax], rcx
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.180039c44
mov rdx, qword [rbp + 0x10]
mov ecx, eax
mov r8d, dword [rdx + 0x20]
mov rdx, qword [rdx + 8]
call fcn.18003ee7c
mov dword [rbx + 0x10], eax
mov rax, qword [rbp + 0x10]
mov edx, dword [rax + 0x10]
lea ecx, [rdx + 1]
cmp ecx, 1
ja 0x18003e1d2
neg edx
sbb ecx, ecx
and ecx, 8
add ecx, 8
lock or dword [rax + 0x14], ecx
mov rax, qword [rbp + 0x10]
and dword [rax + 0x10], 0
jmp 0x18003e114
mov ecx, dword [rax + 0x14]
test cl, 6
jne 0x18003e23e
mov rcx, qword [rbp + 0x10]
call fcn.180039c44
cmp eax, 0xffffffff
je 0x18003e225
mov rcx, qword [rbp + 0x10]
call fcn.180039c44
cmp eax, 0xfffffffe
je 0x18003e225
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.180039c44
movsxd rdi, eax
lea rsi, [0x180077740]
mov rcx, rbx
sar rdi, 6
call fcn.180039c44
and eax, 0x3f
shl rax, 6
add rax, qword [rsi + rdi*8]
jmp 0x18003e22c
lea rax, [0x180075450]
mov al, byte [rax + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x18003e23e
mov rax, qword [rbp + 0x10]
lock or dword [rax + 0x14], 0x20
mov rax, qword [rbp + 0x10]
cmp dword [rax + 0x20], 0x200
jne 0x18003e274
mov ecx, dword [rax + 0x14]
shr ecx, 6
test cl, 1
je 0x18003e270
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 8
test cl, 1
jne 0x18003e270
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x20], 0x1000
mov rax, qword [rbp + 0x10]
dec dword [rax + 0x10]
mov rcx, qword [rax]
movzx edx, byte [rcx]
inc rcx
mov qword [rax], rcx
mov eax, edx
jmp 0x18003e117
jmp 0x18003e0e4
Function at 0x14066a058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.14066a1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x14066a089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14066a06f
add dl, dl
jne 0x14066a096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14066a0f6
xor eax, eax
add dl, dl
jne 0x14066a0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14066a1ad
add dl, dl
jne 0x14066a0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14066a0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14066a0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14066a0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x14066a0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x14066a07e
mov eax, 1
add dl, dl
jne 0x14066a106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14066a113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14066a0fb
sub eax, ebx
mov ebx, 1
jne 0x14066a14c
mov ecx, 1
add dl, dl
jne 0x14066a12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14066a13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14066a123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14066a07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x14066a168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14066a175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14066a15d
cmp eax, 0x7d00
jae 0x14066a19b
cmp eax, 0x500
jb 0x14066a196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14066a07e
cmp eax, 0x7f
ja 0x14066a19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14066a07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x14066a1d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x14066a07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x25d6058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x25d61df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, pe_nt_image_headers64
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x25d6089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x25d606f
add dl, dl
jne 0x25d6096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x25d60f6
xor eax, eax
add dl, dl
jne 0x25d60a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x25d61ad
add dl, dl
jne 0x25d60b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x25d60c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x25d60d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x25d60dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x25d60ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x25d607e
mov eax, 1
add dl, dl
jne 0x25d6106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x25d6113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x25d60fb
sub eax, ebx
mov ebx, 1
jne 0x25d614c
mov ecx, 1
add dl, dl
jne 0x25d612e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x25d613b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x25d6123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x25d607e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x25d6168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x25d6175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x25d615d
cmp eax, 0x7d00
jae 0x25d619b
cmp eax, 0x500
jb 0x25d6196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x25d607e
cmp eax, 0x7f
ja 0x25d619e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x25d607e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x25d61d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x25d607e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140009600
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1401c4400]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x1400096d3
cmp byte [rcx + 0x71], 0
je 0x1400096d3
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + Ordinal_26]
cmp eax, 0xffffffff
je 0x1400096cf
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 0x140009694
sub eax, 1
je 0x140009698
cmp eax, 2
jne 0x1400096cf
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14008b1b0
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x1400096c6
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 0x1400096cf
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000967c
xor al, al
jmp 0x14000967c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14008b1b0
add rsp, 0x60
pop rbx
ret
Function at 0x140009950
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x80
mov rax, qword [0x1401c4400]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov esi, edx
mov rdi, rcx
cmp edx, 0xffffffff
jne 0x14000997d
xor eax, eax
jmp 0x140009ae6
mov qword [rsp + 0xa0], rbx
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 0x1400099bd
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 0x1400099bd
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], sil
mov eax, esi
jmp 0x140009ade
cmp qword [rdi + 0x80], 0
je 0x140009ad9
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 0x1400099f7
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 0x140009a22
mov rdx, qword [rdi + 0x80]
movsx ecx, sil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, esi
mov eax, ecx
jmp 0x140009ade
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], sil
mov qword [rsp + 0x38], rax
lea rdx, [rdi + 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 0x140009a91
sub eax, 1
je 0x140009a91
cmp eax, 2
jne 0x140009ad9
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rdi + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, esi
mov eax, ecx
jmp 0x140009ade
mov rbx, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rbx, rax
je 0x140009abf
mov r9, qword [rdi + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rbx
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbx, rax
jne 0x140009ad9
lea rax, [rsp + 0x50]
mov byte [rdi + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, esi
mov eax, ecx
jmp 0x140009ade
mov eax, 0xffffffff
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14008b1b0
mov rsi, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x14000a290
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rsi, r8
mov r14, rdx
mov rbp, rcx
test r8, r8
jg 0x14000a2b2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je case.default.0x14000a2c1
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 qword [rsp + 0x28], rbx
mov rbx, rsi
mov qword [rsp + 0x20], rdi
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 0x14000a312
cmp rax, rsi
mov rdi, rsi
mov rcx, rbp
cmovb rdi, 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, rdi
mov rcx, r14
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
mov edx, edi
mov rcx, rbp
add r14, rdi
sub rbx, rdi
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
mov rdi, rbx
je 0x14000a381
mov rcx, rbp
call fcn.140009710
cmp rbx, 0xfff
jbe 0x14000a361
mov r9, qword [rbp + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
add r14, rax
mov rdi, rbx
cmp rax, 0xfff
jne 0x14000a39a
cmp rbx, rax
ja 0x14000a330
test rdi, rdi
je 0x14000a381
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
sub rsi, rdi
mov rbx, qword [rsp + 0x28]
mov rax, rsi
mov rdi, qword [rsp + 0x20]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
sub rsi, rbx
jmp 0x14000a384
cmp byte [rax], ch
invalid
enter 0x66d8, 0xf
jo 0x140147c9d
fsub dword [rsi + 0xf]
fist dword [0x14019d2c0]
Function at 0x14000a3a0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r14, rdx
mov rdi, rcx
je case.default.0x14000a3c1
add rsp, 0x20
pop r14
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 qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
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 0x14000a43c
test rax, rax
jle 0x14000a41c
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 sub.VCRUNTIME140.dll_memcpy
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 0x14000a43c
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x14000a43c
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
mov rbp, qword [rsp + 0x40]
sub rsi, rbx
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
pop rdi
pop rbx
ret
add al, 0x41
add eax, 8

Function at 0x14000c980
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14000c99e
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
xor ecx, ecx
cmp dword [rax], 0x4550
cmovne rax, rcx
ret
xor eax, eax
ret
Function at 0x14000c9b0
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x70
mov rax, qword [0x1401c4400]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rbp, rdx
mov rdi, rcx
mov qword [rsp + 0x40], rcx
xor r8d, r8d
mov eax, 0x5a4d
cmp word [rdx], ax
jne 0x14000cad6
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x14000cad6
test rax, rax
je 0x14000cad6
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov qword [rsp + 0x58], r8
mov ecx, dword [rax + 0xb0]
test ecx, ecx
jne 0x14000ca33
mov qword [rdi], r8
mov qword [rdi + 8], r8
mov qword [rdi + 0x10], r8
jmp 0x14000cae1
lea rbx, [rcx + rdx]
mov esi, dword [rax + 0xb4]
add rsi, rbx
mov rcx, qword [rsp + 0x50]
cmp rbx, rsi
jae 0x14000cac4
nop word [rax + rax]
mov edx, dword [rbx + 4]
test edx, edx
je 0x14000cac4
mov eax, dword [rbx]
add rax, rbp
mov qword [rsp + 0x28], rax
lea rax, [rbx + 8]
mov qword [rsp + 0x30], rax
lea rax, [rdx - 8]
shr rax, 1
mov dword [rsp + 0x38], eax
cmp rcx, r8
je 0x14000ca9d
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rcx], xmm0
movsd xmm1, qword [rsp + 0x38]
movsd qword [rcx + 0x10], xmm1
mov rcx, qword [rsp + 0x50]
add rcx, 0x18
mov qword [rsp + 0x50], rcx
jmp 0x14000cab4
lea r8, [rsp + 0x28]
mov rdx, rcx
lea rcx, [rsp + 0x48]
call fcn.14000bf90
mov rcx, qword [rsp + 0x50]
mov eax, dword [rbx + 4]
add rbx, rax
mov r8, qword [rsp + 0x58]
cmp rbx, rsi
jb 0x14000ca50
mov rax, qword [rsp + 0x48]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], r8
jmp 0x14000cae1
mov qword [rcx], r8
mov qword [rcx + 8], r8
mov qword [rcx + 0x10], r8
mov rax, rdi
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14008b1b0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret