joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140079100
Capabilities:
Create http request

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x140363e80]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rcx
mov qword [rsp + 0x30], rcx
xor esi, esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
mov edx, 1
lea rcx, str.ClpBot
call qword [sym.imp.WININET.dll_InternetOpenA]
mov rdi, rax
test rax, rax
jne 0x1400791ac
lea rdx, str.InternetOpen_failed
lea rcx, [0x14036af80]
call fcn.140083390
mov rcx, rax
call fcn.140083640
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x1400791a2
inc rdx
cmp rdx, 0x1000
mov rcx, qword [rbx]
jb 0x14007919d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14007925c
mov rcx, r8
call fcn.14018630c
mov eax, 1
jmp 0x140079230
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x1400791b9
mov rdx, qword [rbx]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0x80000000
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
test rax, rax
jne 0x1400791e5
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x140079168
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14007922e
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140079229
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14007925c
mov rcx, r8
call fcn.14018630c
xor eax, eax
mov byte [rbx], 0
mov qword [rbx + 0x18], recv
mov qword [rbx + 0x10], rsi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1401862b0
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
call fcn.14018f254
int3
Function at 0x140079270
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
mov eax, 0x1070
call fcn.140187030
sub rsp, rax
mov rax, qword [0x140363e80]
xor rax, rsp
mov qword [rsp + 0x1060], rax
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x38], rcx
xor ebp, ebp
mov dword [rsp + 0x20], ebp
xor r9d, r9d
xor r8d, r8d
mov edx, 1
lea rcx, str.ClpBot
call qword [sym.imp.WININET.dll_InternetOpenA]
mov rsi, rax
test rax, rax
jne 0x140079308
lea rdx, str.InternetOpen_failed
lea rcx, [0x14036af80]
call fcn.140083390
mov rcx, rax
call fcn.140083640
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
xor r8d, r8d
lea rdx, [0x1403488ed]
mov rcx, rbx
call fcn.140084310
jmp 0x14007943e
cmp qword [rdi + 0x18], 0xf
jbe 0x140079312
mov rdi, qword [rdi]
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], 0x80000000
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
mov rdi, rax
test rax, rax
jne 0x140079382
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea rdx, str.InternetOpenUrl_failed
lea rcx, [0x14036af80]
call fcn.140083390
mov rcx, rax
call fcn.140083640
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
xor r8d, r8d
lea rdx, [0x1403488ed]
mov rcx, rbx
call fcn.140084310
jmp 0x14007943e
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x140349800]
movdqu xmmword [rsp + 0x50], xmm1
mov byte [rsp + 0x40], bpl
lea r9, [rsp + 0x38]
mov r8d, 0xfff
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x14007941b
nop word [rax + rax]
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14007941b
cmp rax, 0x1000
jae 0x140079464
mov byte [rsp + rax + 0x60], 0
lea rax, [rsp + 0x60]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400793e5
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.140081f80
lea r9, [rsp + 0x38]
mov r8d, 0xfff
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x1400793c0
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rsi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x10], xmm1
mov rax, rbx
mov rcx, qword [rsp + 0x1060]
xor rcx, rsp
call fcn.1401862b0
mov rbx, qword [rsp + 0x10a0]
add rsp, 0x1070
pop rdi
pop rsi
pop rbp
ret
call fcn.140186448
nop
int3
Function at 0x14007e5f0
Capabilities:
Read file on windows

