joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140020600
Capabilities:
Set socket configuration

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xb8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0xb0], rax
xor eax, eax
cmp word [rdx], 2
mov ebx, 0x29
cmove ebx, eax
mov dword [rsp + 0x28], r9d
lea r14, [rsp + 0x30]
mov rcx, rdx
xor edx, edx
call fcn.14001ed70
mov rcx, r14
mov rdx, rsi
mov r8, rax
call fcn.140266320
mov rcx, qword [rdi + 0xa0]
mov dword [rsp + 0x20], 0x88
lea r9, [rsp + 0x28]
mov edx, ebx
mov r8d, 0x2a
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
sete bl
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140262cb0
mov eax, ebx
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r14
ret

Function at 0x140020800
Capabilities:
Set socket configuration

Disassembly:
push rsi
push rdi
sub rsp, 0x48
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x40], rax
movzx ecx, word [rcx]
mov edx, 1
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_socket]
cmp rax, 0xffffffffffffffff
je 0x1400208ee
mov rdi, rax
mov dword [rsp + 0x3c], 0xa0001
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x3c]
mov rcx, rax
mov edx, 0xffff
mov r8d, 0x80
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x14002090c
mov ecx, 0xe8
call fcn.140262f30
mov rsi, rax
mov rcx, rax
mov rdx, rdi
call fcn.14000df50
mov qword [rsi + 0xa0], rdi
mov qword [rsi + 0xa8], 0
mov dword [rsi + 0xb0], reloc.WS2_32.dll_recv
mov qword [rsi + 0xb8], 0
mov byte [rsi + 0xc0], 1
lea rax, [0x1402a3d10]
mov qword [rsi], rax
lea rax, [0x1402a3d70]
mov qword [rsi + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rsi + 0xc8], xmm0
mov word [rsi + 0xd8], 0
mov qword [rsi + 0xe0], 0
mov rcx, rsi
call fcn.14000f800
mov dword [rsi + 0x50], 3
jmp 0x1400208f5
mov rsi, 0xffffffffffffffff
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140262cb0
mov rax, rsi
add rsp, 0x48
pop rdi
pop rsi
ret
lea rax, str..._.._runtime_bin_socket_win.cc
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], reloc.WS2_32.dll_gethostname
lea rdx, str.Failed_setting_SO_LINGER_on_socket
lea rcx, [rsp + 0x28]
call fcn.140023df0
int3
Function at 0x140020b90
Capabilities:
Create udp socket
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov ebp, r9d
mov r14d, r8d
mov r15d, edx
mov rbx, rcx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x30], rax
movzx ecx, word [rcx]
mov edx, 2
mov r8d, send
call qword [sym.imp.WS2_32.dll_socket]
mov rdi, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x140020d38
mov rsi, rax
test r15b, r15b
je 0x140020c16
mov dword [rsp + 0x2c], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x2c]
mov rcx, rsi
mov edx, 0xffff
mov r8d, 4
call qword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x140020d1f
test r14b, r14b
je 0x140020c34
lea rcx, str.Dart_Socket_ERROR:__s:_d:__reusePort__not_supported_for_Windows.
lea rdx, str..._.._runtime_bin_socket_win.cc
mov r8d, 0xc2
call fcn.140001240
mov dword [rsp + 0x2c], ebp
xor eax, eax
cmp word [rbx], 2
mov edx, 0x29
cmove edx, eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x2c]
mov rcx, rsi
mov r8d, 0xa
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x140020c8b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdi, 0xffffffffffffffff
jmp 0x140020d38
mov rcx, rbx
xor edx, edx
call fcn.14001ed70
mov rcx, rsi
mov rdx, rbx
mov r8d, eax
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x140020c66
mov ecx, 0xc8
call fcn.140262f30
mov rdi, rax
mov rcx, rax
mov rdx, rsi
call fcn.14000df50
mov qword [rdi + 0xa0], rsi
mov qword [rdi + 0xa8], 0
mov dword [rdi + 0xb0], reloc.WS2_32.dll_recv
mov qword [rdi + 0xb8], 0
mov byte [rdi + 0xc0], 1
lea rax, [0x1402a5310]
mov qword [rdi], rax
lea rax, [0x1402a5370]
mov qword [rdi + 0x10], rax
mov dword [rdi + 0x50], 5
call fcn.14000ddc0
mov r8, qword [rdi]
mov rcx, rdi
mov rdx, rax
call qword [r8 + gethostname]
jmp 0x140020d38
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140262cb0
mov rax, rdi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
Function at 0x140020d60
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
mov ebx, r8d
mov rdi, rdx
mov r14, rcx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x38], rax
movzx ecx, word [rcx]
mov edx, 1
mov r8d, 6
call qword [sym.imp.WS2_32.dll_socket]
cmp rax, 0xffffffffffffffff
je 0x140020f47
mov rsi, rax
mov dword [rsp + 0x34], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov rcx, rax
mov edx, 0xffff
mov r8d, 0xfffffffb
call qword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x140020f2e
cmp word [r14], 0x17
jne 0x140020e05
movzx eax, bl
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov rcx, rsi
mov edx, 0x29
mov r8d, 0x1b
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rcx, r14
xor edx, edx
call fcn.14001ed70
mov rcx, rsi
mov rdx, r14
mov r8d, eax
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x140020f2e
mov ecx, 0x100
call fcn.140262f30
mov r15, rax
mov rcx, rax
mov rdx, rsi
call fcn.14000df50
mov qword [r15 + 0xa0], rsi
lea rax, method.icu_68::LanguageBreakEngine.virtual_0
mov qword [r15], rax
lea rax, method.icu_68::LanguageBreakEngine.virtual_0
mov qword [r15 + 0x10], rax
mov qword [r15 + 0xa8], 0
lea rcx, [r15 + 0xb0]
lea rdx, [method.icu_68::SimpleFilteredSentenceBreakIterator.virtual_16]
mov r8d, 4
call fcn.140023fd0
mov byte [r15 + 0xc8], 1
lea rax, [0x1402a53c0]
mov qword [r15], rax
lea rax, [0x1402a5420]
mov qword [r15 + 0x10], rax
xorps xmm0, xmm0
movups xmmword [r15 + 0xd0], xmm0
mov dword [r15 + 0xe0], 0
movups xmmword [r15 + 0xe8], xmm0
mov dword [r15 + 0xf8], 0
mov dword [r15 + 0x50], 4
mov rcx, r14
call fcn.14001f0e0
test rax, rax
jne 0x140020f6a
mov rcx, r15
call fcn.14001f820
cmp rax, 0xffff
jne 0x140020f6a
mov rcx, r14
mov rdx, rdi
mov r8d, ebx
call fcn.140020d60
mov rdi, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
lock dec qword [r15 + 8]
jne 0x140020f24
mov rax, qword [r15]
mov rcx, r15
mov edx, 1
call qword [rax]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140020f4e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdi, 0xffffffffffffffff
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140262cb0
mov rax, rdi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
test rdi, rdi
mov edx, 0x7fffffff
cmovg edx, edi
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x140020f88
mov rdi, r15
jmp 0x140020f4e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
lock dec qword [r15 + 8]
jne 0x140020f3f
mov rax, qword [r15]
mov rcx, r15
mov edx, 1
call qword [rax]
jmp 0x140020f3f
Function at 0x140021f10
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0x40
mov rsi, rdx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x37]
lea r9, [rsp + 0x30]
mov rcx, rax
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140021f6b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
jne 0x140021f97
cmp dword [rsp + 0x30], 1
movzx eax, byte [rsp + 0x37]
mov ecx, 0xffffffff
cmove ecx, eax
mov dword [rsi], ecx
mov sil, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140262cb0
mov eax, esi
add rsp, 0x40
pop rsi
ret
xor esi, esi
jmp 0x140021f82

