joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401989e9
Capabilities:
Decrypt data via sspi

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
mov rsi, rcx
mov r8, qword [rdx + 0x78]
mov rcx, qword [rdx + 0x68]
mov rdx, qword [rdx + 0x70]
lea r9, [0x1403094e8]
call fcn.14019879d
xor ecx, ecx
test rax, rax
cmove edx, ecx
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
movups xmmword [rcx + 0x30], xmm0
mov dword [rcx], edx
mov dword [rcx + 4], 1
mov qword [rcx + 8], rax
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movabs rax, 0x400000000
lea rdx, [rsp + 0x60]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
lea rcx, [rdi + 0xf0]
xor r8d, r8d
xor r9d, r9d
call sub.secur32.dll_DecryptMessage
cmp eax, 0x80090318
je 0x140198ac0
test eax, eax
je 0x140198adc
cmp eax, 0x90317
je 0x140198b49
cmp eax, 0x90321
jne 0x140198b51
mov dword [rdi + 0xd0], 0x10000
xor ebx, ebx
mov byte [rdi + 0xd4], bl
cmp dword [rsp + 0x54], 5
mov rdx, qword [rdi + 0x78]
mov eax, 0
cmove eax, dword [rsp + 0x50]
sub rdx, rax
mov rcx, rdi
call fcn.140198993
and qword [rdi + 0x110], 0
mov byte [rsi + 1], bl
jmp 0x140198b5f
cmp dword [rsp + 0x34], 4
mov eax, 1
cmove eax, dword [rsp + 0x30]
mov qword [rdi + 0x110], rax
mov byte [rsi + 1], 0
jmp 0x140198b4d
mov r8, qword [rsp + 0x38]
mov rcx, qword [rdi + 0x68]
mov rdx, qword [rdi + 0x70]
sub r8, rcx
mov r9d, dword [rsp + 0x30]
add r9, r8
lea rbx, [rdi + 0x40]
and qword [rdi + 0x50], 0
call fcn.140198b73
lea r8, [rdx + rax]
mov rcx, rbx
mov rdx, rax
call fcn.1401008b9
and qword [rdi + 0x58], 0
xor ebx, ebx
cmp dword [rsp + 0x54], 5
mov rdx, qword [rdi + 0x78]
mov eax, dword [rsp + 0x50]
cmovne eax, ebx
sub rdx, rax
mov rcx, rdi
call fcn.140198993
xor eax, eax
cmp qword [rdi + 0x78], rbx
sete al
mov qword [rdi + 0x110], rax
mov byte [rsi + 1], 0
jmp 0x140198b5f
mov byte [rsi + 1], 1
xor ebx, ebx
jmp 0x140198b5f
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov bl, 1
mov byte [rsi], bl
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
Function at 0x140198e0b
Capabilities:
Decrypt data via sspi

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
mov rsi, rcx
mov r8, qword [rdx + 0x178]
mov rcx, qword [rdx + 0x168]
mov rdx, qword [rdx + 0x170]
lea r9, [0x1403094e8]
call fcn.14019879d
xor ecx, ecx
test rax, rax
cmove edx, ecx
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
movups xmmword [rcx + 0x30], xmm0
mov dword [rcx], edx
mov dword [rcx + 4], 1
mov qword [rcx + 8], rax
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movabs rax, 0x400000000
lea rdx, [rsp + 0x60]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
lea rcx, [rdi + 0x1f0]
xor r8d, r8d
xor r9d, r9d
call sub.secur32.dll_DecryptMessage
cmp eax, 0x80090318
je 0x140198eee
test eax, eax
je 0x140198f0d
cmp eax, 0x90317
je 0x140198f8f
cmp eax, 0x90321
jne 0x140198f97
mov dword [rdi + 0x1d0], 0x10000
xor ebx, ebx
mov byte [rdi + 0x1d4], bl
cmp dword [rsp + 0x54], 5
mov rdx, qword [rdi + 0x178]
mov eax, 0
cmove eax, dword [rsp + 0x50]
sub rdx, rax
mov rcx, rdi
call fcn.140198dac
and qword [rdi + 0x210], 0
mov byte [rsi + 1], bl
jmp 0x140198fa5
cmp dword [rsp + 0x34], 4
mov eax, 1
cmove eax, dword [rsp + 0x30]
mov qword [rdi + 0x210], rax
mov byte [rsi + 1], 0
jmp 0x140198f93
mov r8, qword [rsp + 0x38]
mov rcx, qword [rdi + 0x168]
mov rdx, qword [rdi + 0x170]
sub r8, rcx
mov r9d, dword [rsp + 0x30]
add r9, r8
lea rbx, [rdi + 0x140]
and qword [rdi + 0x150], 0
call fcn.140198b73
lea r8, [rdx + rax]
mov rcx, rbx
mov rdx, rax
call fcn.1401008b9
and qword [rdi + 0x158], 0
xor ebx, ebx
cmp dword [rsp + 0x54], 5
mov rdx, qword [rdi + 0x178]
mov eax, dword [rsp + 0x50]
cmovne eax, ebx
sub rdx, rax
mov rcx, rdi
call fcn.140198dac
xor eax, eax
cmp qword [rdi + 0x178], rbx
sete al
mov qword [rdi + 0x210], rax
mov byte [rsi + 1], 0
jmp 0x140198fa5
mov byte [rsi + 1], 1
xor ebx, ebx
jmp 0x140198fa5
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov bl, 1
mov byte [rsi], bl
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
Function at 0x140198faf
Capabilities:
Receive data
Receive data on socket