Disassembly:
push rbx
push r14
push r15
sub rsp, 0x30
mov r15, r8
mov r14, rdx
mov rbx, rcx
test r8, r8
jg 0x14007e614
xor eax, eax
add rsp, 0x30
pop r15
pop r14
pop rbx
ret
cmp qword [rcx + 0x68], 0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
je 0x14007e6a2
mov rdi, r15
mov qword [rsp + 0x68], rbp
lea rsi, [rcx + 0x50]
mov rax, qword [rbx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14007e670
mov rax, qword [rsi]
movsxd rcx, dword [rax]
test ecx, ecx
jle 0x14007e670
cmp rdi, rcx
mov rbp, rdi
cmovge rbp, rcx
mov rcx, r14
mov r8, rbp
call fcn.1401bb480
mov rax, qword [rsi]
sub rdi, rbp
sub dword [rax], ebp
mov rcx, qword [rbx + 0x38]
movsxd rax, ebp
add qword [rcx], rax
jmp 0x14007e68d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x38]
cmp eax, 0xffffffff
je 0x14007e695
mov byte [r14], al
lea rsi, [rbx + 0x50]
dec rdi
mov ebp, 1
add r14, rbp
test rdi, rdi
jg 0x14007e631
mov rbp, qword [rsp + 0x68]
sub r15, rdi
jmp 0x14007e780
mov rax, qword [rcx + 0x38]
mov rsi, r15
mov rdx, qword [rax]
test rdx, rdx
je 0x14007e6b9
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14007e6bb
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14007e6ed
cmp rax, r15
mov rdi, r15
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call fcn.1401bb480
mov rax, qword [rbx + 0x50]
add r14, rdi
sub rsi, rdi
sub dword [rax], edi
mov rcx, qword [rbx + 0x38]
movsxd rax, edi
add qword [rcx], rax
cmp qword [rbx + 0x80], 0
je 0x14007e77d
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14007e728
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
cmp rsi, 0xfff
jbe 0x14007e75e
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call fcn.140196bd4
add r14, rax
sub rsi, rax
cmp rax, 0xfff
jne 0x14007e77d
cmp rsi, rax
ja 0x14007e731
test rsi, rsi
je 0x14007e77d
mov r9, qword [rbx + 0x80]
mov r8, rsi
mov edx, 1
mov rcx, r14
call fcn.140196bd4
sub rsi, rax
sub r15, rsi
mov rsi, qword [rsp + 0x28]
mov rax, r15
mov rdi, qword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop rbx
ret

Function at 0x140085580
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x1400855b4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [rdx + r9]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x1400855a0
ret
Function at 0x14008a850
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14008a915
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x14008a915
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x14008a92e
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx + 0x10]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx]
cmp rcx, rax
je 0x14008a905
cmp byte [rcx], 0x5c
jne 0x14008a8fe
lea rdx, [rcx + 1]
cmp rdx, rax
je 0x14008a8fe
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14008a8ec
movzx eax, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x14008a8fb
test r8b, 0x10
jne 0x14008a8fe
movzx eax, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x14008a8fe
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.140087330
test edi, edi
jne 0x14008a870
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140087320
int3

Function at 0x14009cf40
Capabilities:
Encode data using xor

Disassembly:
mov r9, r8
xor r11d, r11d
mov r10, rdx
mov r8d, r11d
cmp r9, 8
jb 0x14009cf77
mov rdx, r9
shr rdx, 3
imul rax, rdx, 0xfffffffffffffff8
add r9, rax
mov rax, qword [rcx]
add rcx, 8
xor rax, qword [r10]
add r10, 8
or r8, rax
sub rdx, 1
jne 0x14009cf60
mov rdx, r8
shr rdx, 0x20
or edx, r8d
mov r8d, edx
mov eax, edx
shr r8d, 8
or r8d, edx
shr eax, 0x10
and r8d, 0xff00
or r8d, eax
movzx eax, dl
shr r8d, 8
or r8d, eax
test r9, r9
je 0x14009d068
sub rcx, r10
cmp r9, 8
jb 0x14009d049
mov rax, r9
lea rdx, [r10 + 4]
and rax, 0xfffffffffffffff8
xorps xmm4, xmm4
xorps xmm3, xmm3
nop dword [rax + rax]
movd xmm2, dword [rcx + rdx - 4]
xorps xmm0, xmm0
movd xmm1, dword [rdx - 4]
lea rdx, [rdx + 8]
punpcklbw xmm2, xmm0
add r11, 8
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
xorps xmm2, xmm1
movd xmm1, dword [rdx - 8]
punpcklbw xmm1, xmm0
orps xmm4, xmm2
movd xmm2, dword [rcx + rdx - 8]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
xorps xmm2, xmm1
orps xmm3, xmm2
cmp r11, rax
jb 0x14009cfd0
orps xmm3, xmm4
movdqa xmm0, xmm3
psrldq xmm0, 8
orps xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
orps xmm3, xmm0
movd eax, xmm3
or r8d, eax
cmp r11, r9
jae 0x14009d068
add r10, r11
sub r9, r11
nop
movzx edx, byte [rcx + r10]
movzx eax, byte [r10]
lea r10, [r10 + 1]
xor edx, eax
or r8d, edx
sub r9, 1
jne 0x14009d050
test r8d, r8d
sete al
ret
Function at 0x14009d070
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
test r8, r8
je 0x14009d1d2
cmp r8, 4
jb 0x14009d0b2
mov r9, r8
shr r9, 2
imul rax, r9, 0xfffffffffffffffc
add r8, rax
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdx]
add rdx, 4
xor dword [rcx], eax
add rcx, 4
sub r9, 1
jne 0x14009d0a0
xor r10d, r10d
test r8, r8
je 0x14009d1d2
cmp r8, 8
jb 0x14009d1b4
lea r9, [rcx - 1]
lea rax, [rdx - 1]
add r9, r8
add rax, r8
cmp rcx, rax
ja 0x14009d0e4
cmp r9, rdx
jae 0x14009d1b4
cmp r8, 0x40
jb 0x14009d173
mov r9, r8
mov qword [rsp], rbx
and r9d, 0x3f
mov r11, r8
sub r11, r9
mov rbx, rdx
lea rax, [rcx + 0x10]
sub rbx, rcx
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
add r10, 0x40
movdqu xmm1, xmmword [rax + rbx - 0x10]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax + rbx - 0x40]
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm2, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rax + rbx - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax + rbx - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp r10, r11
jb 0x14009d110
mov rbx, qword [rsp]
cmp r9, 8
jb 0x14009d1af
mov r9, r8
and r9, 0xfffffffffffffff8
mov r11, rdx
lea rax, [r10 + rcx]
sub r11, rcx
nop dword [rax]
nop dword [rax + rax]
movq xmm0, qword [rax]
add r10, 8
movq xmm1, qword [r11 + rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax - 8], xmm1
cmp r10, r9
jb 0x14009d190
cmp r10, r8
jae 0x14009d1d2
sub rdx, rcx
lea r9, [r10 + rcx]
sub r8, r10
nop
movzx eax, byte [rdx + r9]
xor byte [r9], al
lea r9, [r9 + 1]
sub r8, 1
jne 0x14009d1c0
add rsp, 8
ret
Function at 0x1400a2370
Capabilities:
Encode data using xor

Disassembly:
push rdi
movsxd r11, r9d
mov r10, r8
mov rdi, rdx
cmp rdx, r8
je 0x1400a24e3
mov qword [rsp + 0x18], rbp
lea rbp, [rcx - 1]
not rcx
shr rbp, 0x3f
shr rcx, 0x3f
and rbp, rcx
mov qword [rsp + 0x20], rsi
mov ecx, dword [rdx + 8]
dec rbp
xor ecx, dword [r8 + 8]
and ecx, ebp
mov qword [rsp + 0x10], rbx
xor dword [rdx + 8], ecx
xor dword [r8 + 8], ecx
movq xmm4, rbp
mov ecx, dword [rdx + 0x10]
xor ecx, dword [r8 + 0x10]
and ecx, ebp
punpcklqdq xmm4, xmm4
xor dword [rdx + 0x10], ecx
xor dword [r8 + 0x10], ecx
mov edx, dword [rdx + 0x14]
mov ecx, dword [r8 + 0x14]
xor rcx, rdx
and ecx, 4
and rcx, rbp
mov eax, ecx
xor eax, edx
mov dword [rdi + 0x14], eax
xor dword [r8 + 0x14], ecx
xor ecx, ecx
mov edx, ecx
test r9d, r9d
jle 0x1400a248a
cmp r11d, 2
jb 0x1400a248a
mov r9, qword [r8]
lea rax, [r11 - 1]
mov r8, qword [rdi]
lea rbx, [r11 - 1]
lea rbx, [r9 + rbx*8]
lea rax, [r8 + rax*8]
cmp r9, rax
ja 0x1400a2423
cmp rbx, r8
jae 0x1400a248a
cmp r9, r10
ja 0x1400a242d
cmp rbx, r10
jae 0x1400a248a
cmp r9, rdi
ja 0x1400a2437
cmp rbx, rdi
jae 0x1400a248a
cmp r8, r10
ja 0x1400a2441
cmp rax, r10
jae 0x1400a248a
cmp r8, rdi
ja 0x1400a244b
cmp rax, rdi
jae 0x1400a248a
mov eax, r11d
and eax, 0xfffffffe
movdqu xmm2, xmmword [rcx + r9]
add edx, 2
movdqu xmm1, xmmword [rcx + r8]
lea rcx, [rcx + 0x10]
movdqa xmm3, xmm2
xorps xmm3, xmm1
andps xmm3, xmm4
movdqa xmm0, xmm3
xorps xmm3, xmm2
xorps xmm0, xmm1
movdqu xmmword [rcx + r8 - 0x10], xmm0
movdqu xmmword [rcx + r9 - 0x10], xmm3
cmp edx, eax
jl 0x1400a2451
movsxd rax, edx
mov rsi, r11
cmp rax, r11
jge 0x1400a24d4
lea r11, [rax*8]
mov rbx, r11
mov rcx, qword [r10]
lea r11, [r11 + 8]
mov r8, qword [rdi]
lea rbx, [rbx + 8]
mov rdx, qword [r8 + r11 - 8]
mov r9, rdx
xor r9, qword [rcx + rbx - 8]
and r9, rbp
xor rdx, r9
mov qword [r8 + rax*8], rdx
mov rcx, qword [r10]
xor qword [rcx + rax*8], r9
inc rax
cmp rax, rsi
jl 0x1400a24a0
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
pop rdi
ret
Function at 0x1400a8610
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x28
call fcn.140187030
sub rsp, rax
cmp dword [0x140369e70], 0
jne 0x1400a8793
mov qword [rsp + 0x40], rsi
lea rcx, str.OPENSSL_ia32cap
mov qword [rsp + 0x48], rdi
mov r8d, 0x30
mov qword [rsp + 0x30], rbx
lea rdi, [0x140369e10]
mov rdx, rdi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x20], r14
mov dword [0x140369e70], 1
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x2e
ja 0x1400a8755
movzx ebx, word [rdi]
xor ebp, ebp
cmp bx, 0x7e
mov ecx, ebp
mov r14d, 2
cmove ecx, r14d
add rcx, rdi
call fcn.1400a8d70
mov rsi, rax
cmp bx, 0x7e
jne 0x1400a86d2
lea rcx, [0x14036c760]
call fcn.140001030
mov rcx, rsi
movabs rdx, 0xedfff7fdffffffff
not rcx
and rax, rcx
mov rcx, rsi
mov rsi, rax
and ecx, 0x1000000
and rsi, rdx
test rcx, rcx
cmove rsi, rax
jmp 0x1400a86e7
cmp word [rdi], 0x3a
jne 0x1400a86e7
lea rcx, [0x14036c760]
call fcn.140001030
mov rsi, rax
movzx eax, word [rdi]
test ax, ax
je 0x1400a8701
nop
cmp ax, 0x3a
je 0x1400a870a
add rdi, r14
movzx eax, word [rdi]
test ax, ax
jne 0x1400a86f0
mov qword [0x14036c768], rbp
jmp 0x1400a8764
test rdi, rdi
je 0x1400a8701
movzx ebx, word [rdi + 2]
lea rax, [rdi + 2]
cmp bx, 0x7e
cmove rbp, r14
lea rcx, [rax + rbp]
call fcn.1400a8d70
mov rcx, rax
shr rcx, 0x20
cmp bx, 0x7e
jne 0x1400a8747
not eax
not ecx
and dword [0x14036c768], eax
and dword [0x14036c76c], ecx
jmp 0x1400a8764
mov dword [0x14036c768], eax
mov dword [0x14036c76c], ecx
jmp 0x1400a8764
lea rcx, [0x14036c760]
call fcn.140001030
mov rsi, rax
mov r14, qword [rsp + 0x20]
mov eax, esi
mov rdi, qword [rsp + 0x48]
bts eax, 0xa
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
shr rsi, 0x20
mov dword [0x14036c764], esi
mov rsi, qword [rsp + 0x40]
mov dword [0x14036c760], eax
add rsp, 0x28
ret
Function at 0x1400a9040
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x28
call fcn.140187030
sub rsp, rax
mov ecx, dword [rcx]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
add rsp, 0x28
ret

