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 [0x140361e80]
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, [0x140368f80]
call fcn.140082860
mov rcx, rax
call fcn.140082b10
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.1401855ec
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.1401855ec
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.140185590
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
call fcn.14018e414
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.140186310
sub rsp, rax
mov rax, qword [0x140361e80]
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, [0x140368f80]
call fcn.140082860
mov rcx, rax
call fcn.140082b10
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
xor r8d, r8d
lea rdx, [0x140347905]
mov rcx, rbx
call fcn.1400835f0
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, [0x140368f80]
call fcn.140082860
mov rcx, rax
call fcn.140082b10
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
xor r8d, r8d
lea rdx, [0x140347905]
mov rcx, rbx
call fcn.1400835f0
jmp 0x14007943e
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x140348740]
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.140081450
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.140185590
mov rbx, qword [rsp + 0x10a0]
add rsp, 0x1070
pop rdi
pop rsi
pop rbp
ret
call fcn.140185728
nop
int3
Function at 0x14007dac0
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 0x14007dae4
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 0x14007db72
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 0x14007db40
mov rax, qword [rsi]
movsxd rcx, dword [rax]
test ecx, ecx
jle 0x14007db40
cmp rdi, rcx
mov rbp, rdi
cmovge rbp, rcx
mov rcx, r14
mov r8, rbp
call fcn.1401ba640
mov rax, qword [rsi]
sub rdi, rbp
sub dword [rax], ebp
mov rcx, qword [rbx + 0x38]
movsxd rax, ebp
add qword [rcx], rax
jmp 0x14007db5d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x38]
cmp eax, 0xffffffff
je 0x14007db65
mov byte [r14], al
lea rsi, [rbx + 0x50]
dec rdi
mov ebp, 1
add r14, rbp
test rdi, rdi
jg 0x14007db01
mov rbp, qword [rsp + 0x68]
sub r15, rdi
jmp 0x14007dc50
mov rax, qword [rcx + 0x38]
mov rsi, r15
mov rdx, qword [rax]
test rdx, rdx
je 0x14007db89
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14007db8b
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14007dbbd
cmp rax, r15
mov rdi, r15
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call fcn.1401ba640
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 0x14007dc4d
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14007dbf8
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 0x14007dc2e
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call fcn.140195d94
add r14, rax
sub rsi, rax
cmp rax, 0xfff
jne 0x14007dc4d
cmp rsi, rax
ja 0x14007dc01
test rsi, rsi
je 0x14007dc4d
mov r9, qword [rbx + 0x80]
mov r8, rsi
mov edx, 1
mov rcx, r14
call fcn.140195d94
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 0x140084860
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x140084894
movabs r10, 0x100000001b3
nop
movzx ecx, byte [rdx + r9]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x140084880
ret
Function at 0x140089b30
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 0x140089bf5
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x140089bf5
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 0x140089c0e
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 0x140089be5
cmp byte [rcx], 0x5c
jne 0x140089bde
lea rdx, [rcx + 1]
cmp rdx, rax
je 0x140089bde
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x140089bcc
movzx eax, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140089bdb
test r8b, 0x10
jne 0x140089bde
movzx eax, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140089bde
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.140086610
test edi, edi
jne 0x140089b50
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.140086600
int3

Function at 0x14009c220
Capabilities:
Encode data using xor

Disassembly:
mov r9, r8
xor r11d, r11d
mov r10, rdx
mov r8d, r11d
cmp r9, 8
jb 0x14009c257
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 0x14009c240
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 0x14009c348
sub rcx, r10
cmp r9, 8
jb 0x14009c329
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 0x14009c2b0
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 0x14009c348
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 0x14009c330
test r8d, r8d
sete al
ret
Function at 0x14009c350
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
test r8, r8
je 0x14009c4b2
cmp r8, 4
jb 0x14009c392
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 0x14009c380
xor r10d, r10d
test r8, r8
je 0x14009c4b2
cmp r8, 8
jb 0x14009c494
lea r9, [rcx - 1]
lea rax, [rdx - 1]
add r9, r8
add rax, r8
cmp rcx, rax
ja 0x14009c3c4
cmp r9, rdx
jae 0x14009c494
cmp r8, 0x40
jb 0x14009c453
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 0x14009c3f0
mov rbx, qword [rsp]
cmp r9, 8
jb 0x14009c48f
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 0x14009c470
cmp r10, r8
jae 0x14009c4b2
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 0x14009c4a0
add rsp, 8
ret
Function at 0x1400a1650
Capabilities:
Encode data using xor

