joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14007e460
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, dword [r8 + 0x180]
mov r10, rcx
mov ecx, 0x3020100
mov rbx, r8
mov dword [r8 + 0x188], ecx
mov r9d, 1
mov eax, r9d
add ecx, 0x4040404
inc r9d
mov dword [r8 + rax*4 + 0x188], ecx
cmp r9d, r11d
jbe 0x14007e484
xor r8d, r8d
test edx, edx
je 0x14007e4e2
mov r9d, edx
movzx ecx, byte [r10]
mov eax, ecx
or r8d, ecx
movzx edx, byte [rcx + rbx + 0x188]
mov byte [r10], dl
mov byte [rbx + 0x187], dl
movzx ecx, byte [rax + rbx + 0x187]
mov rdx, rax
sub rax, 1
mov byte [rdx + rbx + 0x188], cl
jns 0x14007e4c1
inc r10
sub r9, 1
jne 0x14007e4a7
shr r8d, 2
mov dword [rbx + 0x180], r8d
mov rbx, qword [rsp + 8]
ret

Function at 0x140085920
Capabilities:
Enumerate pe sections

Disassembly:
mov r11, rcx
cmp r8, 0x20
jb 0x140085ad0
mov r10d, dword [rcx + 0x1c]
movzx edx, byte [r9]
inc edx
movzx eax, byte [r9 + 1]
imul edx, r10d
inc eax
movzx r8d, byte [r9 + 2]
movzx ecx, byte [r9 + 3]
inc r8d
inc ecx
add edx, eax
imul edx, r10d
add r8d, edx
movzx edx, byte [r9 + 4]
inc edx
imul r8d, r10d
add ecx, r8d
imul ecx, r10d
add edx, ecx
movzx ecx, byte [r9 + 5]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 6]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 7]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 8]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 9]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xa]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xb]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xc]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xd]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xe]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xf]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x10]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x11]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x12]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x13]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x14]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x15]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x16]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x17]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x18]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x19]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1a]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1b]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1c]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1d]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1e]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1f]
imul edx, r10d
inc ecx
add ecx, edx
mov dword [r11], ecx
ret

Function at 0x140088200
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
call qword [case.0x140072e51.0]
test rax, rax
je 0x14008821b
add rsp, 0x28
ret
mov ecx, 1
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
int3
Function at 0x1400c38f0
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x1400c3900
mov r9d, ecx
mov r10, rdx
shr r9d, 0x10
movzx ecx, cx
cmp r8, 1
jne 0x1400c3944
movzx edx, byte [rdx]
add edx, ecx
cmp edx, 0xfff1
lea r8d, [rdx - 0xfff1]
cmovb r8d, edx
lea eax, [r8 + r9]
cmp eax, 0xfff1
lea ecx, [rax - 0xfff1]
cmovb ecx, eax
shl ecx, 0x10
or ecx, r8d
mov eax, ecx
ret
test rdx, rdx
jne 0x1400c394d
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x1400c399c
test r8, r8
je 0x1400c3973
nop dword [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x1400c3960
cmp ecx, 0xfff1
lea r8d, [rcx - 0xfff1]
mov eax, 0x80078071
cmovb r8d, ecx
mul r9d
shr edx, 0xf
imul eax, edx, 0xf
add eax, r9d
shl eax, 0x10
or eax, r8d
ret
cmp r8, 0x15b0
jb 0x1400c3a77
mov r11, r8
movabs rax, 0x79baa6bb6398b6f7
mul r8
sub r11, rdx
shr r11, 1
add r11, rdx
shr r11, 0xc
imul rax, r11, 0xffffffffffffea50
add r8, rax
mov edx, 0x2b6
nop word [rax + rax]
movzx eax, byte [r10]
add ecx, eax
movzx eax, byte [r10 + 1]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 7]
add r9d, ecx
add r10, 8
add ecx, eax
add r9d, ecx
add edx, 0xffffffff
jne 0x1400c39e0
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
sub r11, 1
jne 0x1400c39d0
test r8, r8
je 0x1400c3b29
cmp r8, 8
jb 0x1400c3af0
mov rdx, r8
shr rdx, 3
imul rax, rdx, 0xfffffffffffffff8
add r8, rax
nop word [rax + rax]
movzx eax, byte [r10]
add ecx, eax
movzx eax, byte [r10 + 1]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 7]
add r9d, ecx
add r10, 8
add ecx, eax
add r9d, ecx
sub rdx, 1
jne 0x1400c3a90
test r8, r8
je 0x1400c3b03
nop
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x1400c3af0
mov eax, 0x80078071
mul ecx
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
mul r9d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret

Function at 0x1400c5d70
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test rax, rax
je 0x1400c5dba
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400c5dba
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400c5dba
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400c5dba
cmp dword [rcx + 0x84], 0xe
jbe 0x1400c5dba
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400c5dbc
xor al, al
add rsp, 0x28
ret
Function at 0x1400ee160
Capabilities:
Connect pipe

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0xa0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov rbx, rdx
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.14042dc80
mov rcx, qword [rbp - 0x48]
mov rsi, qword [rcx + 8]
xor ecx, ecx
call sub.KERNEL32.DLL_SetLastError
mov rcx, rsi
mov qword [rbp - 0x50], rcx
mov rdx, rbx
mov qword [rbp - 0x58], rdx
lea rcx, [rbp - 0x80]
call fcn.140012c00
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x58]
call sub.KERNEL32.DLL_ConnectNamedPipe
mov ebx, eax
lea rcx, [rbp - 0x80]
call fcn.140012c50
call sub.KERNEL32.DLL_GetLastError
mov esi, eax
test ebx, ebx
setne bl
movzx ebx, bl
cmp byte [rbp - 0x40], 0
je 0x1400ee1f7
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.14042dcc0
call fcn.140005803
mov dword [rax + 0x120], esi
movzx eax, bl
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x1400ee250
Capabilities:
Connect pipe

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0xa0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov rbx, rdx
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.14042dc80
mov rcx, qword [rbp - 0x48]
mov rsi, qword [rcx + 8]
xor ecx, ecx
call sub.KERNEL32.DLL_SetLastError
mov rcx, rsi
mov qword [rbp - 0x50], rcx
mov rdx, rbx
mov qword [rbp - 0x58], rdx
lea rcx, [rbp - 0x80]
call fcn.140012c00
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x58]
call sub.KERNEL32.DLL_ConnectNamedPipe
mov ebx, eax
lea rcx, [rbp - 0x80]
call fcn.140012c50
call sub.KERNEL32.DLL_GetLastError
mov esi, eax
test ebx, ebx
setne bl
movzx ebx, bl
cmp byte [rbp - 0x40], 0
je 0x1400ee2e7
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.14042dcc0
call fcn.140005803
mov dword [rax + 0x120], esi
movzx eax, bl
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x1400ee910
Capabilities:
Create pipe

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0xe0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], rax
mov rbx, rcx
mov esi, edx
mov edi, r8d
mov r14d, r9d
mov r15, qword [rbp + 0x48]
xor ecx, ecx
mov dword [rbp - 0x3c], ecx
mov byte [rbp - 0x54], 0
lea rcx, [0x1409809b0]
call fcn.140838350
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x48], r15
test rbx, rbx
je 0x1400ee96c
add rbx, 0xc
jmp 0x1400ee96e
xor ebx, ebx
mov qword [rbp - 0x50], rbx
xor ecx, ecx
call sub.KERNEL32.DLL_SetLastError
mov r13d, dword [rbp + 0x30]
mov dword [rsp + 0x20], r13d
mov r13d, dword [rbp + 0x38]
mov dword [rsp + 0x28], r13d
mov r13d, dword [rbp + 0x40]
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x38], r15
mov rcx, rbx
mov qword [rbp - 0x74], rcx
mov edx, esi
mov dword [rbp - 0x64], edx
mov r8d, edi
mov dword [rbp - 0x68], r8d
mov r9d, r14d
mov dword [rbp - 0x6c], r9d
lea rcx, [rbp - 0xa0]
call fcn.140012c00
mov rcx, qword [rbp - 0x74]
mov edx, dword [rbp - 0x64]
mov r8d, dword [rbp - 0x68]
mov r9d, dword [rbp - 0x6c]
call sub.KERNEL32.DLL_CreateNamedPipeW
mov rbx, rax
lea rcx, [rbp - 0xa0]
call fcn.140012c50
call sub.KERNEL32.DLL_GetLastError
mov esi, eax
xor eax, eax
mov qword [rbp - 0x50], rax
xor eax, eax
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x3c], 1
mov byte [rbp - 0x54], 1
mov rax, qword [rbp - 0x60]
mov qword [rax + 8], rbx
mov rbx, rax
call fcn.140005803
mov dword [rax + 0x120], esi
mov rax, rbx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x14031f0a0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0xd0]
xorps xmm4, xmm4
movaps xmmword [rbp - 0x50], xmm4
xor eax, eax
mov qword [rbp - 0x40], rax
mov rbx, rdx
mov rsi, r8
mov rdi, r9
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.14042dc80
nop
test rbx, rbx
je 0x14031f0f6
add rbx, 0xc
mov rdx, rbx
jmp 0x14031f0f8
xor edx, edx
mov qword [rbp - 0x50], rdx
mov rcx, qword [rbp - 0x48]
mov rbx, qword [rbp + 0x30]
mov qword [rsp + 0x20], rbx
mov rbx, qword [rbp + 0x38]
mov qword [rsp + 0x28], rbx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x60], rdx
mov r8, rsi
mov qword [rbp - 0x68], r8
mov r9, rdi
mov qword [rbp - 0x70], r9
lea rcx, [rbp - 0x98]
call fcn.140012c00
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
mov r8, qword [rbp - 0x68]
mov r9, qword [rbp - 0x70]
call sub.ADVAPI32.dll_RegQueryValueExW
mov ebx, eax
lea rcx, [rbp - 0x98]
call fcn.140012c50
nop
xor ecx, ecx
mov qword [rbp - 0x50], rcx
cmp byte [rbp - 0x40], 0
je 0x14031f175
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.14042dcc0
mov eax, ebx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x140373840
Capabilities:
Generate random numbers via winapi

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0xa0]
mov r8d, edx
mov dword [rbp - 0x3c], r8d
mov rdx, rcx
mov qword [rbp - 0x48], rdx
xor ecx, ecx
mov qword [rbp - 0x50], rcx
mov r9d, 2
mov dword [rbp - 0x40], r9d
lea rcx, [rbp - 0x78]
call fcn.140012c00
mov r8d, dword [rbp - 0x3c]
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov r9d, dword [rbp - 0x40]
call sub.bcrypt.dll_BCryptGenRandom
mov ebx, eax
lea rcx, [rbp - 0x78]
call fcn.140012c50
test ebx, ebx
jne 0x1403738b4
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp ebx, 0xc0000017
jne 0x1403738db
lea rcx, [0x140a2ac78]
call fcn.140012770
mov rbx, rax
mov rcx, rbx
call fcn.1403afed0
mov rcx, rbx
call fcn.140013240
lea rcx, [0x140a2a028]
call fcn.140012770
mov rbx, rax
mov rcx, rbx
call fcn.1403a8550
mov rcx, rbx
call fcn.140013240
int3
Function at 0x140373d40
Capabilities:
Inspect section memory permissions