Disassembly:
cmp dword [rcx], 2
jne 0x140198fc1
add rcx, 8
jmp fcn.14020de17
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rdi, r8
mov rsi, rcx
mov qword [rcx + 0x38], rdx
mov rcx, r8
call fcn.140199152
mov rbx, rax
mov r14, rdx
lea r15, [rsp + 0x28]
mov rcx, rsi
call fcn.140199226
test rdx, rdx
jne 0x140199064
mov rcx, r15
mov rdx, rsi
call fcn.140197b0f
mov eax, dword [rsp + 0x28]
cmp eax, 2
je 0x1401990f3
test eax, eax
je 0x140199064
cmp qword [rsi + 0x110], 0
je 0x140199047
mov rcx, r15
mov rdx, rsi
call fcn.1401987e6
cmp qword [rsp + 0x28], 0
jne 0x1401990f3
cmp qword [rsp + 0x30], 0
je 0x140199064
and qword [rsi + 0x110], 0
mov rcx, r15
mov rdx, rsi
call fcn.1401989e9
cmp byte [rsp + 0x28], 0
jne 0x1401990f3
cmp byte [rsp + 0x29], 0
je 0x140198fed
mov rcx, rsi
call fcn.140199226
mov r15, rdx
test rax, rax
je 0x1401990f8
mov r13, rax
cmp r14, r15
mov r12, r15
cmovb r12, r14
lea r9, [0x140308d48]
mov rcx, r12
mov rdx, rbx
mov r8, r14
call fcn.1401b4a67
mov rbx, rax
mov r14, rdx
lea r9, [0x140308d60]
mov rcx, r13
mov rdx, r15
mov r8, r12
call fcn.1400e3de3
mov r9, rdx
lea rcx, [0x140308d78]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
mov rdx, r14
mov r8, rax
call fcn.140221df6
mov rax, qword [rsi + 0x58]
add rax, r12
cmp rax, qword [rsi + 0x50]
ja 0x140199139
mov qword [rsi + 0x58], rax
mov rcx, rdi
mov rdx, r12
call fcn.1401991bf
xor r15d, r15d
jmp 0x14019911f
mov r15, qword [rsp + 0x30]
mov qword [rsp + 0x28], r15
mov rcx, r15
call fcn.140087089
cmp al, 0xd
jne 0x14019911f
and qword [rsi + 0x38], 0
lea rcx, [rsp + 0x28]
call fcn.140177ff2
mov eax, 1
jmp 0x140199126
and qword [rsi + 0x38], 0
xor eax, eax
mov rdx, r15
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x140308eb6]
lea r8, [0x140308ef8]
mov edx, 0x3b
call fcn.1400be6a0
int3
Function at 0x1401a3be7
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rax, r8
mov r14, rdx
mov rsi, rcx
lea rdi, [rsp + 0x58]
mov r8d, 0xb
mov rcx, rdi
mov rdx, rax
call fcn.1401a3bba
lea r13, [rsp + 0x38]
mov dword [r13], 0x800
lea r15, [rsp + 0x3c]
and dword [r15], 0
mov ecx, 0x800
call fcn.1401009ad
mov rbx, rdx
lea r12, [rsp + 0x40]
mov qword [r12], rax
mov qword [r12 + 8], rdx
and qword [r12 + 0x10], 0
mov rdi, qword [rdi + 8]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call sub.advapi32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x1401a3c85
mov edx, dword [rsp + 0x38]
mov rcx, r12
call fcn.14021699d
mov rbx, qword [rsp + 0x48]
jmp 0x1401a3c50
test eax, eax
jne 0x1401a3ca7
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x3c]
cmp eax, 0xb
jbe 0x1401a3ccf
movabs rax, 0xde00000002
jmp 0x1401a3caf
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.1401d595c
jmp 0x1401a3ce3
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x10], rcx
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
mov byte [rsi + 0x18], al
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call fcn.140214ac6
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1401a78ea
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
call fcn.1401a6f7e
cmp eax, 1
je 0x1401a7920
mov eax, eax
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
cmp eax, 2
jne 0x1401a7935
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x1402265a0
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x140224b40
nop
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x140249930
movups xmm2, xmmword [rcx]
mov eax, dword [r8 + 0xf0]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
lea r8, [r8 + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec eax
movups xmm1, xmmword [r8]
lea r8, [r8 + 0x10]
jne 0x140224b5a
aesenclast xmm2, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
movups xmmword [rdx], xmm2
pxor xmm2, xmm2
ret
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
lea rsp, [rsp - 0xb8]
movaps xmmword [rsp + 0x10], xmm6
movaps xmmword [rsp + 0x20], xmm7
movaps xmmword [rsp + 0x30], xmm8
movaps xmmword [rsp + 0x40], xmm9
movaps xmmword [rsp + 0x50], xmm10
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x70], xmm12
movaps xmmword [rsp + 0x80], xmm13
movaps xmmword [rsp + 0x90], xmm14
movaps xmmword [rsp + 0xa0], xmm15
movdqu xmm0, xmmword [rdi]
call fcn.140226800
call fcn.140225e80
movdqu xmmword [rsi], xmm0
movaps xmm6, xmmword [rsp + 0x10]
movaps xmm7, xmmword [rsp + 0x20]
movaps xmm8, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x40]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm13, xmmword [rsp + 0x80]
movaps xmm14, xmmword [rsp + 0x90]
movaps xmm15, xmmword [rsp + 0xa0]
lea rsp, [rsp + 0xb8]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
ret
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x420
lea r14, [rsp + 0x60]
lea rsi, [rsp + 0x20]
mov r13, rcx
mov r12, rdx
mov rcx, r14
mov rdx, r8
mov rbx, r8
call fcn.140244920
mov rdx, r13
mov rcx, rsi
mov r8d, 1
call fcn.140244ed0
mov edx, dword [rbx + 0xf0]
mov r8, rsi
mov rcx, r14
call fcn.140244720
mov r8, rsi
mov edx, 1
mov rcx, r12
call fcn.1402449a0
nop
add rsp, 0x420
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
Function at 0x1401a7a25
Capabilities:
Encode data using base64

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x660
movaps xmmword [rsp + 0x650], xmm6
mov rsi, rcx
mov rax, r8
shr rax, 0x3d
jne 0x1401a7ab2
movzx ebx, r9b
shl rbx, 7
sub rbx, 0xffffffffffffff80
shl r8, 3
cmp r8, rbx
jne 0x1401a7ab2
mov rdi, rdx
lea rcx, [rsp + 0x140]
mov r8d, 0xf4
xor edx, edx
call sub.msvcrt.dll_memset
call fcn.1401a6f7e
cmp eax, 3
je 0x1401a7a95
mov eax, eax
lea r8, [rsp + 0x140]
mov rcx, rdi
mov edx, ebx
cmp eax, 2
jne 0x1401a7aa9
call fcn.1402264c0
jmp 0x1401a7aae
lea r8, [rsp + 0x140]
mov rcx, rdi
mov edx, ebx
call fcn.1402499a0
jmp 0x1401a7aae
call fcn.140225910
test eax, eax
je 0x1401a7acb
mov dword [rsi], 2
movaps xmm6, xmmword [rsp + 0x650]
add rsp, 0x660
pop rbx
pop rdi
pop rsi
ret
lea rdi, [rsp + 0x358]
lea rdx, [rsp + 0x140]
mov r8d, 0xf4
mov rcx, rdi
call sub.msvcrt.dll_memcpy
xorps xmm6, xmm6
lea r8, [rsp + 0x450]
movaps xmmword [r8], xmm6
lea rbx, [rsp + 0x140]
mov rcx, rbx
mov rdx, rdi
call fcn.1401a78ea
movaps xmm0, xmmword [rbx]
lea rdx, [rsp + 0x30]
movaps xmmword [rdx], xmm0
lea rcx, [rsp + 0x20]
call fcn.1401a7507
xor eax, eax
cmp rax, 0x100
je 0x1401a7b38
movups xmmword [rsp + rax + 0x140], xmm6
add rax, 0x10
jmp 0x1401a7b22
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x140]
mov r8d, 0x100
call sub.msvcrt.dll_memcpy
call fcn.1401a74ee
test al, al
je 0x1401a7b90
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, rax
shld rdx, rcx, 1
shld rcx, rax, 1
sar rax, 0x3f
movabs r8, 0xc200000000000000
and r8, rax
xor r8, rdx
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x48], rcx
jmp 0x1401a7bb9
mov rax, qword [0x140347e70]
mov eax, dword [rax + 4]
not eax
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x20]
test eax, 0x10400000
jne 0x1401a7bb4
call fcn.140230a60
jmp 0x1401a7bb9
call fcn.140230040
lea rdi, [rsp + 0x450]
lea rdx, [rsp + 0x40]
mov r8d, 0x100
mov rcx, rdi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x550]
lea rdx, [rsp + 0x358]
mov r8d, 0xf4
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x14c]
mov r8d, 0x200
mov rdx, rdi
call sub.msvcrt.dll_memcpy
and dword [rsi], 0
add rsi, 4
lea rdx, [rsp + 0x140]
mov r8d, 0x20c
mov rcx, rsi
call sub.msvcrt.dll_memcpy
jmp 0x1401a7ab8

Function at 0x1401b15c0
Capabilities:
Encode data using xor

Disassembly:
sub rdx, rcx
cmp rdx, 0x20
jb fcn.1400c6ff0
jmp fcn.1400bdc80
Function at 0x1401b2540
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x48
mov rsi, rcx
mov r8, qword [rcx]
test r8, r8
je 0x1401b259b
mov r10, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
cmp rcx, r10
jae 0x1401b259b
movzx eax, byte [r8 + rcx]
cmp eax, 0x49
je 0x1401b25b6
cmp eax, 0x42
jne 0x1401b259b
lea r11, [rcx + 1]
mov qword [rsi + 0x10], r11
cmp r11, r10
jae 0x1401b2666
cmp byte [r8 + r11], 0x5f
jne 0x1401b2666
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
xor eax, eax
jmp 0x1401b26ce
mov rcx, rsi
xor edx, edx
call fcn.1401adff0
mov edi, eax
add dil, dil
mov eax, edi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r14
ret
inc rcx
mov qword [rsi + 0x10], rcx
mov rcx, rsi
xor edx, edx
call fcn.1401adff0
test al, al
jne 0x1401b2761
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1401b25f2
lea rdx, [0x14030d3ba]
mov r8d, 1
call fcn.1400be380
test al, al
jne 0x1401b2761
mov rax, qword [rsi]
mov dil, 1
test rax, rax
je 0x1401b25aa
xor r14d, r14d
lea rbx, [0x14030d729]
nop word [rax + rax]
mov rcx, qword [rsi + 0x10]
cmp rcx, qword [rsi + 8]
jae 0x1401b2624
cmp byte [rax + rcx], 0x45
je 0x1401b2783
sub r14, 1
jb 0x1401b2649
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1401b2649
mov r8d, 2
mov rdx, rbx
call fcn.1400be380
test al, al
jne 0x1401b2761
mov rcx, rsi
call fcn.1401af820
test al, al
jne 0x1401b2761
mov rax, qword [rsi]
test rax, rax
jne 0x1401b2610
jmp 0x1401b25aa
xor eax, eax
mov edi, 0x3e
nop dword [rax]
mov r9b, 1
cmp r11, r10
jae 0x1401b2728
movzx edx, byte [r8 + r11]
cmp dl, 0x5f
je 0x1401b26c2
lea ebx, [rdx - 0x30]
cmp bl, 0xa
jb 0x1401b26ac
lea ebx, [rdx - 0x61]
cmp bl, 0x1a
jae 0x1401b269b
add dl, 0xa9
jmp 0x1401b26aa
lea ebx, [rdx - 0x41]
cmp bl, 0x1a
jae 0x1401b2728
add dl, 0xe3
mov ebx, edx
inc r11
mov qword [rsi + 0x10], r11
mul rdi
jo 0x1401b2728
movzx edx, bl
add rax, rdx
jae 0x1401b2670
jmp 0x1401b2728
inc r11
mov qword [rsi + 0x10], r11
inc rax
je 0x1401b2728
cmp rax, rcx
jae 0x1401b2725
mov ecx, dword [rsi + 0x18]
inc ecx
cmp ecx, 0x1f4
ja 0x1401b277b
cmp qword [rsi + 0x20], 0
je 0x1401b2774
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x18], ecx
mov rcx, rsi
call fcn.1401b2540
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
jmp 0x1401b25ac
mov r9b, 1
xor edi, edi
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1401b2769
mov eax, r9d
xor al, 1
movzx eax, al
lea r8, [rax + rax*8]
add r8, 0x10
lea rax, str.invalid_syntaxrecursion_limit_reached_for_____::closureshim_as_mut_const___dyn___unsafe_extern___r
lea rdx, [0x14030d708]
test r9b, r9b
cmovne rdx, rax
call fcn.1400be380
test al, al
je 0x1401b2769
mov dil, 2
jmp 0x1401b25aa
mov qword [rsi], 0
mov byte [rsi + 8], dil
xor edi, edi
jmp 0x1401b25aa
mov dil, 1
xor r9d, r9d
jmp 0x1401b272a
inc rcx
mov qword [rsi + 0x10], rcx
jmp 0x1401b25aa
Function at 0x1401c4ac2
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
test r8b, r8b
je 0x1401c4b70
lea rbx, [rsp + 0x68]
mov rcx, rbx
call fcn.1401c47a4
mov rdx, qword [rsi + 0x130]
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov r8, rbx
call fcn.1401be497
mov r14, qword [rdi]
mov r15, qword [rdi + 8]
mov r12, qword [rdi + 0x10]
movzx ebp, word [rdi + 0x18]
movzx r13d, word [rdi + 0x1a]
mov bl, byte [rdi + 0x1c]
mov dil, byte [rdi + 0x1d]
test r15, r15
je 0x1401c4c42
cmp bp, 0xa
je 0x1401c4c42
cmp r15, r12
mov rax, r12
cmovb rax, r15
sub r15, rax
mov qword [rsp + 0x28], r14
add r14, rax
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], bl
mov byte [rsp + 0x39], dil
mov word [rsp + 0x3a], bp
mov word [rsp + 0x3c], r13w
mov rcx, rsi
lea rdx, [rsp + 0x28]
call fcn.1401c4c66
jmp 0x1401c4b20
lea rdi, [rsp + 0x68]
mov rcx, rdi
call fcn.1401c47a4
mov qword [rsp + 0x60], rsi
mov rdx, qword [rsi + 0x130]
lea r14, [rsp + 0x88]
mov rcx, r14
mov r8, rdi
call fcn.1401be497
mov rbx, qword [r14]
mov r13, qword [r14 + 8]
mov rbp, qword [r14 + 0x10]
movzx edi, word [r14 + 0x18]
movzx eax, word [r14 + 0x1a]
mov word [rsp + 0x26], ax
mov al, byte [r14 + 0x1c]
mov byte [rsp + 0x25], al
mov al, byte [r14 + 0x1d]
mov byte [rsp + 0x24], al
test r13, r13
je 0x1401c4c42
cmp di, 0xa
je 0x1401c4c42
cmp r13, rbp
mov r14, rbp
cmovb r14, r13
sub r13, r14
lea rsi, [rbx + r14]
mov rcx, r14
xor edx, edx
call fcn.1401abb9f
mov r15, rax
mov r12, rdx
mov rcx, rdx
mov rdx, rbx
mov r8, r14
call sub.msvcrt.dll_memcpy
mov al, byte [rsp + 0x25]
mov byte [rsp + 0x5c], al
mov al, byte [rsp + 0x24]
mov byte [rsp + 0x5d], al
mov word [rsp + 0x58], di
movzx eax, word [rsp + 0x26]
mov word [rsp + 0x5a], ax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r14
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x40]
call fcn.1401c4cb8
mov rbx, rsi
jmp 0x1401c4bc6
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
call fcn.1401d595c
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1401d5f04
Capabilities:
Get client handle via schannel
Get outbound credentials handle via credssp

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xc0
movaps xmmword [rsp + 0xb0], xmm6
movabs rax, 0x8000000000000000
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x60], 4
mov dword [rsp + 0xa8], 0x400010
cmp qword [rcx + 0x18], rax
je 0x1401d5f78
mov edx, dword [rcx + 0x28]
mov dword [rsp + 0x88], edx
mov rdx, qword [rcx + 0x20]
mov qword [rsp + 0x90], rdx
cmp qword [rcx + 0x30], rax
je 0x1401d5fb3
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x1401d5faa
mov r8, qword [rcx + 0x38]
xor edx, edx
lea r9, [0x1403462ac]
xor r10d, r10d
movzx r11d, byte [r8 + r10]
or edx, dword [r9 + r11*4]
inc r10
cmp rax, r10
jne 0x1401d5f97
jmp 0x1401d5fac
xor edx, edx
mov dword [rsp + 0x98], edx
mov r15, qword [rcx + 0x10]
lea rsi, [r15*8]
test r15, r15
je 0x1401d6005
mov rax, r15
shr rax, 0x3c
jne 0x1401d60b9
mov rbx, qword [rcx + 8]
mov ecx, 8
mov rdx, rsi
call fcn.14001f202
test rax, rax
je 0x1401d60be
mov rdi, rax
xor eax, eax
mov rcx, qword [rbx + rax*8]
mov qword [rdi + rax*8], rcx
inc rax
cmp r15, rax
jne 0x1401d5ff0
mov eax, r15d
jmp 0x1401d600c
xor eax, eax
mov edi, 8
lea rcx, [rsp + 0x60]
mov dword [rcx + 4], eax
mov qword [rcx + 8], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], rcx
and qword [rsp + 0x40], 0
lea rdx, [0x140314863]
xor ecx, ecx
mov r8d, 2
xor r9d, r9d
call sub.secur32.dll_AcquireCredentialsHandleA
test eax, eax
je 0x1401d6062
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov r14d, 1
jmp 0x1401d6087
movaps xmm6, xmmword [rsp + 0x50]
mov ecx, 0x20
call fcn.1400bbcf6
mov rbx, rax
mov eax, 1
mov qword [rbx], rax
mov qword [rbx + 8], rax
movups xmmword [rbx + 0x10], xmm6
xor r14d, r14d
test r15, r15
je 0x1401d609c
mov edx, 8
mov rcx, rdi
mov r8, rsi
call fcn.14000678c
mov rax, r14
mov rdx, rbx
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.14003efb0
mov ecx, 8
mov rdx, rsi
call fcn.14003eff0
int3

Function at 0x1401d6637
Capabilities:
Get remote cert context via schannel

Disassembly:
sub rsp, 0x28
lea r8, [rsp + 0x20]
and qword [r8], 0
mov edx, 0x53
call sub.secur32.dll_QueryContextAttributesW
mov edx, eax
xor eax, eax
test edx, edx
setne cl
jne 0x1401d6660
mov rdx, qword [rsp + 0x20]
jmp 0x1401d6668
shl rdx, 0x20
or rdx, 2
mov al, cl
add rsp, 0x28
ret
Function at 0x1401dbc9b
Capabilities:
Hash data using murmur3

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
mov rsi, qword [rsp + 0x58]
mov eax, dword [rdx]
mov edi, r8d
rol edi, 0x19
mov r10d, dword [rdx + 4]
mov ebx, eax
rol ebx, 0x19
mov r11d, dword [rdx + 8]
mov ebp, r10d
rol ebp, 0x19
mov r14d, r11d
rol r14d, 0x19
mov r15d, r8d
rol r15d, 0xe
xor r15d, edi
mov edi, eax
rol edi, 0xe
xor edi, ebx
mov ebx, r10d
rol ebx, 0xe
xor ebx, ebp
mov ebp, r11d
rol ebp, 0xe
xor ebp, r14d
shr r8d, 3
xor r8d, r15d
add r8d, eax
shr eax, 3
xor eax, edi
add eax, r10d
shr r10d, 3
xor r10d, ebx
add r10d, r11d
shr r11d, 3
xor r11d, ebp
add r11d, dword [rdx + 0xc]
add r8d, dword [rsi + 0xc]
add eax, dword [r9]
add r10d, dword [r9 + 4]
add r11d, dword [r9 + 8]
mov edx, dword [rsi + 4]
mov edi, edx
rol edi, 0xf
mov r9d, dword [rsi]
mov esi, edx
rol esi, 0xd
xor esi, edi
shr edx, 0xa
xor edx, esi
add edx, r11d
mov r11d, r9d
rol r11d, 0xf
mov esi, r9d
rol esi, 0xd
xor esi, r11d
shr r9d, 0xa
xor r9d, esi
mov r11d, edx
rol r11d, 0xf
add r9d, r10d
mov r10d, edx
rol r10d, 0xd
xor r10d, r11d
mov r11d, edx
shr r11d, 0xa
xor r11d, r10d
add r11d, eax
mov eax, r9d
rol eax, 0xf
mov r10d, r9d
rol r10d, 0xd
xor r10d, eax
mov eax, r9d
shr eax, 0xa
xor eax, r10d
add eax, r8d
mov dword [rcx], eax
mov dword [rcx + 4], r11d
mov dword [rcx + 8], r9d
mov dword [rcx + 0xc], edx
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
Function at 0x1401dc5db
Capabilities:
Hash data using sha256 via x86 extensions

Disassembly:
movaps xmm0, xmmword [rdx]
sha256msg1 xmm0, xmmword [r8]
movaps xmmword [rcx], xmm0
ret

Function at 0x1401dc5f7
Capabilities:
Hash data using sha256 via x86 extensions

Disassembly:
movaps xmm0, xmmword [rdx]
sha256msg2 xmm0, xmmword [r8]
movaps xmmword [rcx], xmm0
ret
Function at 0x1401dccb7
Capabilities:
Connect socket

Disassembly:
sub rsp, 0x28
mov r8d, dword [rdx + 0x80]
call sub.ws2_32.dll_connect
test eax, eax
je 0x1401dccd4
add rsp, 0x28
jmp fcn.1400fdfeb
xor eax, eax
add rsp, 0x28
ret

Function at 0x1401dccdb
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
mov eax, edx
lea r9, [rsp + 0x34]
mov dword [r9], r8d
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, eax
call sub.ws2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x1401dcd07
xor eax, eax
jmp 0x1401dcd0c
call fcn.1400fdfeb
nop
add rsp, 0x38
ret
Function at 0x1401de120
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x1401de1a5
mov dword [rsp + 0x2c], 0
lea rbx, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rbx
xor edx, edx
xor r9d, r9d
call sub.kernel32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x1401de1e6
cmp dword [rsp + 0x2c], 0
je 0x1401de1ca
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x1401de20c
mov edi, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x14039c178]
nop
mov qword [rsi + 8], rax
lock cmpxchg qword [0x14039c178], rsi
jne 0x1401de180
mov byte [0x14039c170], 1
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
jmp 0x1401de1dc
call sub.kernel32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x1401de256
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x1401de1cf
mov edi, dword [rsp + 0x28]
jmp 0x1401de1dc
mov edi, dword [rsi + 0x18]
jmp 0x1401de1da
mov edi, eax
mov ecx, dword [rsp + 0x28]
call sub.kernel32.dll_TlsFree
dec edi
mov eax, edi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x30], 0
lea rdx, [0x140319178]
lea r9, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.1401de830
mov rcx, rbx
mov edx, 4
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call fcn.1400bd510
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call fcn.1401de870
int3