Disassembly:
push rdi
movsxd r11, r9d
mov r10, r8
mov rdi, rdx
cmp rdx, r8
je 0x1400a17c3
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 0x1400a176a
cmp r11d, 2
jb 0x1400a176a
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 0x1400a1703
cmp rbx, r8
jae 0x1400a176a
cmp r9, r10
ja 0x1400a170d
cmp rbx, r10
jae 0x1400a176a
cmp r9, rdi
ja 0x1400a1717
cmp rbx, rdi
jae 0x1400a176a
cmp r8, r10
ja 0x1400a1721
cmp rax, r10
jae 0x1400a176a
cmp r8, rdi
ja 0x1400a172b
cmp rax, rdi
jae 0x1400a176a
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 0x1400a1731
movsxd rax, edx
mov rsi, r11
cmp rax, r11
jge 0x1400a17b4
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 0x1400a1780
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
pop rdi
ret
Function at 0x1400a78f0
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x28
call fcn.140186310
sub rsp, rax
cmp dword [0x140367e70], 0
jne 0x1400a7a73
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, [0x140367e10]
mov rdx, rdi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x20], r14
mov dword [0x140367e70], 1
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x2e
ja 0x1400a7a35
movzx ebx, word [rdi]
xor ebp, ebp
cmp bx, 0x7e
mov ecx, ebp
mov r14d, 2
cmove ecx, r14d
add rcx, rdi
call fcn.1400a8050
mov rsi, rax
cmp bx, 0x7e
jne 0x1400a79b2
lea rcx, [0x14036a7a0]
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 0x1400a79c7
cmp word [rdi], 0x3a
jne 0x1400a79c7
lea rcx, [0x14036a7a0]
call fcn.140001030
mov rsi, rax
movzx eax, word [rdi]
test ax, ax
je 0x1400a79e1
nop
cmp ax, 0x3a
je 0x1400a79ea
add rdi, r14
movzx eax, word [rdi]
test ax, ax
jne 0x1400a79d0
mov qword [0x14036a7a8], rbp
jmp 0x1400a7a44
test rdi, rdi
je 0x1400a79e1
movzx ebx, word [rdi + 2]
lea rax, [rdi + 2]
cmp bx, 0x7e
cmove rbp, r14
lea rcx, [rax + rbp]
call fcn.1400a8050
mov rcx, rax
shr rcx, 0x20
cmp bx, 0x7e
jne 0x1400a7a27
not eax
not ecx
and dword [0x14036a7a8], eax
and dword [0x14036a7ac], ecx
jmp 0x1400a7a44
mov dword [0x14036a7a8], eax
mov dword [0x14036a7ac], ecx
jmp 0x1400a7a44
lea rcx, [0x14036a7a0]
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 [0x14036a7a4], esi
mov rsi, qword [rsp + 0x40]
mov dword [0x14036a7a0], eax
add rsp, 0x28
ret
Function at 0x1400a8320
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x28
call fcn.140186310
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 0x1400ab220
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
xor eax, eax
mov r10, rcx
test rcx, rcx
je 0x1400ab28c
movzx ecx, byte [rcx]
test cl, cl
je 0x1400ab28c
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 0x1400ab240
mov ecx, eax
shr ecx, 0x10
xor eax, ecx
ret

Function at 0x1400ab340
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.140186310
sub rsp, rax
xor ebx, ebx
mov rdi, rcx
test rcx, rcx
je 0x1400ab3d3
movzx eax, byte [rcx]
test al, al
je 0x1400ab3d3
mov qword [rsp + 0x30], rsi
mov esi, 0x100
nop
movsx ecx, al
call fcn.1400ab410
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 0x1400ab370
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 0x1400b4320
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0x28
call fcn.140186310
sub rsp, rax
lea rcx, [0x140368018]
add rsp, 0x28
jmp fcn.1400a8170

Function at 0x1400bc630
Capabilities:
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
mov eax, 0x20
call fcn.140186310
sub rsp, rax
mov edx, 1
mov rdi, rcx
call fcn.1400af460
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call fcn.1400af2a0
test rax, rax
je 0x1400bc6a8
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.1400af340
mov rcx, rdi
call fcn.1400af570
mov rbx, qword [rsp + 0x30]
test rax, rax
jne 0x1400bc6b0
mov rcx, rdi
call fcn.1400af570
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400bcfc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
mov eax, 0x30
call fcn.140186310
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 0x1400bd0e4
cmp ebx, 8
jb 0x1400bd0e4
lea rax, [rbx - 1]
lea rcx, [rax + rdx]
add rax, r8
cmp rdx, rax
ja 0x1400bd019
cmp rcx, r8
jae 0x1400bd0e4
sub r8, rdx
cmp ebx, 0x40
jb 0x1400bd0ae
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 0x1400bd040
mov rsi, qword [rsp + 0x48]
mov eax, ebx
and al, 0x3f
cmp al, 8
jb 0x1400bd0e4
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 0x1400bd0c0
movsxd rcx, r10d
mov r8, rbx
cmp rcx, rbx
jge 0x1400bd111
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 0x1400bd100
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0x58]
mov r9, rdx
mov dword [rsp + 0x20], ebx
call fcn.1400de6f0
mov rbp, qword [rsp + 0x40]
test eax, eax
je 0x1400bd144
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 0x1400bd2d0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rdx
mov r10, rcx
test rdx, rdx
je 0x1400bd34b
test r8, r8
je 0x1400bd34b
mov r9, qword [rcx + 0x28]
cmp r8, r9
cmovb r9, r8
test r9, r9
je 0x1400bd311
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 0x1400bd300
mov rax, qword [r10 + 0x28]
cmp r8, rax
jbe 0x1400bd34b
sub r8, rax
cmp r8, 0x10
jbe 0x1400bd32b
mov r8d, reloc.WS2_32.dll_recv
jmp 0x1400bd330
test r8, r8
je 0x1400bd34b
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 0x1400bd332
ret
Function at 0x1400ca1a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push r13
push r14
mov eax, 0x40
call fcn.140186310
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 0x1400ca226
test r9, r9
je 0x1400ca202
nop dword [rax]
cmp r8d, 0x40
jae 0x1400ca202
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 0x1400ca1e0
mov dword [r13], r8d
test rbp, rbp
je 0x1400ca34a
cmp r8d, 0x40
jne 0x1400ca226
mov dword [r13], 0
add dword [rsi + 0x20], 1
jne 0x1400ca226
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 0x1400ca2e5
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 0x1400ca2c9
inc dword [rsi + 0x24]
cmp rbp, 0x40
jae 0x1400ca270
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 0x1400ca33a
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 0x1400ca336
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 0x1400ca321
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