joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14001eff0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14006a010]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov edi, r9d
mov esi, r8d
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rbx
mov r14, qword [rsp + 0xc8]
movsxd r15, edx
lea rcx, [0x14006a348]
add r15, rcx
mov ecx, dword [0x14006a318]
mov r12d, 1
cmp ecx, r8d
jl 0x14001f08a
lea eax, [r8 + 0x14]
cmp ecx, eax
jg 0x14001f08a
mov ecx, dword [0x14006a31c]
cmp ecx, r9d
jl 0x14001f08a
lea eax, [r9 + 0x14]
cmp ecx, eax
jg 0x14001f08a
mov ecx, r12d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14001f08a
cmp byte [r15], 0
jne 0x14001f084
cmp byte [r14], 0
sete al
mov byte [r14], al
inc edi
movzx eax, r12b
jmp 0x14001f08c
xor al, al
mov byte [r15], al
lea r15d, [rdi + 2]
mov ebp, 0x14
mov dword [rsp + 0x30], 0xff3f4537
movzx r8d, di
movzx edx, si
mov r9d, ebp
cmp byte [r14], 0
je 0x14001f13c
mov eax, 0x13
mov word [rsp + 0x28], ax
mov word [rsp + 0x20], bp
call fcn.14001f230
mov r9d, ebp
mov dword [rsp + 0x30], 0xff3f4541
mov word [rsp + 0x28], r12w
mov word [rsp + 0x20], bp
movzx r8d, di
movzx edx, si
call fcn.14001f230
lea eax, [rsi + 6]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], r15d
mov rcx, qword [0x14006a2f0]
mov rax, qword [rcx]
mov r10, qword [rax + 0x70]
mov eax, 0xfff1f9ee
mov edx, 0xff9a8b2c
cmp byte [r14], 0
cmovne eax, edx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, r12d
lea r8, [0x140065118]
xor edx, edx
call r10
jmp 0x14001f14c
mov word [rsp + 0x28], r12w
mov word [rsp + 0x20], bp
call fcn.14001f230
lea eax, [rsi + 0x16]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], r15d
mov r10, qword [0x14006a2f0]
mov rax, qword [r10]
mov r11, qword [rax + 0x70]
mov rax, 0xffffffffffffffff
cmp qword [rbx + 0x18], 0x10
jb 0x14001f185
mov rcx, qword [rbx]
inc rax
cmp byte [rcx + rax], 0
jne 0x14001f177
mov r8, rcx
jmp 0x14001f191
inc rax
cmp byte [rbx + rax], 0
jne 0x14001f185
mov r8, rbx
mov dword [rsp + 0x30], 0xfff1f9ee
mov dword [rsp + 0x28], 0x100
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
mov r9d, eax
xor edx, edx
mov rcx, r10
call r11
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x14001f1ed
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x14001f1e8
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001f21c
mov rcx, r8
call fcn.140023dd8
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140023710
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x140020b30
Capabilities:
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
movzx ecx, byte [rdx]
mov r9, rdx
mov r10, qword [0x14006b108]
movabs rdx, 0x100000001b3
mov r8, qword [0x14006b0f8]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movzx eax, byte [r9 + 1]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 2]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 3]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 4]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 5]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 6]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r9 + 7]
imul rcx, rdx
xor rcx, rax
imul rcx, rdx
and rcx, qword [0x14006b120]
mov rax, rcx
add rax, rax
mov rbx, qword [r10 + rax*8 + 8]
cmp rbx, r8
je 0x140020cb5
mov rdx, qword [r10 + rax*8]
mov rax, qword [r9]
cmp rax, qword [rbx + 0x10]
je 0x140020bf4
cmp rbx, rdx
je 0x140020cb5
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x140020be1
test rbx, rbx
je 0x140020cb5
add rcx, rcx
mov rax, qword [r10 + rcx*8]
cmp qword [r10 + rcx*8 + 8], rbx
jne 0x140020c26
cmp rax, rbx
jne 0x140020c1b
mov qword [r10 + rcx*8], r8
mov qword [r10 + rcx*8 + 8], r8
jmp 0x140020c32
mov r8, qword [rbx + 8]
mov qword [r10 + rcx*8 + 8], r8
jmp 0x140020c32
cmp rax, rbx
jne 0x140020c32
mov rax, qword [rbx]
mov qword [r10 + rcx*8], rax
mov rcx, qword [rbx]
dec qword [0x14006b100]
mov rax, qword [rbx + 8]
mov qword [rax], rcx
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
mov rdx, qword [rbx + 0x30]
cmp rdx, 0x10
jb 0x140020c82
mov rcx, qword [rbx + 0x18]
inc rdx
cmp rdx, 0x1000
jb 0x140020c7d
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140020cae
mov rcx, r8
call fcn.140023dd8
mov byte [rbx + 0x18], 0
mov edx, 0x38
mov qword [rbx + 0x28], 0
mov rcx, rbx
mov qword [rbx + 0x30], 0xf
call fcn.140023dd8
mov eax, 1
add rsp, 0x20
pop rbx
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x140021100
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r14, rdx
mov rdi, rcx
je 0x140021137
mov rbx, qword [rsp + 0x40]
mov rdi, 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__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rsi
mov rsi, rbx
mov r9, qword [rax]
test r9, r9
je 0x140021158
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x14002115a
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x1400211b3
test ecx, ecx
jle 0x140021193
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
sub rbx, rbp
add r14, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x1400211b3
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x1400211b3
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 + 0x30]
sub rsi, rbx
mov rbx, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x1400211e0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140021202
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x140021218
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140021234
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140021236
xor ecx, ecx
mov qword [rsp + 0x20], rdi
movsxd rax, ecx
test ecx, ecx
je 0x140021270
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]
sub rbx, rdi
add r14, rdi
mov r8, rbx
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x140021317
mov r9, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r9], rax
jne 0x1400212ab
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 rdi, r8
cmp r8, 0xfff
jbe 0x1400212f1
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
add r14, rax
mov rdi, rbx
cmp rax, 0xfff
jne 0x140021330
cmp rbx, rax
ja 0x1400212c0
mov r8, rdi
test rdi, rdi
je 0x140021317
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]
mov r8, rdi
sub r8, rax
sub rbp, r8
mov rdi, qword [rsp + 0x20]
mov rax, rbp
mov rbx, qword [rsp + 0x28]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
sub rbp, rbx
jmp 0x14002131a
Function at 0x140021730
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x14006a010]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14002175d
xor eax, eax
jmp 0x1400218b2
mov rdx, qword [rcx + 0x40]
mov rax, qword [rdx]
test rax, rax
je 0x140021788
mov rdx, qword [rcx + 0x58]
movsxd r8, dword [rdx]
add r8, rax
cmp rax, r8
jae 0x140021788
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], dil
mov eax, edi
jmp 0x1400218b2
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x1400218a5
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x1400217cb
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
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 0x1400217f6
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 0x1400218aa
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 0x140021865
sub eax, 1
je 0x140021865
cmp eax, 2
jne 0x1400218a5
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 0x1400218aa
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140021893
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 0x1400218a5
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov eax, edi
jne 0x1400218aa
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140023710
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140021b90
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14006a010]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140021c63
cmp byte [rcx + 0x71], 0
je 0x140021c63
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x140021c5f
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 0x140021c24
sub eax, 1
je 0x140021c28
cmp eax, 2
jne 0x140021c5f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140023710
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140021c56
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 0x140021c5f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x140021c0c
xor al, al
jmp 0x140021c0c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140023710
add rsp, 0x60
pop rbx
ret
Function at 0x401d28
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rbp + 0x10], rcx
mov eax, 0
mov byte [rbp - 1], al
movzx eax, byte [rbp - 1]
cmp eax, 4
jge 0x401dcc
jmp 0x401d52
movzx eax, byte [rbp - 1]
add eax, 1
mov byte [rbp - 1], al
jmp 0x401d34
mov eax, 0
mov byte [rbp - 2], al
movzx eax, byte [rbp - 2]
cmp eax, 4
jge 0x401dc7
jmp 0x401d78
movzx eax, byte [rbp - 2]
add eax, 1
mov byte [rbp - 2], al
jmp 0x401d5a
mov rax, qword [rbp + 0x10]
movzx ecx, byte [rbp - 2]
movsxd rcx, ecx
shl rcx, 2
add rax, rcx
movzx ecx, byte [rbp - 1]
movsxd rcx, ecx
add rax, rcx
mov rcx, qword [rbp + 0x10]
movzx edx, byte [rbp - 2]
movsxd rdx, edx
shl rdx, 2
add rcx, rdx
movzx edx, byte [rbp - 1]
movsxd rdx, edx
add rcx, rdx
movzx edx, byte [rcx]
movsxd rdx, edx
lea rcx, str.cw
add rcx, rdx
movzx edx, byte [rcx]
mov byte [rax], dl
jmp 0x401d6c
jmp 0x401d46
leave
ret

Function at 0x40309b
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rbp + 0x10], rcx
mov eax, 0
mov byte [rbp - 1], al
movzx eax, byte [rbp - 1]
cmp eax, 4
jge 0x40314a
jmp 0x4030d0
movzx eax, byte [rbp - 1]
add eax, 1
mov byte [rbp - 1], al
jmp 0x4030b2
mov eax, 0
mov byte [rbp - 2], al
movzx eax, byte [rbp - 2]
cmp eax, 4
jge 0x403145
jmp 0x4030f6
movzx eax, byte [rbp - 2]
add eax, 1
mov byte [rbp - 2], al
jmp 0x4030d8
mov rax, qword [rbp + 0x10]
movzx ecx, byte [rbp - 2]
movsxd rcx, ecx
shl rcx, 2
add rax, rcx
movzx ecx, byte [rbp - 1]
movsxd rcx, ecx
add rax, rcx
mov rcx, qword [rbp + 0x10]
movzx edx, byte [rbp - 2]
movsxd rdx, edx
shl rdx, 2
add rcx, rdx
movzx edx, byte [rbp - 1]
movsxd rdx, edx
add rcx, rdx
movzx edx, byte [rcx]
movsxd rdx, edx
lea rcx, [0x00452e23]
add rcx, rdx
movzx edx, byte [rcx]
mov byte [rax], dl
jmp 0x4030ea
jmp 0x4030c4
leave
ret

