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

Disassembly:
push rbx
sub rsp, 0x80
mov rax, qword [0x1401e71c0]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rbx, rcx
mov rcx, qword [0x1401ea420]
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x14014d978
nop dword [rax]
cmp dword [rax + 0x20], 4
jge 0x14014d96c
mov rax, qword [rax + 0x10]
jmp 0x14014d972
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x14014d960
cmp byte [rcx + 0x19], 0
jne 0x14014da54
cmp dword [rcx + 0x20], 4
jg 0x14014da54
lea r8, [rcx + 0x28]
mov r10, qword [r8 + 0x10]
mov rdx, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x14014d9a1
mov rdx, qword [r8]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
test r10, r10
je 0x14014d9d3
movabs r11, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r11
inc rcx
cmp rcx, r10
jb 0x14014d9c0
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.14001ea20
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14014da0e
cmp rcx, qword [rbx + 8]
je 0x14014da0e
cmp qword [rbx + 0x10], 1
jne 0x14014da12
mov al, 1
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140167530
add rsp, 0x80
pop rbx
ret
xor al, al
jmp 0x14014d9f8
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.14014da80
nop
mov r8, rax
lea rdx, str.AcceptEncoding_does_not_accept_any_other_values_if_disabled_is_present._You_set_the_following_encodings:
lea rcx, [rsp + 0x58]
call fcn.1400cc1f0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14014d8d0
lea rdx, [0x1401e1a20]
lea rcx, [rsp + 0x20]
call fcn.14016860a
nop
lea rcx, str.invalid_map_K__T__key
call fcn.140167279
int3
Function at 0x140161b40
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
mov r10, rdx
test r9, r9
je 0x140161ce4
cmp r9, 4
jb 0x140161b8a
mov rdx, r9
shr rdx, 2
imul rax, rdx, 0xfffffffffffffffc
add r9, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [r10]
add r10, 4
xor eax, dword [r8]
add r8, 4
mov dword [rcx], eax
add rcx, 4
sub rdx, 1
jne 0x140161b70
xor r11d, r11d
test r9, r9
je 0x140161ce4
cmp r9, 8
jb 0x140161cbd
lea rdx, [rcx - 1]
lea rax, [r8 - 1]
add rdx, r9
add rax, r9
cmp rcx, rax
ja 0x140161bbc
cmp rdx, r8
jae 0x140161cbd
lea rax, [r10 - 1]
add rax, r9
cmp rcx, rax
ja 0x140161bd1
cmp rdx, r10
jae 0x140161cbd
mov qword [rsp + 0x10], rbx
mov qword [rsp], rdi
cmp r9, 0x40
jb 0x140161c77
mov rdi, r9
mov qword [rsp + 0x18], rsi
and edi, 0x3f
mov rsi, r9
sub rsi, rdi
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov rbx, rcx
sub rbx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add r11, 0x40
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rbx + rax - 0x50], xmm1
xorps xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rdx + rax - 0x30]
movdqu xmmword [rbx + rax - 0x40], xmm2
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rdx + rax - 0x20]
movdqu xmmword [rbx + rax - 0x30], xmm1
xorps xmm2, xmm0
movdqu xmmword [rbx + rax - 0x20], xmm2
cmp r11, rsi
jb 0x140161c10
mov rsi, qword [rsp + 0x18]
cmp rdi, 8
jb 0x140161caf
mov rdx, r9
and rdx, 0xfffffffffffffff8
mov rbx, r10
lea rax, [r11 + r8]
sub rbx, r8
mov rdi, rcx
sub rdi, r8
nop
movq xmm1, qword [rax + rbx]
add r11, 8
movq xmm0, qword [rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax + rdi - 8], xmm1
cmp r11, rdx
jb 0x140161c90
mov rdi, qword [rsp]
mov rbx, qword [rsp + 0x10]
cmp r11, r9
jae 0x140161ce4
sub r10, r8
lea rdx, [r11 + r8]
sub rcx, r8
sub r9, r11
nop word [rax + rax]
movzx eax, byte [rdx + r10]
xor al, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x140161cd0
add rsp, 8
ret

Function at 0x1401683b4
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [0x140180210]
test rax, rax
je 0x1401683fe
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1401683fe
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1401683fe
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1401683fe
cmp dword [rcx + 0x84], 0xe
jbe 0x1401683fe
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140168400
xor al, al
add rsp, 0x28
ret
Function at 0x140001ba0
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 case.default.0x140001bc1
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 0x140001bee
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140001bf0
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x140001c49
test ecx, ecx
jle 0x140001c29
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 0x140001c49
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x140001c49
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
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
Function at 0x140002200
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140007040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14000222d
xor eax, eax
jmp 0x140002399
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x140002267
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x140002267
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 0x140002399
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14000238c
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x1400022aa
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 0x1400022d5
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 0x140002391
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 0x140002344
sub eax, 1
je 0x140002344
cmp eax, 2
jne 0x14000238c
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 0x140002391
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140002372
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 0x14000238c
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140002391
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140002fd0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x1400027a0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140007040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140002873
cmp byte [rcx + 0x71], 0
je 0x140002873
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14000286f
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 0x140002834
sub eax, 1
je 0x140002838
cmp eax, 2
jne 0x14000286f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140002fd0
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140002866
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 0x14000286f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000281c
xor al, al
jmp 0x14000281c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140002fd0
add rsp, 0x60
pop rbx
ret

Function at 0x140003950
Capabilities:
Parse pe header

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

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140003ef6
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140003ef6
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140003ef6
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140003ef6
cmp dword [rcx + 0x84], 0xe
jbe 0x140003ef6
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140003ef8
xor al, al
add rsp, 0x28
ret
Function at 0x2fc4d3980
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 sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call fcn.2fc4d4a60
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
nop

Function at 0x2fc4d4382
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f6108]
test eax, eax
je 0x2fc4d441a
lea rax, [0x2fc4f60e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f6110]
mov qword [rbp - 8], rax
jmp 0x2fc4d43fe
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 0x2fc4d43f2
cmp qword [rbp - 0x10], 0
je 0x2fc4d43f2
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 0x2fc4d43b8
lea rax, [0x2fc4f60e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d441b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4d4520
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 0x2fc4d4548
mov eax, 0
jmp 0x2fc4d4596
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 0x2fc4d4571
mov eax, 0
jmp 0x2fc4d4596
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 0x2fc4d4591
mov eax, 0
jmp 0x2fc4d4596
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d459c
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 0x2fc4d461a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4d4611
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 0x2fc4d4611
mov rax, qword [rbp - 8]
jmp 0x2fc4d462f
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 0x2fc4d45e4
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4cf1e0
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 sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call fcn.2fc4d02c0
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
nop

Function at 0x2fc4cfbe2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f2108]
test eax, eax
je 0x2fc4cfc7a
lea rax, [0x2fc4f20e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f2110]
mov qword [rbp - 8], rax
jmp 0x2fc4cfc5e
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 0x2fc4cfc52
cmp qword [rbp - 0x10], 0
je 0x2fc4cfc52
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 0x2fc4cfc18
lea rax, [0x2fc4f20e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4cfc7b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4cfd80
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 0x2fc4cfda8
mov eax, 0
jmp 0x2fc4cfdf6
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 0x2fc4cfdd1
mov eax, 0
jmp 0x2fc4cfdf6
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 0x2fc4cfdf1
mov eax, 0
jmp 0x2fc4cfdf6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4cfdfc
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 0x2fc4cfe7a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4cfe71
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 0x2fc4cfe71
mov rax, qword [rbp - 8]
jmp 0x2fc4cfe8f
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 0x2fc4cfe44
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x1400327a0
Capabilities:
Set socket configuration

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rsi, rcx
mov rdi, rdx
mov rbp, r8
call sub.libcrypto_1_1_x64.dll_BIO_s_connect
mov rcx, rax
call sub.libcrypto_1_1_x64.dll_BIO_new
mov rbx, rax
test rax, rax
je 0x1400328c0
xor r8d, r8d
mov r9, rdi
mov edx, 0x64
mov rcx, rax
call sub.libcrypto_1_1_x64.dll_BIO_ctrl
xor r9d, r9d
mov edx, 0x9b
mov rcx, rbx
mov r8d, 0x10
call sub.libcrypto_1_1_x64.dll_BIO_ctrl
test rsi, rsi
je 0x140032870
mov rcx, rsi
mov rdi, rsi
call sub.libssl_1_1_x64.dll_SSL_set_connect_state
mov rcx, rdi
mov r8, rbx
mov rdx, rbx
call sub.libssl_1_1_x64.dll_SSL_set_bio
mov rcx, rdi
call sub.libssl_1_1_x64.dll_SSL_connect
test eax, eax
jle 0x140032880
mov eax, dword [0x14008d624]
mov rcx, rdi
mov dword [rsp + 0x3c], eax
call sub.libssl_1_1_x64.dll_SSL_get_fd
test eax, eax
jns 0x140032840
mov rax, rdi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov dword [rsp + 0x20], 4
movsxd rcx, eax
lea r9, [rsp + 0x3c]
mov r8d, pe_nt_image_headers64
mov edx, 0xffff
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rax, rdi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call sub.libssl_1_1_x64.dll_SSL_new
mov rdi, rax
jmp 0x140032803
mov rbx, qword [0x14009a8a0]
lea rdx, str.ERROR_n
mov rcx, qword [rbx]
call sub.libcrypto_1_1_x64.dll_BIO_printf
mov rax, qword [0x14009aa50]
mov ecx, dword [rax + 8]
test ecx, ecx
je 0x1400328d0
call sub.libcrypto_1_1_x64.dll_X509_verify_cert_error_string
mov rcx, qword [rbx]
lea rdx, str.verify_error:_s_n
mov r8, rax
call sub.libcrypto_1_1_x64.dll_BIO_printf
test rsi, rsi
je 0x1400328e0
xor edi, edi
jmp 0x140032833
mov rcx, qword [rbx]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
jmp 0x1400328bb
mov rcx, rdi
xor edi, edi
call sub.libssl_1_1_x64.dll_SSL_free
jmp 0x140032833

Function at 0x140036880
Capabilities:
Terminate thread

Disassembly:
sub rsp, 0x38
movups xmmword [rsp + 0x20], xmm6
mov edx, dword [0x140069920]
mov ecx, 1
call fcn.14004d7a0
mov eax, dword [0x1400a151c]
movapd xmm6, xmm0
test eax, eax
jne 0x1400368c8
mov rcx, qword [0x1400a0340]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movapd xmm0, xmm6
movups xmm6, xmmword [rsp + 0x20]
add rsp, 0x38
ret
mov rcx, qword [0x1400a0340]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x1400368a7
Function at 0x1400368e0
Capabilities:
Create thread
Terminate process

Disassembly:
push rbx
sub rsp, 0x30
xor r9d, r9d
lea r8, [0x1400361f0]
mov edx, 0x1000
mov dword [0x1400a1510], 0
xor ecx, ecx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x1400a0340], rax
test rax, rax
je 0x140036958
mov eax, dword [0x1400a1510]
mov rbx, qword [sym.imp.KERNEL32.dll_Sleep]
test eax, eax
jne 0x140036946
nop dword [rax]
xor ecx, ecx
call rbx
mov eax, dword [0x1400a1510]
test eax, eax
je 0x140036938
mov edx, dword [0x140069920]
xor ecx, ecx
add rsp, 0x30
pop rbx
jmp fcn.14004d7a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.unable_to_CreateThread___lu_
mov ebx, eax
mov r8d, eax
mov rax, qword [0x14009a8a0]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x14004a230
Capabilities:
Query environment variable

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x420
mov r8d, 5
mov esi, edx
lea rdx, str.pass:
mov rbx, rcx
call sub.msvcrt.dll_strncmp
lea rcx, [rbx + 5]
mov r8d, 0x188
test eax, eax
je 0x14004a38e
mov r8d, 4
lea rdx, str.env:
mov rcx, rbx
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x14004a370
test esi, esi
jne 0x14004a358
mov r8d, 5
lea rdx, str.file:
mov rcx, rbx
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x14004a3a8
lea rdx, str.stdin
mov rcx, rbx
call fcn.140066990
test eax, eax
jne 0x14004a3f0
xor ecx, ecx
call qword [fcn.1400662a0]
mov edx, 0x10
mov rcx, rax
call fcn.1400584b0
mov qword [0x1400a1550], rax
mov rcx, rax
test rax, rax
je 0x14004a430
lea rdi, [rsp + 0x20]
mov r8d, 0x400
mov rdx, rdi
call sub.libcrypto_1_1_x64.dll_BIO_gets
mov ebx, eax
cmp esi, 1
je 0x14004a315
mov rcx, qword [0x1400a1550]
call sub.libcrypto_1_1_x64.dll_BIO_free_all
mov qword [0x1400a1550], 0
test ebx, ebx
jle 0x14004a450
mov edx, 0xa
mov rcx, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14004a332
mov byte [rax], 0
mov r8d, 0x1c7
lea rdx, str..._openssl_1.1.1s_apps_apps.c
mov rcx, rdi
call sub.libcrypto_1_1_x64.dll_CRYPTO_strdup
add rsp, 0x420
pop rbx
pop rsi
pop rdi
ret
mov rcx, qword [0x1400a1550]
test rcx, rcx
jne 0x14004a2e4
jmp 0x14004a288
add rbx, 4
mov rcx, rbx
call sub.msvcrt.dll_getenv
mov r8d, 0x18f
mov rcx, rax
test rax, rax
je 0x14004a410
lea rdx, str..._openssl_1.1.1s_apps_apps.c
add rsp, 0x420
pop rbx
pop rsi
pop rdi
jmp sub.libcrypto_1_1_x64.dll_CRYPTO_strdup
add rbx, 5
lea rdx, [0x14009699a]
mov rcx, rbx
call sub.libcrypto_1_1_x64.dll_BIO_new_file
mov qword [0x1400a1550], rax
mov rcx, rax
test rax, rax
jne 0x14004a2e4
mov rax, qword [0x14009a8a0]
mov r8, rbx
lea rdx, str.Cant_open_file__s_n
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor eax, eax
jmp 0x14004a347
mov rax, qword [0x14009a8a0]
mov r8, rbx
lea rdx, str.Invalid_password_argument___s__n
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor eax, eax
jmp 0x14004a347
mov rax, qword [0x14009a8a0]
mov r8, rbx
lea rdx, str.Cant_read_environment_variable__s_n
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor eax, eax
jmp 0x14004a347
mov rax, qword [0x14009a8a0]
lea rdx, str.Cant_open_BIO_for_stdin_n
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor eax, eax
jmp 0x14004a347
mov rax, qword [0x14009a8a0]
lea rdx, str.Error_reading_password_from_BIO_n
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor eax, eax
jmp 0x14004a347