Function at 0x1400abf40
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
xor eax, eax
mov r10, rcx
test rcx, rcx
je 0x1400abfac
movzx ecx, byte [rcx]
test cl, cl
je 0x1400abfac
mov r11d, 0x100
nop word [rax + rax]
movsx r9d, cl
lea r10, [r10 + 1]
or r9d, r11d
mov r8d, eax
mov edx, r9d
mov ecx, 0x20
shr edx, 2
add r11d, 0x100
xor edx, r9d
imul r9d, r9d
and edx, 0xf
sub ecx, edx
shr r8, cl
mov ecx, edx
mov edx, eax
mov eax, r8d
shl edx, cl
movzx ecx, byte [r10]
or eax, edx
xor eax, r9d
test cl, cl
jne 0x1400abf60
mov ecx, eax
shr ecx, 0x10
xor eax, ecx
ret

Function at 0x1400ac060
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
mov eax, 0x20
call fcn.140187030
sub rsp, rax
xor ebx, ebx
mov rdi, rcx
test rcx, rcx
je 0x1400ac0f3
movzx eax, byte [rcx]
test al, al
je 0x1400ac0f3
mov qword [rsp + 0x30], rsi
mov esi, 0x100
nop
movsx ecx, al
call fcn.1400ac130
mov r9d, eax
mov edx, ebx
or r9d, esi
lea rdi, [rdi + 1]
mov eax, ebx
mov r8d, r9d
shr r8d, 2
mov ecx, 0x20
xor r8d, r9d
add esi, 0x100
and r8d, 0xf
imul r9d, r9d
sub ecx, r8d
shr rdx, cl
mov ecx, r8d
shl eax, cl
mov ebx, edx
or ebx, eax
movzx eax, byte [rdi]
xor ebx, r9d
test al, al
jne 0x1400ac090
mov rsi, qword [rsp + 0x30]
mov eax, ebx
shr eax, 0x10
xor eax, ebx
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x38]
xor eax, eax
add rsp, 0x20
pop rdi
ret

Function at 0x1400b5040
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0x28
call fcn.140187030
sub rsp, rax
lea rcx, [0x14036a018]
add rsp, 0x28
jmp fcn.1400a8e90

Function at 0x1400bd350
Capabilities:
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
mov eax, 0x20
call fcn.140187030
sub rsp, rax
mov edx, 1
mov rdi, rcx
call fcn.1400b0180
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call fcn.1400affc0
test rax, rax
je 0x1400bd3c8
mov qword [rsp + 0x30], rbx
mov r9d, 2
mov r8d, esi
mov rdx, rax
xor ecx, ecx
xor ebx, ebx
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
mov rcx, rdi
cmove rbx, rsi
mov rdx, rbx
lea r8, [rbx*8]
call fcn.1400b0060
mov rcx, rdi
call fcn.1400b0290
mov rbx, qword [rsp + 0x30]
test rax, rax
jne 0x1400bd3d0
mov rcx, rdi
call fcn.1400b0290
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400bdce0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
mov eax, 0x30
call fcn.140187030
sub rsp, rax
xor edi, edi
mov qword [rsp + 0x40], rbp
movsxd rbx, r9d
mov r11, r8
mov dword [rsp + 0x58], reloc.WS2_32.dll_recv
mov rbp, rcx
mov r10d, edi
test r9d, r9d
jle 0x1400bde04
cmp ebx, 8
jb 0x1400bde04
lea rax, [rbx - 1]
lea rcx, [rax + rdx]
add rax, r8
cmp rdx, rax
ja 0x1400bdd39
cmp rcx, r8
jae 0x1400bde04
sub r8, rdx
cmp ebx, 0x40
jb 0x1400bddce
mov eax, ebx
mov qword [rsp + 0x48], rsi
and eax, 0xffffffc0
mov r9, 0xfffffffffffffff0
movsxd rsi, eax
sub r9, rdx
lea rcx, [rdx + 0x10]
movdqu xmm0, xmmword [rcx - 0x10]
add r10d, 0x40
movdqu xmm1, xmmword [rcx + r8 - 0x10]
lea rcx, [rcx + 0x40]
lea rax, [r9 + rcx]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + r8 - 0x40]
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm2, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rcx + r8 - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [rcx + r8 - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
cmp rax, rsi
jl 0x1400bdd60
mov rsi, qword [rsp + 0x48]
mov eax, ebx
and al, 0x3f
cmp al, 8
jb 0x1400bde04
mov ecx, ebx
and ecx, 0xfffffff8
movsxd rax, r10d
movsxd r9, ecx
lea rcx, [rax + rdx]
nop dword [rax]
movq xmm0, qword [rcx]
add r10d, 8
movq xmm1, qword [r8 + rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rcx, 8
mov rax, rcx
sub rax, rdx
cmp rax, r9
jl 0x1400bdde0
movsxd rcx, r10d
mov r8, rbx
cmp rcx, rbx
jge 0x1400bde31
sub r11, rdx
lea rax, [rcx + rdx]
sub r8, rcx
nop dword [rax]
movzx ecx, byte [r11 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r8, 1
jne 0x1400bde20
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0x58]
mov r9, rdx
mov dword [rsp + 0x20], ebx
call fcn.1400df410
mov rbp, qword [rsp + 0x40]
test eax, eax
je 0x1400bde64
cmp dword [rsp + 0x58], ebx
sete dil
mov eax, edi
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x50]
xor eax, eax
add rsp, 0x30
pop rdi
ret

Function at 0x1400bdff0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rdx
mov r10, rcx
test rdx, rdx
je 0x1400be06b
test r8, r8
je 0x1400be06b
mov r9, qword [rcx + 0x28]
cmp r8, r9
cmovb r9, r8
test r9, r9
je 0x1400be031
add rcx, 0x30
sub rdx, r10
nop word [rax + rax]
movzx eax, byte [rdx + rcx - 0x30]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x1400be020
mov rax, qword [r10 + 0x28]
cmp r8, rax
jbe 0x1400be06b
sub r8, rax
cmp r8, 0x10
jbe 0x1400be04b
mov r8d, reloc.WS2_32.dll_recv
jmp 0x1400be050
test r8, r8
je 0x1400be06b
xor ecx, ecx
mov rax, qword [r10 + 0x28]
add rax, rcx
movzx eax, byte [rax + r11]
xor byte [r10 + rcx + 0x50], al
inc rcx
cmp rcx, r8
jb 0x1400be052
ret
Function at 0x1400caec0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push r13
push r14
mov eax, 0x40
call fcn.140187030
sub rsp, rax
mov rsi, qword [rcx + 0x70]
mov rbx, r8
mov r8d, dword [rsi + 0x70]
lea r13, [rsi + 0x70]
mov qword [rsp + 0x38], r13
mov rbp, r9
mov r14, rdx
test r8d, r8d
je 0x1400caf46
test r9, r9
je 0x1400caf22
nop dword [rax]
cmp r8d, 0x40
jae 0x1400caf22
mov eax, r8d
inc r8d
movzx ecx, byte [rax + rsi + 0x30]
xor cl, byte [rbx]
inc rbx
mov byte [r14], cl
inc r14
sub rbp, 1
jne 0x1400caf00
mov dword [r13], r8d
test rbp, rbp
je 0x1400cb06a
cmp r8d, 0x40
jne 0x1400caf46
mov dword [r13], 0
add dword [rsi + 0x20], 1
jne 0x1400caf46
inc dword [rsi + 0x24]
mov eax, dword [rsi + 0x20]
lea rdx, [rsi + 0x20]
mov qword [rsp + 0x80], r12
mov r12d, ebp
and r12d, 0x3f
mov qword [rsp + 0x88], r15
mov r15d, r12d
sub rbp, r15
mov dword [rsp + 0x30], r12d
cmp rbp, 0x40
jb 0x1400cb005
mov qword [rsp + 0x78], rdi
lea r15, [rsi + 0x20]
mov r12d, 0x10000000
mov r13d, eax
nop dword [rax + rax]
mov rdx, rbp
mov qword [rsp + 0x20], r15
shr rdx, 6
mov r9, rsi
cmp rdx, r12
cmova rdx, r12
mov rdi, rdx
lea eax, [rdx + r13]
xor r13d, r13d
mov ecx, eax
cmp rcx, rdx
cmovae r13d, eax
sub rdi, rcx
cmp rcx, rdx
mov rcx, r14
cmovae rdi, rdx
mov rdx, rbx
shl rdi, 6
mov r8, rdi
call fcn.140035700
sub rbp, rdi
mov dword [r15], r13d
add rbx, rdi
add r14, rdi
test r13d, r13d
jne 0x1400cafe9
inc dword [rsi + 0x24]
cmp rbp, 0x40
jae 0x1400caf90
mov r12d, dword [rsp + 0x30]
lea rdx, [rsi + 0x20]
mov rdi, qword [rsp + 0x78]
mov r15d, r12d
mov r13, qword [rsp + 0x38]
test r12d, r12d
je 0x1400cb05a
lea rcx, [rsi + 0x30]
mov qword [rsp + 0x20], rdx
xorps xmm0, xmm0
mov r9, rsi
movups xmmword [rcx], xmm0
mov r8d, 0x40
mov rdx, rcx
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm0
call fcn.140035700
test r12d, r12d
je 0x1400cb056
sub rsi, rbx
sub r14, rbx
movzx eax, byte [rbx + rsi + 0x30]
xor al, byte [rbx]
mov byte [rbx + r14], al
lea rbx, [rbx + 1]
sub r15, 1
jne 0x1400cb041
mov dword [r13], r12d
mov r12, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
mov eax, 1
add rsp, 0x40
pop r14
pop r13
pop rsi
pop rbp
pop rbx
ret