Disassembly:
push rbp
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x50]
mov rbx, rcx
mov eax, dword [rbx + 0x38]
cmp eax, 0xffffffff
je 0x140373d5d
add rsp, 0x48
pop rbx
pop rbp
ret
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
lea r8, [rbp - 0x10]
lea rdx, [rbp - 0x20]
mov rcx, rbx
mov r9d, 4
call fcn.140455a50
mov ecx, eax
test ecx, ecx
jne 0x140373dea
xor eax, eax
mov ecx, 0x40000000
test byte [rbp - 0x10], 0x30
cmove eax, ecx
mov ecx, eax
or ecx, 0x80000000
test byte [rbp - 0x10], 2
cmovne eax, ecx
mov ecx, eax
or ecx, 0x10000000
test dword [rbp - 0x10], 0x800
cmovne eax, ecx
mov ecx, eax
or ecx, 0x8000000
test byte [rbp - 0x10], 4
cmovne eax, ecx
mov ecx, eax
or ecx, 0x4000000
test dword [rbp - 0x10], 0x1000
cmovne eax, ecx
mov ecx, eax
or ecx, 0x20000000
test byte [rbp - 0x10], 8
cmovne eax, ecx
mov dword [rbx + 0x38], eax
add rsp, 0x48
pop rbx
pop rbp
ret
call fcn.140455920
mov ecx, eax
lea rdx, [0x1408aedf0]
call fcn.14041cbe0
mov rcx, rax
call fcn.140013240
int3

Function at 0x14037a1e0
Capabilities:
Accept command line arguments

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x90]
lea rcx, [0x1409a0200]
cmp qword [rcx - 8], 0
jne 0x14037a258
mov rcx, qword [0x141328648]
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14037a23f
lea rcx, [rbp - 0x68]
call fcn.140012c00
call sub.KERNEL32.DLL_GetCommandLineW
mov rcx, rax
mov qword [rbp - 0x40], rcx
lea rcx, [rbp - 0x68]
call fcn.140012c50
mov rcx, qword [rbp - 0x40]
call fcn.14037a980
jmp 0x14037a246
cmp byte [rcx], cl
call fcn.14037c610
nop
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14000379f
jmp 0x14037a206
Function at 0x14037afa0
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xor eax, eax
mov qword [rbp - 0x68], rax
xorps xmm4, xmm4
movaps xmmword [rbp - 0x60], xmm4
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x98]
call fcn.140012c00
call sub.KERNEL32.DLL_GetEnvironmentStringsW
mov rbx, rax
lea rcx, [rbp - 0x98]
call fcn.140012c50
mov qword [rbp - 0x40], rbx
cmp qword [rbp - 0x40], 0
je 0x14037b0f0
lea rcx, [0x140a34478]
call fcn.140012770
mov rbx, rax
movss xmm2, dword [case.0x140354a0d.7]
mov rcx, rbx
xor edx, edx
call fcn.140421ae0
mov qword [rbp - 0x70], rbx
mov rcx, qword [rbp - 0x40]
mov qword [rbp - 0x48], rcx
lea rcx, [rbp - 0x58]
mov rdx, qword [rbp - 0x48]
call fcn.14042d140
cmp dword [rbp - 0x50], 0
je 0x14037b0d0
mov rcx, qword [rbp - 0x58]
mov r8d, dword [rbp - 0x50]
mov edx, 0x3d
call fcn.140814300
mov esi, eax
test esi, esi
jle 0x14037b0ae
cmp esi, dword [rbp - 0x50]
ja 0x14037b0ca
mov rcx, qword [rbp - 0x58]
mov qword [rbp - 0x68], rcx
mov dword [rbp - 0x60], esi
lea rcx, [rbp - 0x68]
call fcn.14037e2e0
mov rdi, rax
inc esi
cmp esi, dword [rbp - 0x50]
ja 0x14037b0ca
mov rcx, qword [rbp - 0x58]
mov eax, esi
lea rcx, [rcx + rax*2]
mov eax, dword [rbp - 0x50]
sub eax, esi
mov qword [rbp - 0x68], rcx
mov dword [rbp - 0x60], eax
lea rcx, [rbp - 0x68]
call fcn.14037e2e0
mov r8, rax
mov rcx, rbx
mov rdx, rdi
mov r9d, 1
call fcn.1404224a0
nop
mov rcx, qword [rbp - 0x48]
mov eax, dword [rbp - 0x50]
inc eax
cdqe
lea rcx, [rcx + rax*2]
mov qword [rbp - 0x48], rcx
mov rbx, qword [rbp - 0x70]
jmp 0x14037b028
call fcn.1403b3280
int3
mov rcx, qword [rbp - 0x40]
call fcn.140453f60
mov rax, rbx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x140a2ac78]
call fcn.140012770
mov rbx, rax
mov rcx, rbx
call fcn.1403afed0
mov rcx, rbx
call fcn.140013240
int3
Function at 0x14038e300
Capabilities:
Decode data using base64 via dword translation table

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
mov qword [rsp + 0x60], r9
mov r10, qword [rcx]
mov ecx, dword [rcx + 8]
mov r11, qword [rdx]
mov ebx, ecx
and ebx, 0xfffffffc
mov esi, dword [rdx + 8]
xor edi, edi
xor ebp, ebp
test ecx, ecx
je 0x14038e524
lea r14, [0x140ee85a8]
mov eax, ebx
sar eax, 2
lea eax, [rax + rax*2]
cmp esi, eax
jl 0x14038e347
lea r15d, [rbx - 4]
jmp 0x14038e35e
mov edx, 0x55555556
mov eax, edx
imul esi
mov r15d, edx
shr r15d, 0x1f
add r15d, edx
shl r15d, 2
test r15d, r15d
jle 0x14038e404
movsxd rax, edi
lea rax, [r10 + rax*2]
movzx edx, word [rax]
movzx r13d, word [rax + 2]
movzx r12d, word [rax + 4]
movzx eax, word [rax + 6]
mov r9d, edx
or r9d, r13d
or r9d, r12d
or r9d, eax
test r9d, 0xffffff00
je 0x14038e39c
mov r9d, 0xffffffff
jmp 0x14038e3d1
movsxd rdx, edx
movsx rdx, byte [r14 + rdx]
movsxd r9, r13d
movsx r13, byte [r14 + r9]
movsxd r9, r12d
movsx r12, byte [r14 + r9]
cdqe
movsx rax, byte [r14 + rax]
shl edx, 0x12
or eax, edx
shl r13d, 0xc
or eax, r13d
shl r12d, 6
mov r9d, eax
or r9d, r12d
test r9d, r9d
jl 0x14038e541
movsxd rax, ebp
add rax, r11
mov edx, r9d
sar edx, 0x10
mov byte [rax], dl
mov edx, r9d
sar edx, 8
mov byte [rax + 1], dl
mov byte [rax + 2], r9b
add ebp, 3
add edi, 4
cmp edi, r15d
jl 0x14038e367
lea eax, [rbx - 4]
cmp r15d, eax
jne 0x14038e541
cmp edi, ebx
je 0x14038e541
lea eax, [rbx - 4]
cdqe
movzx eax, word [r10 + rax*2]
lea edx, [rbx - 3]
movsxd rdx, edx
movzx edx, word [r10 + rdx*2]
lea r9d, [rbx - 2]
movsxd r9, r9d
movzx r9d, word [r10 + r9*2]
lea r15d, [rbx - 1]
movsxd r15, r15d
movzx r10d, word [r10 + r15*2]
mov r15d, eax
or r15d, edx
or r15d, r9d
or r15d, r10d
test r15d, 0xffffff00
jne 0x14038e541
cdqe
movsx rax, byte [r14 + rax]
movsxd rdx, edx
movsx rdx, byte [r14 + rdx]
shl eax, 0x12
shl edx, 0xc
or eax, edx
cmp r10d, 0x3d
je 0x14038e4c9
movsxd r9, r9d
movsx r9, byte [r14 + r9]
movsxd r10, r10d
movsx r10, byte [r14 + r10]
or r10d, eax
shl r9d, 6
mov eax, r10d
or eax, r9d
jl 0x14038e541
add esi, 0xfffffffd
cmp ebp, esi
jg 0x14038e541
movsxd rdx, ebp
add r11, rdx
mov edx, eax
sar edx, 0x10
mov byte [r11], dl
mov edx, eax
sar edx, 8
mov byte [r11 + 1], dl
mov byte [r11 + 2], al
add ebp, 3
jmp 0x14038e51d
cmp r9d, 0x3d
je 0x14038e506
movsxd r9, r9d
movsx r9, byte [r14 + r9]
mov edx, r9d
shl edx, 6
or eax, edx
jl 0x14038e541
lea edx, [rsi - 2]
cmp ebp, edx
jg 0x14038e541
mov edx, eax
sar edx, 0x10
movsxd r10, ebp
mov byte [r11 + r10], dl
sar eax, 8
lea edx, [rbp + 1]
movsxd rdx, edx
mov byte [r11 + rdx], al
add ebp, 2
jmp 0x14038e51d
test eax, eax
jl 0x14038e541
lea edx, [rsi - 1]
cmp ebp, edx
jg 0x14038e541
sar eax, 0x10
movsxd rdx, ebp
mov byte [r11 + rdx], al
inc ebp
add edi, 4
cmp ebx, ecx
jne 0x14038e541
mov dword [r8], edi
mov r9, qword [rsp + 0x60]
mov dword [r9], ebp
mov eax, 1
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [r8], edi
mov r9, qword [rsp + 0x60]
mov dword [r9], ebp
xor eax, eax
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x140390220
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push rdi
push rsi
push rbp
push rbx
push rax
xor eax, eax
mov qword [rsp], rax
mov r10, rdx
mov r11d, dword [rsp + 0x60]
mov edx, 0x55555556
mov eax, edx
imul r9d
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [rax + rax*2]
mov edx, r9d
sub edx, eax
sub r9d, edx
add r9d, r8d
xor eax, eax
xor ebx, ebx
lea rsi, [0x140ed9af8]
mov qword [rsp], rsi
cmp r8d, r9d
jge 0x14039035f
movzx edi, r11b
test edi, edi
je 0x14039029e
cmp ebx, 0x4c
jne 0x14039029b
lea ebx, [rax + 1]
cdqe
mov word [rcx + rax*2], recv
mov eax, ebx
lea ebx, [rax + 1]
cdqe
mov word [rcx + rax*2], 0xa
xor eax, eax
mov ebp, eax
mov eax, ebx
mov ebx, ebp
add ebx, 4
movsxd rbp, r8d
movzx r14d, byte [r10 + rbp]
and r14d, 0xfc
sar r14d, 2
movsxd r14, r14d
movzx r14d, byte [r14 + rsi]
movsxd r15, eax
mov word [rcx + r15*2], r14w
movzx ebp, byte [r10 + rbp]
and ebp, 3
shl ebp, 4
lea r14d, [r8 + 1]
movsxd r14, r14d
movzx r15d, byte [r10 + r14]
and r15d, 0xf0
sar r15d, 4
or ebp, r15d
movsxd rbp, ebp
movzx ebp, byte [rsi + rbp]
lea r15d, [rax + 1]
movsxd r15, r15d
mov word [rcx + r15*2], bp
movzx ebp, byte [r10 + r14]
and ebp, 0xf
shl ebp, 2
lea r14d, [r8 + 2]
movsxd r14, r14d
movzx r15d, byte [r10 + r14]
and r15d, 0xc0
sar r15d, 6
or ebp, r15d
movsxd rbp, ebp
movzx ebp, byte [rsi + rbp]
lea r15d, [rax + 2]
movsxd r15, r15d
mov word [rcx + r15*2], bp
movzx ebp, byte [r10 + r14]
and ebp, 0x3f
movsxd rbp, ebp
movzx ebp, byte [rsi + rbp]
lea r14d, [rax + 3]
movsxd r14, r14d
mov word [rcx + r14*2], bp
add eax, 4
add r8d, 3
cmp r8d, r9d
jl 0x140390272
mov r8d, r9d
movzx edi, r11b
test edi, edi
je 0x140390395
test edx, edx
je 0x140390395
cmp ebx, 0x4c
jne 0x140390395
mov r9d, eax
lea eax, [r9 + 1]
movsxd r9, r9d
mov word [rcx + r9*2], send
mov r9d, eax
lea eax, [r9 + 1]
movsxd r9, r9d
mov word [rcx + r9*2], 0xa
cmp edx, 1
je 0x140390423
cmp edx, 2
jne 0x14039047f
movsxd rdx, r8d
movzx edx, byte [r10 + rdx]
and edx, 0xfc
sar edx, 2
movsxd rdx, edx
movzx edx, byte [rdx + rsi]
movsxd r9, eax
mov word [rcx + r9*2], dx
movsxd rdx, r8d
movzx edx, byte [r10 + rdx]
and edx, 3
shl edx, 4
inc r8d
movsxd r8, r8d
movzx r9d, byte [r10 + r8]
and r9d, 0xf0
sar r9d, 4
or edx, r9d
movsxd rdx, edx
movzx edx, byte [rdx + rsi]
lea r9d, [rax + 1]
movsxd r9, r9d
mov word [rcx + r9*2], dx
movzx r10d, byte [r10 + r8]
and r10d, 0xf
shl r10d, 2
movsxd rdx, r10d
movzx edx, byte [rdx + rsi]
lea r8d, [rax + 2]
movsxd r8, r8d
mov word [rcx + r8*2], dx
jmp 0x140390470
movsxd rdx, r8d
movzx edx, byte [r10 + rdx]
and edx, 0xfc
sar edx, 2
movsxd rdx, edx
movzx edx, byte [rdx + rsi]
movsxd r9, eax
mov word [rcx + r9*2], dx
movsxd rdx, r8d
movzx edx, byte [r10 + rdx]
and edx, 3
shl edx, 4
movsxd rdx, edx
movzx edx, byte [rdx + rsi]
lea r8d, [rax + 1]
movsxd r8, r8d
mov word [rcx + r8*2], dx
lea edx, [rax + 2]
movsxd rdx, edx
mov word [rcx + rdx*2], 0x3d
lea edx, [rax + 3]
movsxd rdx, edx
mov word [rcx + rdx*2], 0x3d
add eax, 4
xor ecx, ecx
mov qword [rsp], rcx
add rsp, 8
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret