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

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x14017d080]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov edx, 0x1000
mov dword [rsp + 0x50], 0x1000
mov ecx, 0x40
call qword [0x1401421c0]
lea r8, [rsp + 0x50]
mov ecx, 0x250000
mov rdx, rax
mov rbx, rax
call qword [0x140142450]
test eax, eax
jne 0x14008b072
movups xmm0, xmmword [0x140162ec0]
movzx eax, word [0x140162ed8]
xor ecx, ecx
cmp dword [0x14017d0d8], 2
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x38], ax
movsd xmm0, qword [0x140162ed0]
movzx eax, byte [0x140162eda]
movsd qword [rsp + 0x30], xmm0
mov byte [rsp + 0x3a], al
jl 0x14008b009
movdqa xmm0, xmmword [0x140168120]
lea rdx, [rsp + 0x24]
movdqa xmm5, xmmword [0x140167f70]
movdqa xmm4, xmmword [0x1401682b0]
movdqa xmmword [rsp + 0x40], xmm0
mov r8d, dword [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm6
movdqa xmm6, xmmword [0x140167fc0]
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ecx, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rdx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, r8d
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 8]
xorps xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x18
jl 0x14008af00
movaps xmm6, xmmword [rsp + 0x60]
cmp ecx, 0x1b
jge 0x14008b04d
movsxd rax, ecx
lea r8, [rsp + 0x20]
add r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x4ec4ec4f
lea r8, [r8 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x34
movzx eax, cl
inc ecx
sub al, dl
add al, 0x31
xor byte [r8 - 1], al
cmp ecx, 0x1b
jl 0x14008b020
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [0x1401421c8]
test eax, eax
jne 0x14008b072
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14013a000
add rsp, 0x70
pop rbx
ret
test rbx, rbx
je 0x14008b080
mov rcx, rbx
call qword [0x1401421a8]
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14013a000
add rsp, 0x70
pop rbx
ret
Function at 0x14008b430
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x68
movups xmm0, xmmword [0x140162ef8]
movzx eax, byte [0x140162f10]
xor ecx, ecx
cmp dword [0x14017d0d8], 2
movups xmmword [rsp + 0x30], xmm0
mov byte [rsp + 0x48], al
movsd xmm0, qword [0x140162f08]
movsd qword [rsp + 0x40], xmm0
jl 0x14008b5a9
movdqa xmm0, xmmword [0x140168120]
lea rdx, [rsp + 0x34]
movdqa xmm5, xmmword [0x140167f70]
movdqa xmm4, xmmword [0x1401682b0]
movdqa xmmword [rsp + 0x20], xmm0
mov r8d, dword [rsp + 0x20]
movaps xmmword [rsp + 0x50], xmm6
movdqa xmm6, xmmword [0x140167fc0]
nop dword [rax]
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ecx, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rdx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, r8d
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 8]
xorps xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x18
jl 0x14008b4a0
movaps xmm6, xmmword [rsp + 0x50]
cmp ecx, 0x19
jge 0x14008b5ed
movsxd rax, ecx
lea r8, [rsp + 0x30]
add r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x4ec4ec4f
lea r8, [r8 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x34
movzx eax, cl
inc ecx
sub al, dl
add al, 0x31
xor byte [r8 - 1], al
cmp ecx, 0x19
jl 0x14008b5c0
xor r9d, r9d
lea r8, [rsp + 0x30]
xor edx, edx
xor ecx, ecx
call qword [0x140142840]
test rax, rax
sete al
add rsp, 0x68
ret
Function at 0x14008d980
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x60
mov rax, qword [0x14017d080]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov eax, dword [0x140162e48]
xor r10d, r10d
cmp dword [0x14017d0d8], 2
mov rdi, rcx
movsd xmm0, qword [0x140162e40]
mov r8d, r10d
mov dword [rsp + 0x28], eax
movzx eax, byte [0x140162e4c]
mov byte [rsp + 0x2c], al
movsd qword [rsp + 0x20], xmm0
jl 0x14008dad6
movdqa xmm2, xmmword [0x140167f70]
mov r8d, 8
movdqa xmm4, xmmword [0x1401682b0]
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x140167f90]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140167fc0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [0x140162e40]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x140168120]
xorps xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rsp + 0x20], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140167fc0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x24]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1401680f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x140168120]
xorps xmm2, xmm0
movd dword [rsp + 0x24], xmm2
movsxd rax, r8d
lea r9, [rsp + 0x20]
add r9, rax
mov eax, 0x4ec4ec4f
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x31
xor byte [r9 - 1], al
cmp r8d, 0xd
jl 0x14008dae1
xorps xmm0, xmm0
mov qword [rsp + 0x40], r10
mov rbx, 0xffffffffffffffff
mov qword [rsp + 0x48], r10
movups xmmword [rsp + 0x30], xmm0
mov r8, rbx
lea rax, [rsp + 0x20]
inc r8
cmp byte [rax + r8], r10b
jne 0x14008db33
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140058960
cmp qword [rsp + 0x48], 0xf
lea r14, [rsp + 0x30]
mov rbp, qword [rdi + 0x10]
cmova r14, qword [rsp + 0x30]
cmp qword [rdi + 0x18], 0xf
jbe 0x14008db6a
mov rdi, qword [rdi]
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x80], r15
test rsi, rsi
jne 0x14008db85
cmp rbp, rbx
cmovb rbx, rbp
jmp 0x14008dbc4
cmp rsi, rbp
ja 0x14008dbd7
movzx r15d, byte [r14]
mov rax, rbp
sub rax, rsi
cmp rax, rbx
cmovb rbx, rax
add rbx, rdi
nop
cmp byte [rbx], r15b
jne 0x14008dbb7
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.14013b93c
test eax, eax
je 0x14008dbc1
cmp rbx, rdi
je 0x14008dbd7
dec rbx
jmp 0x14008dba0
sub rbx, rdi
cmp rbx, 0xffffffffffffffff
je 0x14008dbd7
lea rax, [rbx + rsi]
cmp rax, rbp
jne 0x14008dbd7
mov bl, 1
jmp 0x14008dbd9
xor bl, bl
lea rcx, [rsp + 0x30]
call fcn.14003cfb0
mov r15, qword [rsp + 0x80]
movzx eax, bl
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14013a000
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x14013ae1c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [0x1401423c0]
test rax, rax
je 0x14013ae66
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14013ae66
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14013ae66
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14013ae66
cmp dword [rcx + 0x84], 0xe
jbe 0x14013ae66
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14013ae68
xor al, al
add rsp, 0x28
ret
Function at 0x1407d50b0
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.1407d5237
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 0x1407d50e1
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1407d50c7
add dl, dl
jne 0x1407d50ee
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1407d514e
xor eax, eax
add dl, dl
jne 0x1407d50fd
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1407d5205
add dl, dl
jne 0x1407d510e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1407d511b
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1407d5128
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1407d5135
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1407d5142
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x1407d50d6
mov eax, 1
add dl, dl
jne 0x1407d515e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1407d516b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1407d5153
sub eax, ebx
mov ebx, 1
jne 0x1407d51a4
mov ecx, 1
add dl, dl
jne 0x1407d5186
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1407d5193
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1407d517b
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1407d50d6
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1407d51c0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1407d51cd
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1407d51b5
cmp eax, 0x7d00
jae 0x1407d51f3
cmp eax, 0x500
jb 0x1407d51ee
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1407d50d6
cmp eax, 0x7f
ja 0x1407d51f6
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1407d50d6
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1407d522a
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 0x1407d50d6
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140001010
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [0x140004430]
xor ecx, ecx
mov dword [rax], 1
mov rax, qword [0x140004440]
mov dword [rax], 1
mov rax, qword [0x140004450]
mov dword [rax], 1
mov rax, qword [0x1400043c0]
cmp word [rax], 0x5a4d
jne 0x14000105a
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400010c0
mov rax, qword [0x140004420]
mov dword [0x14000700c], ecx
mov eax, dword [rax]
test eax, eax
je 0x1400010b0
mov ecx, 2
call sym.__set_app_type
call sym.__p__fmode
mov rdx, qword [0x140004500]
mov edx, dword [rdx]
mov dword [rax], edx
call sym.__p__commode
mov rdx, qword [0x1400044e0]
mov edx, dword [rdx]
mov dword [rax], edx
call dbg._setargv
mov rax, qword [0x140004390]
cmp dword [rax], 1
je 0x1400010f8
xor eax, eax
add rsp, 0x28
ret
mov ecx, 1
call sym.__set_app_type
jmp 0x140001077
movzx edx, word [rax + 0x18]
cmp dx, 0x10b
je 0x140001110
cmp dx, 0x20b
jne 0x14000105a
cmp dword [rax + 0x84], 0xe
jbe 0x14000105a
mov edx, dword [rax + 0xf8]
xor ecx, ecx
test edx, edx
setne cl
jmp 0x14000105a
mov rcx, qword [dbg._matherr]
call dbg.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret
cmp dword [rax + 0x74], 0xe
jbe 0x14000105a
mov r8d, dword [rax + 0xe8]
xor ecx, ecx
test r8d, r8d
setne cl
jmp 0x14000105a
Function at 0x140001180
Capabilities:
Terminate process

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbx, qword [0x140004480]
mov rbp, qword [sym.imp.KERNEL32.dll_Sleep]
xor edi, edi
mov rax, qword gs:[0x30]
mov rsi, qword [rax + 8]
jmp 0x1400011c0
cmp rsi, rax
je 0x140001320
mov ecx, 0x3e8
call rbp
mov rax, rdi
lock cmpxchg qword [rbx], rsi
test rax, rax
jne 0x1400011b0
mov rsi, qword [0x140004490]
xor edi, edi
mov eax, dword [rsi]
cmp eax, 1
je 0x140001337
mov eax, dword [rsi]
test eax, eax
je 0x1400013a0
mov dword [0x140007008], 1
mov eax, dword [rsi]
cmp eax, 1
je 0x14000134c
test edi, edi
je 0x14000136d
mov rax, qword [0x1400043f0]
mov rax, qword [rax]
test rax, rax
je 0x140001223
xor r8d, r8d
mov edx, 2
xor ecx, ecx
call rax
call dbg._pei386_runtime_relocator
mov rcx, qword [dbg._gnu_exception_handler]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rdx, qword [0x140004470]
lea rcx, [dbg.__mingw_invalidParameterHandler]
mov qword [rdx], rax
call sym._set_invalid_parameter_handler
call dbg._fpreset
mov ebx, dword [0x140007028]
lea edi, [rbx + 1]
movsxd rdi, edi
shl rdi, 3
mov rcx, rdi
call sym.malloc
mov r12, qword [0x140007020]
mov rbp, rax
test ebx, ebx
jle 0x1400013c0
sub rdi, 8
xor ebx, ebx
mov rcx, qword [r12 + rbx]
call sym.strlen
lea rsi, [rax + 1]
mov rcx, rsi
call sym.malloc
mov r8, rsi
mov qword [rbp + rbx], rax
mov rdx, qword [r12 + rbx]
mov rcx, rax
add rbx, 8
call sym.memcpy
cmp rdi, rbx
jne 0x140001280
add rdi, rbp
mov qword [rdi], 0
mov qword [0x140007020], rbp
call dbg.__main
mov rax, qword [0x140004400]
mov r8, qword [0x140007018]
mov ecx, dword [0x140007028]
mov rax, qword [rax]
mov qword [rax], r8
mov rdx, qword [0x140007020]
call dbg.main
mov ecx, dword [0x14000700c]
mov dword [0x140007010], eax
test ecx, ecx
je 0x1400013c8
mov edx, dword [0x140007008]
test edx, edx
je 0x140001380
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rsi, qword [0x140004490]
mov edi, 1
mov eax, dword [rsi]
cmp eax, 1
jne 0x1400011e1
mov ecx, 0x1f
call dbg._amsg_exit
mov eax, dword [rsi]
cmp eax, 1
jne 0x140001200
mov rdx, qword [0x1400044b0]
mov rcx, qword [0x1400044a0]
call sym._initterm
mov dword [rsi], 2
test edi, edi
jne 0x140001208
xor eax, eax
xchg qword [rbx], rax
jmp 0x140001208
call sym._cexit
mov eax, dword [0x140007010]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rdx, qword [0x1400044d0]
mov rcx, qword [0x1400044c0]
mov dword [rsi], 1
call sym._initterm
jmp 0x1400011f5
mov rdi, rax
jmp 0x1400012b5
mov ecx, eax
call sym.exit
nop

Function at 0x1400017d0
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rbx, rcx
lea rax, [rsp + 0x58]
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call sym.__acrt_iob_func
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sym.fwrite
mov rsi, qword [rsp + 0x28]
mov ecx, 2
call sym.__acrt_iob_func
mov rdx, rbx
mov rcx, rax
mov r8, rsi
call dbg.vfprintf
call sym.abort
nop
nop dword [rax]
Function at 0x1400021c0
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r8d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
test r8w, r8w
je 0x14000220d
lea ecx, [r8 - 1]
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp rdx, r8
jb 0x140002204
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x14000220f
add rax, 0x28
cmp rax, r9
jne 0x1400021f0
xor eax, eax
ret

Function at 0x140002210
Capabilities:
Parse pe header

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, rcx
call sym.strlen
cmp rax, 8
ja 0x1400022a0
mov rdx, qword [0x1400043c0]
xor ebx, ebx
cmp word [rdx], 0x5a4d
jne 0x14000228e
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x14000228e
cmp word [rax + 0x18], 0x20b
jne 0x14000228e
movzx edx, word [rax + 0x14]
lea rbx, [rax + rdx + 0x18]
movzx edx, word [rax + 6]
test dx, dx
je 0x1400022a0
lea eax, [rdx - 1]
lea rax, [rax + rax*4]
lea rdi, [rbx + rax*8 + 0x28]
jmp 0x140002279
add rbx, 0x28
cmp rbx, rdi
je 0x1400022a0
mov r8d, 8
mov rdx, rsi
mov rcx, rbx
call sym.strncmp
test eax, eax
jne 0x140002270
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
xor ebx, ebx
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x1400022b0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x1400043c0]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1400022d0
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1400022d8
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1400022d0
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x14000232d
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x140002324
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x1400022d0
add rax, 0x28
cmp rax, r9
jne 0x140002310
xor eax, eax
ret

Function at 0x140002330
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400043c0]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x14000234f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x140002358
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x14000234f
movzx ecx, word [rax + 6]
mov eax, ecx
ret

Function at 0x140002370
Capabilities:
Parse pe header

Disassembly:
mov r8, qword [0x1400043c0]
xor eax, eax
cmp word [r8], 0x5a4d
jne 0x140002390
movsxd rdx, dword [r8 + 0x3c]
add rdx, r8
cmp dword [rdx], 0x4550
je 0x140002398
ret
cmp word [rdx + 0x18], 0x20b
jne 0x140002390
movzx eax, word [rdx + 0x14]
movzx r8d, word [rdx + 6]
lea rax, [rdx + rax + 0x18]
test r8w, r8w
je 0x1400023e0
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea rdx, [rax + rdx*8 + 0x28]
nop dword [rax]
test byte [rax + 0x27], 0x20
je 0x1400023d7
test rcx, rcx
je 0x140002390
sub rcx, 1
add rax, 0x28
cmp rdx, rax
jne 0x1400023c8
xor eax, eax
ret
Function at 0x1400023f0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400043c0]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x14000240f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x140002418
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x140002430
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x1400043c0]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x140002450
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x140002458
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002450
sub rcx, rdx
movzx r9d, word [r8 + 6]
movzx edx, word [r8 + 0x14]
lea rdx, [r8 + rdx + 0x18]
test r9w, r9w
je 0x140002450
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
lea r9, [rdx + rax*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rdx + 0xc]
mov rax, r8
cmp rcx, r8
jb 0x1400024a4
add eax, dword [rdx + 8]
cmp rcx, rax
jb 0x1400024b0
add rdx, 0x28
cmp rdx, r9
jne 0x140002490
xor eax, eax
ret
mov eax, dword [rdx + 0x24]
not eax
shr eax, 0x1f
ret

Function at 0x1400024c0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov r11, qword [0x1400043c0]
xor r9d, r9d
cmp word [r11], 0x5a4d
jne 0x1400024e2
movsxd r8, dword [r11 + 0x3c]
add r8, r11
cmp dword [r8], 0x4550
je 0x1400024f0
mov rax, r9
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1400024e2
mov eax, dword [r8 + 0x90]
test eax, eax
je 0x1400024e2
movzx edx, word [r8 + 0x14]
movzx r10d, word [r8 + 6]
lea rdx, [r8 + rdx + 0x18]
test r10w, r10w
je 0x1400024e2
lea r8d, [r10 - 1]
lea r8, [r8 + r8*4]
lea r10, [rdx + r8*8 + 0x28]
nop word cs:[rax + rax]
mov r9d, dword [rdx + 0xc]
mov r8, r9
cmp rax, r9
jb 0x140002545
add r8d, dword [rdx + 8]
cmp rax, r8
jb 0x140002558
add rdx, 0x28
cmp r10, rdx
jne 0x140002530
xor r9d, r9d
mov rax, r9
ret
add rax, r11
jmp 0x140002567
sub ecx, 1
add rax, 0x14
mov r8d, dword [rax + 4]
test r8d, r8d
jne 0x140002577
mov edx, dword [rax + 0xc]
test edx, edx
je 0x14000254e
test ecx, ecx
jg 0x140002560
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
ret
Function at 0x2fc4cacb0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4cb6b2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f0108]
test eax, eax
je 0x2fc4cb74a
lea rax, [0x2fc4f00e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f0110]
mov qword [rbp - 8], rax
jmp 0x2fc4cb72e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4cb722
cmp qword [rbp - 0x10], 0
je 0x2fc4cb722
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4cb6e8
lea rax, [0x2fc4f00e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4cb74b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4cb850
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4cb878
mov eax, 0
jmp 0x2fc4cb8c6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4cb8a1
mov eax, 0
jmp 0x2fc4cb8c6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4cb8c1
mov eax, 0
jmp 0x2fc4cb8c6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4cb8cc
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4cb94a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4cb941
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4cb941
mov rax, qword [rbp - 8]
jmp 0x2fc4cb95f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4cb914
mov eax, 0
add rsp, 0x20
pop rbp
ret