Function at 0x1400233b0
Capabilities:
Connect socket

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov rdi, rcx
movzx ecx, word [rcx]
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov rsi, rax
test rax, rax
js 0x14002340c
mov rcx, rdi
xor edx, edx
call fcn.14001ed70
mov rcx, rsi
mov rdx, rdi
mov r8d, eax
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
mov rax, 0xffffffffffffffff
cmove rsi, rax
mov rax, rsi
add rsp, 0x38
pop rdi
pop rsi
ret

Function at 0x140023420
Capabilities:
Set socket configuration

Disassembly:
push rsi
sub rsp, 0x30
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x24]
mov edx, 0x4004667f
call qword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
mov eax, dword [rsp + 0x24]
mov rsi, 0xffffffffffffffff
cmovne rsi, rax
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140262cb0
mov rax, rsi
add rsp, 0x30
pop rsi
ret

Function at 0x140023470
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rsi
sub rsp, 0xb0
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0x24], 0x80
lea rdx, [rsp + 0x28]
lea r8, [rsp + 0x24]
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1400234b6
lea rcx, [rsp + 0x28]
call fcn.14001f0e0
mov rsi, rax
jmp 0x1400234b8
xor esi, esi
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140262cb0
mov rax, rsi
add rsp, 0xb0
pop rsi
ret