Function at 0x4030a6
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rbp + 0x10], rcx
mov eax, 0
mov byte [rbp - 1], al
movzx eax, byte [rbp - 1]
cmp eax, 4
jge 0x40314a
jmp 0x4030d0
movzx eax, byte [rbp - 1]
add eax, 1
mov byte [rbp - 1], al
jmp 0x4030b2
mov eax, 0
mov byte [rbp - 2], al
movzx eax, byte [rbp - 2]
cmp eax, 4
jge 0x403145
jmp 0x4030f6
movzx eax, byte [rbp - 2]
add eax, 1
mov byte [rbp - 2], al
jmp 0x4030d8
mov rax, qword [rbp + 0x10]
movzx ecx, byte [rbp - 2]
movsxd rcx, ecx
shl rcx, 2
add rax, rcx
movzx ecx, byte [rbp - 1]
movsxd rcx, ecx
add rax, rcx
mov rcx, qword [rbp + 0x10]
movzx edx, byte [rbp - 2]
movsxd rdx, edx
shl rdx, 2
add rcx, rdx
movzx edx, byte [rbp - 1]
movsxd rdx, edx
add rcx, rdx
movzx edx, byte [rcx]
movsxd rdx, edx
lea rcx, [0x00452e23]
add rcx, rdx
movzx edx, byte [rcx]
mov byte [rax], dl
jmp 0x4030ea
jmp 0x4030c4
leave
ret
Function at 0x140a90058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x140a901df
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 0x140a90089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a9006f
add dl, dl
jne 0x140a90096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a900f6
xor eax, eax
add dl, dl
jne 0x140a900a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a901ad
add dl, dl
jne 0x140a900b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a900c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a900d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a900dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x140a900ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x140a9007e
mov eax, 1
add dl, dl
jne 0x140a90106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a90113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a900fb
sub eax, ebx
mov ebx, 1
jne 0x140a9014c
mov ecx, 1
add dl, dl
jne 0x140a9012e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140a9013b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a90123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a9007e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x140a90168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140a90175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a9015d
cmp eax, 0x7d00
jae 0x140a9019b
cmp eax, 0x500
jb 0x140a90196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a9007e
cmp eax, 0x7f
ja 0x140a9019e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a9007e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x140a901d2
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 0x140a9007e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140001ed0
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x38], rcx
lea rax, str.connection__p_clean_up
mov qword [rsp + 0x60], rbx
lea rdx, str.agent_cleanup_connection
mov qword [rsp + 0x30], rax
mov rbx, rcx
mov qword [rsp + 0x48], r14
lea rcx, str.C:__w1_scontribwin32win32compat_ssh_agent_agent.c
mov qword [rsp + 0x40], r15
xor r9d, r9d
xor r15d, r15d
mov r8d, 0xcb
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 5
call fcn.14001ae20
mov rcx, qword [rbx + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140001f3c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x140001f4b
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, r15
cmp qword [rbx + 0x40050], r15
jbe 0x140001fcc
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov rsi, r15
mov qword [rsp + 0x50], rdi
nop dword [rax]
mov rax, qword [rbx + 0x40058]
mov rbp, qword [rsi + rax]
mov rcx, rbp
call fcn.14001b3f0
test rbp, rbp
je 0x140001f9c
xor eax, eax
mov rdi, rbp
mov ecx, 0xa8
rep stosb byte [rdi], al
mov rcx, rbp
call fcn.14003d000
mov rcx, qword [rbx + 0x40058]
mov rcx, qword [rcx + rsi + 8]
call fcn.14001f200
inc r14
add rsi, 0x18
cmp r14, qword [rbx + 0x40050]
jb 0x140001f70
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rbx + 0x40058]
call fcn.14003d000
mov rcx, rbx
mov qword [rbx + 0x40050], r15
call fcn.14003d000
mov rcx, qword [0x140084300]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x1400841d0]
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
mov qword [0x140084300], r15
test rcx, rcx
je 0x14000201d
call fcn.14003d000
mov qword [0x1400841d0], r15
mov rcx, qword [0x1400841c8]
mov r15, qword [rsp + 0x40]
test rcx, rcx
je 0x140002034
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsp, 0x58
jmp fcn.1400091b0
Function at 0x140002c70
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov eax, dword [rcx + 0x40044]
mov rsi, r8
mov dword [rsp + 0x48], eax
mov rbx, rcx
mov dword [rsp + 0x40], edx
lea rax, str.connection_io__p_bytes:_d_state:_d
mov qword [rsp + 0x38], rcx
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rcx, str.C:__w1_scontribwin32win32compat_ssh_agentconnection.c
mov dword [rsp + 0x50], edx
mov r8d, 0x37
mov qword [rsp + 0x28], 0
lea rdx, str.agent_connection_on_io
mov dword [rsp + 0x20], 7
call fcn.14001ae20
mov r8d, dword [rsp + 0x50]
test r8d, r8d
jne 0x140002d05
mov rcx, qword [rbx + 0x20]
lea r8, [rsp + 0x50]
xor r9d, r9d
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x140002d6a
mov r8d, dword [rsp + 0x50]
mov ecx, dword [rbx + 0x40044]
test ecx, ecx
je 0x140002d22
sub ecx, 1
je 0x140002e06
sub ecx, 1
je 0x140002d91
cmp ecx, 1
jne 0x140002d7c
lea rcx, [rbx + 0x38]
mov dword [rbx + 0x40044], 1
xor edx, edx
mov r8d, 0x4000c
call fcn.14004f880
lea rdx, [rbx + 0x40]
mov r8d, 4
mov rcx, qword [rbx + 0x20]
xor r9d, r9d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140002d7c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x140002d7c
mov rcx, rbx
mov dword [rbx + 0x40044], 4
call fcn.140001ed0
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400313f0
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret
mov ecx, dword [rbx + 0x3c]
add ecx, r8d
mov r8d, dword [rbx + 0x38]
mov dword [rbx + 0x3c], ecx
cmp ecx, r8d
jne 0x140002de6
mov rcx, rbx
call fcn.140002e80
test eax, eax
jne 0x140002d6a
mov r8d, dword [rbx + 0x38]
lea rdx, [rbx + 0x40]
mov rcx, qword [rbx + 0x20]
xor r9d, r9d
mov dword [rbx + 0x40044], 3
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140002d7c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x140002d6a
jmp 0x140002d7c
sub r8d, ecx
mov edx, ecx
add rdx, 0x40
mov rcx, qword [rbx + 0x20]
add rdx, rbx
xor r9d, r9d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x140002dd3
mov ecx, dword [rbx + 0x3c]
add ecx, r8d
mov dword [rbx + 0x3c], ecx
cmp ecx, 4
jne 0x140002e67
movzx eax, byte [rbx + 0x41]
lea rdx, [rbx + 0x40]
movzx r8d, byte [rdx]
shl r8d, 8
or r8d, eax
movzx eax, byte [rbx + 0x42]
shl r8d, 8
or r8d, eax
movzx eax, byte [rbx + 0x43]
shl r8d, 8
or r8d, eax
mov dword [rbx + 0x3c], 0
mov dword [rbx + 0x38], r8d
cmp r8d, 0x40000
ja 0x140002d6a
lfence
mov dword [rbx + 0x40044], 2
jmp 0x140002d47
mov eax, dword [rbx + 0x38]
mov r8d, 4
sub r8d, eax
lea rdx, [rax + 0x40]
jmp 0x140002def
Function at 0x140003750
Capabilities:
Encrypt data using dpapi

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x78
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov r15, qword [rsp + 0xd0]
xor ebx, ebx
cmp dword [rcx + 0x40048], 2
mov r14, r9
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
jg 0x1400037a3
mov rcx, qword [rcx + 0x28]
call qword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
test eax, eax
jne 0x1400037a3
mov eax, 0xffffffff
jmp 0x140003894
lea rax, [rsp + 0x40]
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov qword [rsp + 0x20], rbx
xor edx, edx
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x48], rbx
cmp dword [rsp + 0xd8], ebx
je 0x14000381f
call qword [sym.imp.CRYPT32.dll_CryptProtectData]
test eax, eax
jne 0x140003838
lea rax, str.cannot_encrypt_data
mov r8d, WSAGetLastError
mov qword [rsp + 0x30], rax
lea rdx, str.convert_blob
mov qword [rsp + 0x28], rbx
lea rcx, str.C:__w1_scontribwin32win32compat_ssh_agentkeyagent_request.c
xor r9d, r9d
mov dword [rsp + 0x20], 5
call fcn.14001ae20
jmp 0x140003872
call qword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
jne 0x140003838
lea rax, str.cannot_decrypt_data
mov r8d, WSAStartup
jmp 0x1400037f5
mov ecx, dword [rsp + 0x40]
call fcn.14003d014
mov qword [r14], rax
test rax, rax
je 0x140003872
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov r8d, ecx
test ecx, ecx
je 0x14000386a
mov rcx, rax
test rdx, rdx
je 0x1400038ae
call fcn.14004fc40
mov ecx, dword [rsp + 0x40]
mov dword [r15], ecx
mov ebx, 1
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140003882
call qword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [rdi + 0x40048], 2
jg 0x140003891
call qword [sym.imp.ADVAPI32.dll_RevertToSelf]
lea eax, [rbx - 1]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400313f0
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.14004f880
call fcn.14003d440
mov dword [rax], socket
call fcn.1400354bc
mov dword [rsp + 0x38], socket
lea rax, str.memcpy_s_failed_with_error:__d.
mov qword [rsp + 0x30], rax
lea rdx, str.convert_blob
mov qword [rsp + 0x28], rbx
lea rcx, str.C:__w1_scontribwin32win32compat_ssh_agentkeyagent_request.c
xor r9d, r9d
mov dword [rsp + 0x20], 5
mov r8d, 0x7b
call fcn.14001ae20
jmp 0x140003872