Function at 0x140023570
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub rsp, 0x28
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
cdqe
add rsp, 0x28
ret

Function at 0x140023590
Capabilities:
Send data
Send data on socket

Disassembly:
sub rsp, 0x28
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
cdqe
add rsp, 0x28
ret
Function at 0x140024d20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x18
xor r10d, r10d
test rdx, rdx
setg al
jle 0x140024ef7
test r9, r9
jle 0x140024ef7
xor r10d, r10d
lea r11, [0x1402a78c0]
lea rsi, [0x1402a79c0]
lea rdi, [0x1402a79e0]
xor r14d, r14d
mov qword [rsp], r8
nop word [rax + rax]
movzx ebp, byte [rcx + r14]
test bpl, bpl
js 0x140024d90
mov r15d, 1
jmp 0x140024ec5
mov eax, ebp
movsx r15, byte [rax + r11]
add rax, 0xffffffffffffff40
cmp rax, 0x3d
ja 0x140024e9d
mov rax, rdx
sub rax, r14
cmp rax, 2
mov r11d, 1
cmovl rax, r11
dec rax
cmp r15, 3
mov r12d, 2
cmovge r12, r15
lea rsi, [r12 - 2]
cmp rax, rsi
jbe 0x140024f12
lea rax, [rcx + r14]
lea r8, [r12 - 1]
test rsi, rsi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r8
je 0x140024ee2
lea rdi, [rax + 1]
mov rsi, r8
and rsi, 0xfffffffffffffffe
neg rsi
mov ebx, 1
xor r13d, r13d
nop dword [rax]
movzx eax, byte [rdi + rbx - 1]
mov r11d, eax
and r11b, 0xc0
cmp r11b, 0x80
setne r11b
or r11b, r13b
movzx r8d, byte [rdi + rbx]
mov r13d, r8d
and r13b, 0xc0
cmp r13b, 0x80
setne r13b
or r13b, r11b
shl ebp, 0xc
shl eax, 6
add ebp, r8d
add ebp, eax
lea rax, [rsi + rbx]
add rax, 2
add rbx, 2
cmp rax, 1
jne 0x140024e10
test byte [rsp + 0x10], 1
je 0x140024e82
mov rax, qword [rsp + 8]
movzx eax, byte [rax + rbx]
mov r8d, eax
and r8b, 0xc0
cmp r8b, 0x80
setne r8b
or r13b, r8b
shl ebp, 6
add ebp, eax
mov r8, qword [rsp]
lea r11, [0x1402a78c0]
lea rsi, [0x1402a79c0]
lea rdi, [0x1402a79e0]
jmp 0x140024ea6
mov r12d, 1
xor r13d, r13d
xor eax, eax
cmp r12, r15
jne 0x140024f01
test r13b, 1
jne 0x140024f01
sub ebp, dword [rsi + r15*4]
cmp ebp, 0x10ffff
ja 0x140024f01
cmp dword [rdi + r15*4], ebp
ja 0x140024f12
mov byte [r8 + r10], bpl
add r14, r15
inc r10
cmp r14, rdx
setl al
jge 0x140024ef7
cmp r10, r9
jl 0x140024d70
jmp 0x140024ef7
mov ebx, 1
xor r13d, r13d
test byte [rsp + 0x10], 1
jne 0x140024e62
jmp 0x140024e82
cmp r10, r9
setne cl
xor al, 1
or al, cl
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x140024f01
Function at 0x140024f20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
xor r10d, r10d
test rdx, rdx
setg al
jle 0x14002513c
test r9, r9
jle 0x14002513c
lea rax, [r9 - 1]
mov qword [rsp + 0x10], rax
xor esi, esi
lea r11, [0x1402a78c0]
lea rdi, [0x1402a79c0]
lea r14, [0x1402a79e0]
xor r10d, r10d
mov qword [rsp + 8], r9
mov qword [rsp], r8
nop word cs:[rax + rax]
movzx r13d, byte [rcx + rsi]
test r13b, r13b
js 0x140024fa0
mov r12d, 1
mov ebp, r13d
jmp 0x140025120
movsx r12, byte [r13 + r11]
mov rax, r13
add rax, 0xffffffffffffff40
cmp rax, 0x3d
ja 0x14002506e
mov rax, rdx
sub rax, rsi
cmp rax, 2
mov r11d, 1
cmovl rax, r11
dec rax
cmp r12, 3
mov ebx, 2
cmovge rbx, r12
lea r11, [rbx - 2]
cmp rax, r11
jbe 0x140025157
lea rax, [rcx + rsi]
lea r14, [rbx - 1]
test r11, r11
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], r14
je 0x14002507b
lea r11, [rax + 1]
and r14, 0xfffffffffffffffe
neg r14
mov edi, 1
xor r15d, r15d
mov ebp, r13d
nop word [rax + rax]
movzx eax, byte [r11 + rdi - 1]
mov r8d, eax
and r8b, 0xc0
cmp r8b, 0x80
setne r8b
or r8b, r15b
movzx r9d, byte [r11 + rdi]
mov r15d, r9d
and r15b, 0xc0
cmp r15b, 0x80
setne r15b
or r15b, r8b
shl ebp, 0xc
shl eax, 6
add ebp, r9d
add ebp, eax
lea rax, [r14 + rdi]
add rax, 2
add rdi, 2
cmp rax, 1
jne 0x140025020
jmp 0x140025086
mov ebx, 1
xor r15d, r15d
mov ebp, r13d
jmp 0x1400250cb
mov edi, 1
xor r15d, r15d
mov ebp, r13d
test byte [rsp + 0x20], 1
lea r14, [0x1402a79e0]
je 0x1400250b4
mov rax, qword [rsp + 0x18]
movzx eax, byte [rax + rdi]
mov r8d, eax
and r8b, 0xc0
cmp r8b, 0x80
setne r8b
or r15b, r8b
shl ebp, 6
add ebp, eax
mov r9, qword [rsp + 8]
mov r8, qword [rsp]
lea r11, [0x1402a78c0]
lea rdi, [0x1402a79c0]
xor eax, eax
cmp rbx, r12
jne 0x140025146
test r15b, 1
jne 0x140025146
sub ebp, dword [rdi + r12*4]
cmp ebp, 0x10ffff
ja 0x140025146
cmp dword [r14 + r12*4], ebp
ja 0x140025157
cmp r13b, 0xf0
jb 0x140025120
cmp r10, qword [rsp + 0x10]
je 0x140025157
mov eax, ebp
shr eax, 0xa
add eax, 0xffffd7c0
mov word [r8 + r10*2], ax
and ebp, 0x3ff
or ebp, 0xdc00
mov word [r8 + r10*2 + 2], bp
inc r10
jmp 0x140025125
mov word [r8 + r10*2], bp
add rsi, r12
inc r10
cmp rsi, rdx
setl al
jge 0x14002513c
cmp r10, r9
jl 0x140024f80
cmp r10, r9
setne cl
xor al, 1
or al, cl
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x140025146

Function at 0x1400258a0
Capabilities:
Read file on windows

Disassembly:
sub rsp, 0x28
call fcn.140278d0c
cdqe
add rsp, 0x28
ret
mov rax, qword [rcx + 0x10]
mov ecx, dword [rax]
jmp 0x1400258a0

Function at 0x140026880
Capabilities:
Get system information on windows

Disassembly:
push rsi
sub rsp, 0x60
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov esi, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140262cb0
mov rax, rsi
add rsp, 0x60
pop rsi
ret
Function at 0x1400268c0
Capabilities:
Allocate or change rwx memory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
test dl, dl
mov eax, 0x40
mov r9d, 4
cmovne r9d, eax
xor edi, edi
xor ecx, ecx
mov rdx, rsi
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x14002690a
mov rbx, rax
mov ecx, reloc.WS2_32.dll_recv
call fcn.140262f30
mov rdi, rax
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov rax, rdi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
Function at 0x1400368d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov r11, qword [rsp + 0x68]
inc r11
xor eax, eax
cmp r11, r9
ja 0x1400369de
lea rax, [r9 - 1]
movzx eax, byte [r8 + rax]
add r11, rax
mov r10, r9
sub r10, r11
xor r11, r9
xor r10, r9
or r10, r11
xor r10, r9
not r10
sar r10, 0x3f
cmp r9, 0x100
mov esi, 0x100
cmovb rsi, r9
mov r11, r9
sub r11, 1
jb 0x1400369b7
jne 0x140036936
xor edi, edi
jmp 0x14003698e
mov ebx, esi
and ebx, 0x1fe
lea r14, [r8 + r11]
xor edi, edi
mov r15, 0xffffffffffffffff
mov r12, r10
nop
movzx r10d, byte [r14]
xor r10b, al
movzx r13d, r10b
not r13
movzx r10d, byte [r14 - 1]
xor r10b, al
cmp rdi, rax
cmova r13, r15
movzx r10d, r10b
not r10
cmovae r10, r15
and r10, r12
and r10, r13
add rdi, 2
add r14, 0xfffffffffffffffe
mov r12, r10
cmp rbx, rdi
jne 0x140036950
test sil, 1
je 0x1400369b7
sub r11, rdi
movzx r8d, byte [r8 + r11]
xor r8b, al
cmp rdi, rax
movzx r8d, r8b
not r8
mov r11, 0xffffffffffffffff
cmovbe r11, r8
and r10, r11
xor r8d, r8d
cmp r10b, 0xff
sete r8b
mov r10, r8
neg r10
inc eax
neg r8d
and r8d, eax
sub r9, r8
mov qword [rdx], r9
mov qword [rcx], r10
mov eax, 1
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1400369f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rbx, r9
mov rdi, r8
mov rsi, rdx
mov qword [rsp + 0x28], rcx
mov r12, qword [rsp + 0x120]
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0xb0], rax
lea r14, [rdx + 0x100]
xor r15d, r15d
mov rax, r12
sub rax, r14
cmovae r15, rax
test rdx, rdx
je 0x140036a53
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8, rsi
call fcn.140266160
cmp r15, r12
jae 0x140036bfd
mov rcx, rbx
sub rcx, rsi
cmp r12, r14
cmovb r14, r12
mov r8, rbx
neg r8
xor eax, eax
xor r9d, r9d
xor r10d, r10d
nop word [rax + rax]
cmp r9, rsi
mov r11d, 0
cmovae r11, rsi
mov r12, r9
mov r13, r15
xor r13, rcx
mov rbp, r13
not rbp
dec r13
and r13, rbp
sar r13, 0x3f
movzx r10d, r10b
or r10, r13
mov rbp, r15
xor rbp, rbx
mov rdx, rbx
lea rbx, [r8 + r15]
xor rbx, r15
or rbx, rbp
xor rbx, r15
sar rbx, 0x3f
and ebx, r10d
and bl, byte [rdi + r15]
sub r12, r11
or byte [rsp + r12 + 0x70], bl
mov rbx, rdx
and r13, r12
or rax, r13
inc r15
neg r11
add r9, r11
inc r9
dec r14
jne 0x140036a80
cmp rsi, 2
jb 0x140036c09
mov r8, rsi
and r8, 0xfffffffffffffffe
mov r9d, 1
lea r10, [rsp + 0x30]
lea r11, [rsp + 0x70]
jmp 0x140036b32
add r9, r9
shr rax, 1
mov r11, rdx
cmp r9, rsi
jae 0x140036c13
mov rdx, r10
mov r10, r11
mov r11d, eax
and r11d, 1
dec r11d
movzx r11d, r11b
mov ebx, r11d
not bl
mov r14, r9
xor edi, edi
jmp 0x140036b88
sub r14, r15
movzx ebp, byte [r10 + rdi + 1]
and bpl, r11b
movzx r15d, byte [r10 + r14]
and r15b, bl
or r15b, bpl
mov byte [rdx + rdi + 1], r15b
add rdi, 2
inc r14
cmp r8, rdi
je 0x140036bd0
mov r15d, 0
cmp r14, rsi
jb 0x140036b96
mov r15, rsi
mov r12, r14
sub r12, r15
movzx ebp, byte [r10 + rdi]
and bpl, r11b
movzx r12d, byte [r10 + r12]
and r12b, bl
or r12b, bpl
mov byte [rdx + rdi], r12b
neg r15
add r14, r15
inc r14
mov r15d, 0
cmp r14, rsi
jb 0x140036b60
mov r15, rsi
jmp 0x140036b60
test sil, 1
je 0x140036b20
cmp r14, rsi
mov r15d, 0
cmovae r15, rsi
sub r14, r15
and r11b, byte [r10 + rdi]
and bl, byte [r10 + r14]
or bl, r11b
mov byte [rdx + rdi], bl
jmp 0x140036b20
xor eax, eax
cmp rsi, 2
jae 0x140036afa
test rsi, rsi
je 0x140036c20
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
mov r8, rsi
call fcn.140266320
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140262cb0
nop
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x14003e0a0
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1a8
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
lea r14, [rsp + 0xc0]
mov edx, 0x20
mov rcx, r8
mov r8, r14
call fcn.140069110
and byte [rsp + 0xc0], 0xf8
movzx eax, byte [rsp + 0xdf]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0xdf], al
lea r8, [0x1402ae2c0]
lea r15, [rsp + 0x20]
mov rcx, r15
mov rdx, r14
call fcn.14003c5a0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x170], rax
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x160], xmm1
movaps xmmword [rsp + 0x150], xmm0
lea r14, [rsp + 0x128]
lea rdx, [rsp + 0x150]
mov rcx, r14
call fcn.140043110
lea r12, [rsp + 0x150]
mov rcx, r12
mov rdx, r15
mov r8, r14
call fcn.140045b60
lea rdx, [rsp + 0x48]
lea r15, [rsp + 0x100]
mov rcx, r15
mov r8, r14
call fcn.140045b60
mov rcx, rdi
mov rdx, r15
call fcn.1400387a0
lea rcx, [rsp + 0x180]
mov rdx, r12
call fcn.1400387a0
movzx eax, byte [rsp + 0x180]
shl al, 7
xor byte [rdi + 0x1f], al
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x30], xmm1
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.140262cb0
nop
add rsp, 0x1a8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x140041ac0
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov qword [rsp + 0x20], rcx
mov rax, qword [0x1403a6f68]
xor rax, rsp
mov qword [rsp + 0x160], rax
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x140], xmm0
movaps xmmword [rsp + 0x150], xmm1
and byte [rsp + 0x140], 0xf8
movzx eax, byte [rsp + 0x15f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x15f], al
lea r8, [0x1402ae2c0]
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x140]
call fcn.14003c5a0
mov rax, qword [rsp + 0xf0]
mov r11, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
lea rdi, [r11 + rax]
mov rcx, qword [rsp + 0xf8]
lea rbx, [rsi + rcx]
mov rdx, qword [rsp + 0x100]
mov r14, qword [rsp + 0xd8]
lea r15, [r14 + rdx]
mov r8, qword [rsp + 0x108]
mov r12, qword [rsp + 0xe0]
lea r13, [r12 + r8]
mov r9, qword [rsp + 0x110]
mov rbp, qword [rsp + 0xe8]
lea r10, [rbp + r9]
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x98], r10
movabs r10, 0xffffffffffffe
add rax, r10
sub rax, r11
add rax, 0xffffffffffffffdc
add rcx, r10
sub rcx, rsi
add rdx, r10
sub rdx, r14
add r8, r10
sub r8, r12
add r9, r10
sub r9, rbp
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], r9
lea rdi, [rsp + 0x28]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140043110
lea rdx, [rsp + 0x78]
mov rcx, rdi
mov r8, rdi
call fcn.140045b60
mov rcx, qword [rsp + 0x20]
mov rdx, rdi
call fcn.1400387a0
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140262cb0
nop
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret