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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x50
test byte [rcx], 1
je 0x14000f72f
lea rdx, [rcx + 8]
cmp qword [rcx + 0x38], 0xffffffffffffffff
mov r8, qword [rcx + 0x48]
mov r9, qword [rcx + 0x50]
mov rax, qword [rcx + 0x58]
mov rcx, qword [rcx + 0x60]
je 0x14000f859
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x30], 0
jmp 0x14000f868
cmp byte [rcx + 0x1a], 0
je 0x14000f74c
xor eax, eax
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
jne 0x14000f89b
jmp 0x14000f8b9
mov r8, qword [rcx + 8]
mov rax, qword [rcx + 0x48]
mov rdx, qword [rcx + 0x50]
movzx r9d, byte [rcx + 0x18]
jmp 0x14000f767
add r8, r10
mov qword [rcx + 8], r8
mov r10d, r9d
xor r9b, 1
test r8, r8
je 0x14000f796
cmp r8, rdx
jae 0x14000f790
cmp byte [rax + r8], 0xbf
jg 0x14000f796
jmp 0x14000f8c3
jne 0x14000f8c3
cmp r8, rdx
je 0x14000f87b
movzx r11d, byte [rax + r8]
test r11b, r11b
jns 0x14000f800
mov esi, r11d
and esi, 0x1f
movzx ebx, byte [rax + r8 + 1]
and ebx, 0x3f
cmp r11b, 0xdf
jbe 0x14000f7f3
movzx edi, byte [rax + r8 + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp r11b, 0xf0
jb 0x14000f842
movzx r11d, byte [rax + r8 + 3]
and esi, 7
shl esi, 0x12
shl edi, 6
and r11d, 0x3f
or r11d, edi
or r11d, esi
test r10b, 1
je 0x14000f806
jmp 0x14000f850
shl esi, 6
or esi, ebx
mov r11d, esi
nop dword [rax + rax]
test r10b, 1
jne 0x14000f850
mov r10d, 1
cmp r11d, 0x80
jb 0x14000f760
mov r10d, 2
cmp r11d, 0x800
jb 0x14000f760
cmp r11d, 0x10000
mov r10d, 4
sbb r10, 0
jmp 0x14000f760
shl esi, 0xc
or edi, esi
mov r11d, edi
test r10b, 1
je 0x14000f806
mov byte [rcx + 0x18], r9b
mov rdx, r8
jmp 0x14000f885
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x30], 1
lea rcx, [rsp + 0x38]
call fcn.14000f8e0
test byte [rsp + 0x38], 1
jne 0x14000f89b
jmp 0x14000f8b9
mov byte [rcx + 0x18], r9b
test r10b, 1
je 0x14000f8a7
mov qword [rsp + 0x40], rdx
mov eax, 1
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
je 0x14000f8b9
mov rdx, qword [rsp + 0x40]
mov eax, 1
jmp 0x14000f8bb
mov byte [rcx + 0x1a], 1
xor eax, eax
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
jne 0x14000f89b
xor eax, eax
add rsp, 0x50
pop rbx
pop rdi
pop rsi
ret
mov byte [rcx + 0x18], r9b
lea rcx, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_strpattern.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r9, rdx
call fcn.1400135a0
int3
Function at 0x140026640
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rsi, qword [rdx + 0x20]
mov r11, qword [rdx + 0x28]
lea r10, [r11 + 1]
mov qword [rdx + 0x28], r10
mov al, 1
cmp r10, rsi
jae 0x140026680
mov rax, qword [rdx + 0x18]
movzx edi, byte [rax + r10]
mov al, 1
cmp edi, 0x2b
je 0x140026675
cmp edi, 0x2d
jne 0x140026680
xor eax, eax
add r11, 2
mov qword [rdx + 0x28], r11
mov r10, r11
cmp r10, rsi
jae 0x14002681f
mov rdi, qword [rdx + 0x18]
movzx r11d, byte [rdi + r10]
lea rbx, [r10 + 1]
mov qword [rdx + 0x28], rbx
add r11b, 0xd0
cmp r11b, 0xa
jae 0x14002682a
movzx r11d, r11b
cmp rbx, rsi
jae 0x14002671d
mov ebx, 1
sub rbx, rsi
add r10, 2
jmp 0x1400266dc
movzx esi, sil
lea r11d, [r11 + r11*4]
lea r11d, [rsi + r11*2]
lea rsi, [rbx + r10]
inc rsi
inc r10
cmp rsi, 2
je 0x14002671d
movzx esi, byte [rdi + r10 - 1]
add sil, 0xd0
cmp sil, 0xa
jae 0x14002671d
mov qword [rdx + 0x28], r10
cmp r11d, 0xccccccb
jle 0x1400266c0
cmp r11d, 0xccccccc
jne 0x140026708
cmp sil, 7
jbe 0x1400266c0
test r9, r9
sete r9b
mov byte [rsp + 0x20], al
call fcn.140026a10
jmp 0x14002680c
mov r10d, dword [rsp + 0x80]
test al, al
je 0x14002673a
lea eax, [r10 + r11]
sar eax, 0x1f
add eax, 0x80000000
add r10d, r11d
jmp 0x14002674a
xor eax, eax
cmp r10d, r11d
setns al
add eax, 0x7fffffff
sub r10d, r11d
cmovo r10d, eax
movq xmm1, r9
punpckldq xmm1, xmmword [0x1400aa650]
subpd xmm1, xmmword [0x1400aa660]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
mov eax, r10d
neg eax
cmovs eax, r10d
cmp eax, 0x135
jb 0x1400267bc
xorpd xmm1, xmm1
movsd xmm2, qword [0x1400aa670]
nop dword [rax + rax]
ucomisd xmm0, xmm1
jne 0x140026798
jnp 0x1400267f5
test r10d, r10d
jns 0x140026853
divsd xmm0, xmm2
add r10d, 0x134
mov eax, r10d
neg eax
cmovs eax, r10d
cmp eax, 0x135
jae 0x140026790
mov eax, eax
lea r9, [0x1400b9bd0]
movsd xmm1, qword [r9 + rax*8]
test r10d, r10d
js 0x140026814
mulsd xmm0, xmm1
movq rax, xmm0
movabs r9, 0x7fffffffffffffff
and r9, rax
movabs rax, 0x7ff0000000000000
cmp r9, rax
je 0x140026853
test r8b, r8b
jne 0x140026802
xorpd xmm0, xmmword [0x1400aa680]
movsd qword [rcx + 8], xmm0
xor eax, eax
mov qword [rcx], rax
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
divsd xmm0, xmm1
test r8b, r8b
je 0x1400267fa
jmp 0x140026802
mov qword [rsp + 0x28], 5
jmp 0x140026833
mov qword [rsp + 0x28], 0xd
lea rax, [rsp + 0x28]
mov rsi, rcx
mov rcx, rdx
mov rdx, rax
call fcn.140025b10
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x14002680c
mov qword [rsp + 0x28], 0xe
lea rax, [rsp + 0x28]
mov rsi, rcx
mov rcx, rdx
mov rdx, rax
call fcn.140025b10
mov rcx, rsi
mov qword [rsi + 8], rax
mov eax, 1
jmp 0x140026809
Function at 0x14002a6c0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
jmp 0x14002a6c0
push rsi
push rdi
push rbx
sub rsp, 0x70
mov esi, dword [0x1400a9178]
test esi, esi
je 0x14002a7c2
dec esi
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x14002a805
je 0x14002a7be
movups xmm0, xmmword [0x1400c0be8]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [0x1400c0bd8]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [0x1400c0bc8]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [0x1400c0bb8]
movaps xmmword [rsp + 0x20], xmm0
movabs rax, 0x2000000000000
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], esi
movzx eax, byte [0x1400d3130]
mov edx, 0x50
xor ecx, ecx
call fcn.14008b3c0
test rax, rax
je 0x14002a80d
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movaps xmm3, xmmword [rsp + 0x50]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov ecx, esi
mov rbx, rax
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x14002a802
mov rax, qword [rdi + 8]
cmp rax, 2
je 0x14002a7f1
mov rcx, rdi
add rcx, 0x10
test rax, rax
je 0x14002a7e3
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x14002a7f1
call fcn.140028230
jmp 0x14002a7f1
xor eax, eax
jmp 0x14002a805
lea rcx, [0x1400a9160]
call fcn.140057530
mov esi, eax
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x14002a6e8
jmp 0x14002a805
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x14002a7f1
call fcn.140027360
mov rcx, qword [0x1400d3110]
xor edx, edx
mov r8, rdi
call fcn.1400a6040
mov rax, rsi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
mov ecx, 8
mov edx, 0x50
call fcn.14000bba0
ud2
Function at 0x140034060
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
aeskeygenassist xmm0, xmmword [rdx], 2
movdqa xmmword [rcx], xmm0
ret

Function at 0x14003eb40
Capabilities:
Connect socket
Set socket configuration

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x50
mov rbx, rdx
mov rsi, rcx
cmp byte [rdx], 0
mov eax, 0x17
mov ecx, 2
cmovne ecx, eax
mov eax, dword [0x1400d3040]
cmp eax, 3
jne 0x14003ec59
mov edx, 1
xor r8d, r8d
call sub.ws2_32.dll_socket
cmp rax, 0xffffffffffffffff
je 0x14003ebb1
mov rdi, rax
mov dword [rsp + 0x30], 1
lea r8, [rsp + 0x30]
mov rcx, rax
mov edx, 0x8004667e
call sub.ws2_32.dll_ioctlsocket
test eax, eax
je 0x14003ebd3
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov rcx, rdi
call fcn.1400a61e8
jmp 0x14003ebb8
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov qword [rsi + 8], rbx
mov qword [rsi], 0xffffffffffffffff
add rsp, 0x50
pop rbx
pop rdi
pop rsi
ret
test byte [rbx], 1
je 0x14003ebf7
movups xmm0, xmmword [rbx + 4]
movzx eax, word [rbx + 0x1c]
rol ax, 8
mov ecx, dword [rbx + 0x18]
add rbx, 0x14
mov r8d, 0x1c
mov dx, 0x17
jmp 0x14003ec10
movzx eax, word [rbx + 6]
rol ax, 8
add rbx, 2
xorps xmm0, xmm0
mov r8d, 0x10
mov dx, 2
mov r9d, dword [rbx]
mov word [rsp + 0x30], dx
mov word [rsp + 0x32], ax
mov dword [rsp + 0x34], r9d
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x48], ecx
lea rdx, [rsp + 0x30]
mov rcx, rdi
call sub.ws2_32.dll_connect
cmp eax, 0xffffffff
jne 0x14003ec49
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x2733
jne 0x14003ec9a
mov qword [rsi], rdi
mov qword [rsi + 8], 0
jmp 0x14003ebcb
mov byte [rsp + 0x2f], 1
lea rax, [rsp + 0x2f]
mov qword [rsp + 0x30], rax
lea rax, str._home_medusa_.cargo_registry_src_index.crates.io_6f17d22bba15001f_mio_1.0.2_src_sys_windows_net.rs
mov qword [rsp + 0x20], rax
lea rax, [0x1400d3040]
lea r9, [0x1400b56d0]
lea r8, [rsp + 0x30]
mov edi, ecx
mov rcx, rax
xor edx, edx
call fcn.140055790
mov ecx, edi
jmp 0x14003eb6c
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 0xffffffffffffffff
mov rcx, rdi
call fcn.1400a61e8
jmp 0x14003ebcb
Function at 0x140040430
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
jmp 0x140042730
push rsi
push rdi
push rbx
sub rsp, 0x60
mov esi, dword [0x1400a9030]
test esi, esi
je 0x1400427f1
dec esi
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1400427e9
je 0x1400427e7
lea rcx, [rsp + 0x28]
call fcn.1400431a0
movzx eax, byte [0x1400d3130]
mov edx, 0x40
xor ecx, ecx
call fcn.14008b3c0
test rax, rax
je 0x140042812
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x30], rcx
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov dword [rax + 0x38], esi
mov ecx, esi
mov rbx, rax
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x1400427e2
lock dec qword [0x1400d3050]
mov rcx, qword [0x1400d3110]
xor edx, edx
mov r8, rdi
call fcn.1400a6040
mov rax, rsi
jmp 0x1400427e9
xor eax, eax
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x1400a9018]
call fcn.140057530
mov esi, eax
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x140042758
jmp 0x1400427e9
mov ecx, 8
mov edx, 0x40
call fcn.14000bba0
ud2

Function at 0x140042730
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
jmp 0x140042730
push rsi
push rdi
push rbx
sub rsp, 0x60
mov esi, dword [0x1400a9030]
test esi, esi
je 0x1400427f1
dec esi
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1400427e9
je 0x1400427e7
lea rcx, [rsp + 0x28]
call fcn.1400431a0
movzx eax, byte [0x1400d3130]
mov edx, 0x40
xor ecx, ecx
call fcn.14008b3c0
test rax, rax
je 0x140042812
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x30], rcx
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov dword [rax + 0x38], esi
mov ecx, esi
mov rbx, rax
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x1400427e2
lock dec qword [0x1400d3050]
mov rcx, qword [0x1400d3110]
xor edx, edx
mov r8, rdi
call fcn.1400a6040
mov rax, rsi
jmp 0x1400427e9
xor eax, eax
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x1400a9018]
call fcn.140057530
mov esi, eax
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x140042758
jmp 0x1400427e9
mov ecx, 8
mov edx, 0x40
call fcn.14000bba0
ud2
Function at 0x140042ec0
Capabilities:
Link many functions at runtime

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rcx, str.api_ms_win_core_synch_l1_2_0.dll
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x140042f12
mov rsi, rax
lea rdx, str.WaitOnAddress
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140042f12
mov rdi, rax
lea rdx, str.WakeByAddressSingle
mov rcx, rsi
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140042f12
mov rbx, rax
xor esi, esi
jmp 0x140042f96
lea rcx, str.ntdll.dll
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x140043000
mov rdi, rax
lea rdx, str.NtCreateKeyedEvent
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140043000
mov rbx, rax
lea rdx, str.NtReleaseKeyedEvent
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140043000
mov rsi, rax
lea rdx, str.NtWaitForKeyedEvent
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140043000
mov rdi, rax
lea rcx, [rsp + 0x28]
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call rbx
test eax, eax
jne 0x140043000
mov rbx, qword [rsp + 0x28]
movzx eax, byte [0x1400d3130]
mov edx, 0x18
xor ecx, ecx
call fcn.14008b3c0
test rax, rax
je 0x140043037
mov r14, rax
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rbx
xor eax, eax
lock cmpxchg qword [0x1400d3060], r14
je 0x140042ff3
mov rsi, rax
cmp qword [r14], 0
je 0x140042fdf
mov rcx, qword [r14 + 0x10]
call sub.KERNEL32.dll_CloseHandle
mov rcx, qword [0x1400d3110]
xor edx, edx
mov r8, r14
call fcn.1400a6040
mov r14, rsi
mov rax, r14
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rax, str.parking_lot_requires_either_NT_Keyed_Events__WinXP__or_WaitOnAddress_WakeByAddress__Win8_
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x38], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
lea rdx, str._home_medusa_.cargo_registry_src_index.crates.io_6f17d22bba15001f_parking_lot_core_0.9.10_src_thread_parker_windows_mod.rs
lea rcx, [rsp + 0x28]
call fcn.14000fd10
mov ecx, 8
mov edx, 0x18
call fcn.14000bba0
ud2

Function at 0x140047710
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
mov rax, rdx
sub rdx, rcx
cmp rdx, 0x20
jae 0x140047735
cmp rax, rcx
je 0x14004773b
cmp rdx, 4
jae 0x14004773f
xor eax, eax
xor r8d, r8d
jmp 0x1400477d0
pop rbp
jmp fcn.14000ffe0
xor eax, eax
pop rbp
ret
mov r8d, edx
and r8d, 0x1c
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x1400ab660]
movdqa xmm3, xmmword [0x1400ab670]
pxor xmm1, xmm1
movzx r9d, word [rcx + rax]
movd xmm4, r9d
movzx r9d, word [rcx + rax + 2]
movd xmm5, r9d
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
add rax, 4
cmp r8, rax
jne 0x140047760
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp r8, rdx
je 0x1400477e7
nop dword [rax]
xor r9d, r9d
cmp byte [rcx + r8], 0xc0
setge r9b
add rax, r9
inc r8
cmp rdx, r8
jne 0x1400477d0
pop rbp
ret
Function at 0x14004ef70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
mov ebx, edx
mov rsi, rcx
test edx, edx
je 0x14004f0f9
mov eax, ebx
shr eax, 5
imul rax, rax, 0xa7c5ac5
shr rax, 0x27
xor ecx, ecx
cmp ebx, 0x186a0
setae cl
cmovb eax, ebx
lea ecx, [rcx + rcx*4]
lea edx, [rax + 0x5fff6]
lea r8d, [rax + 0x7ff9c]
and r8d, edx
lea edx, [rax + 0xdfc18]
add eax, 0x7d8f0
and eax, edx
xor eax, r8d
shr eax, 0x11
add eax, ecx
inc al
cmp al, 3
jbe 0x14004f0fb
xor edi, edi
mov r15d, 0xa
lea rax, [0x1400babea]
cmp ebx, 0x2710
jb 0x14004f097
mov r8d, 0xa
mov ecx, 0xd1b71759
nop
mov edx, ebx
imul rdx, rcx
shr rdx, 0x2d
imul r9d, edx, 0x2710
mov r10d, ebx
sub r10d, r9d
imul r9d, r10d, 0x147b
shr r9d, 0x13
imul r11d, r9d, 0x64
sub r10d, r11d
movzx r10d, r10w
lea r15, [r8 - 4]
movzx r9d, word [rax + r9*2]
mov word [rsp + r8 + 0x24], r9w
movzx r9d, word [rax + r10*2]
mov word [rsp + r8 + 0x26], r9w
mov r8, r15
cmp ebx, 0x5f5e0ff
mov ebx, edx
ja 0x14004f000
mov ecx, edx
cmp edx, 0x63
jbe 0x14004f085
movzx edx, cx
shr edx, 2
imul edx, edx, 0x147b
shr edx, 0x11
imul r8d, edx, 0x64
sub ecx, r8d
movzx ecx, cx
movzx ecx, word [rax + rcx*2]
mov word [rsp + r15 + 0x26], cx
add r15, 0xfffffffffffffffe
mov rcx, rdx
cmp ecx, 0xa
jae 0x14004f0a2
or cl, 0x30
mov byte [rsp + r15 + 0x27], cl
dec r15
jmp 0x14004f0b0
mov edx, ebx
mov ecx, edx
cmp edx, 0x63
ja 0x14004f05b
jmp 0x14004f085
movzx eax, word [rax + rcx*2]
mov word [rsp + r15 + 0x26], ax
add r15, 0xfffffffffffffffe
mov ebx, 0xa
sub rbx, r15
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x14004f144
lea rdx, [rsp + r15]
add rdx, 0x28
mov rcx, qword [rsi + 8]
add rcx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
add r14, rbx
mov qword [rsi + 0x10], r14
add rdi, rbx
xor eax, eax
mov rdx, rdi
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov al, 1
mov cl, 4
sub cl, al
mov rdx, qword [rsi + 0x10]
movzx r14d, cl
xor edi, edi
jmp 0x14004f12b
inc rdi
mov rax, qword [rsi + 8]
mov byte [rax + rdx], 0x30
inc rdx
mov qword [rsi + 0x10], rdx
cmp rdi, r14
jae 0x14004efda
cmp qword [rsi], rdx
jne 0x14004f110
mov r8d, 1
mov rcx, rsi
call fcn.14004e4d0
mov rdx, qword [rsi + 0x10]
jmp 0x14004f110
mov rcx, rsi
mov rdx, r14
mov r8, rbx
call fcn.14004e4d0
mov r14, qword [rsi + 0x10]
jmp 0x14004f0c7
Function at 0x14004f160
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
mov rsi, rcx
test edx, edx
je 0x14004f1dc
mov eax, edx
shr eax, 5
imul rax, rax, 0xa7c5ac5
shr rax, 0x27
xor ecx, ecx
cmp edx, 0x186a0
setae cl
cmovb eax, edx
lea ecx, [rcx + rcx*4]
lea r8d, [rax + 0x5fff6]
lea r9d, [rax + 0x7ff9c]
and r9d, r8d
lea r8d, [rax + 0xdfc18]
add eax, 0x7d8f0
and eax, r8d
xor eax, r9d
shr eax, 0x11
add cl, al
je 0x14004f1dc
xor edi, edi
mov r15d, 0xa
lea rax, [0x1400babea]
cmp edx, 0x2710
jae 0x14004f212
mov r8d, edx
jmp 0x14004f276
mov rax, qword [rsi + 0x10]
cmp qword [rsi], rax
je 0x14004f326
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], 0x30
inc rax
mov qword [rsi + 0x10], rax
mov edi, 1
mov r15d, 0xa
lea rax, [0x1400babea]
cmp edx, 0x2710
jb 0x14004f1d4
mov r9d, 0xa
mov ecx, 0xd1b71759
nop dword [rax]
mov r8d, edx
imul r8, rcx
shr r8, 0x2d
imul r10d, r8d, 0x2710
mov r11d, edx
sub r11d, r10d
imul r10d, r11d, 0x147b
shr r10d, 0x13
imul ebx, r10d, 0x64
sub r11d, ebx
movzx r11d, r11w
lea r15, [r9 - 4]
movzx r10d, word [rax + r10*2]
mov word [rsp + r9 + 0x24], r10w
movzx r10d, word [rax + r11*2]
mov word [rsp + r9 + 0x26], r10w
mov r9, r15
cmp edx, 0x5f5e0ff
mov edx, r8d
ja 0x14004f220
mov ecx, r8d
cmp r8d, 0x63
jbe 0x14004f2a9
movzx edx, cx
shr edx, 2
imul edx, edx, 0x147b
shr edx, 0x11
imul r8d, edx, 0x64
sub ecx, r8d
movzx ecx, cx
movzx ecx, word [rax + rcx*2]
mov word [rsp + r15 + 0x26], cx
add r15, 0xfffffffffffffffe
mov rcx, rdx
cmp ecx, 0xa
jae 0x14004f2bb
or cl, 0x30
mov byte [rsp + r15 + 0x27], cl
dec r15
jmp 0x14004f2c9
movzx eax, word [rax + rcx*2]
mov word [rsp + r15 + 0x26], ax
add r15, 0xfffffffffffffffe
mov ebx, 0xa
sub rbx, r15
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x14004f312
lea rdx, [rsp + r15]
add rdx, 0x28
mov rcx, qword [rsi + 8]
add rcx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
add r14, rbx
mov qword [rsi + 0x10], r14
add rdi, rbx
xor eax, eax
mov rdx, rdi
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, rsi
mov rdx, r14
mov r8, rbx
call fcn.14004e4d0
mov r14, qword [rsi + 0x10]
jmp 0x14004f2e0
mov r8d, 1
mov rcx, rsi
mov edi, edx
mov rdx, rax
call fcn.14004e4d0
mov edx, edi
mov rax, qword [rsi + 0x10]
jmp 0x14004f1e9
Function at 0x140056160
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov rsi, rcx
movups xmm0, xmmword [0x1400bdd20]
movaps xmmword [rbp], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdx
mov rax, rbp
mov qword [rsp + 0x20], rax
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtWriteFile
cmp eax, 0x103
jne 0x1400561cf
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rbp]
cmp eax, 0x103
je 0x1400561fb
test eax, eax
js 0x1400561db
mov rdx, qword [rbp + 8]
xor eax, eax
jmp 0x1400561f1
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0xa8
pop rsi
pop rbp
ret
mov dword [rbp + 0x18], 0
mov byte [rbp + 0x1c], 0
lea rax, [0x1400bdd88]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 1
lea rax, [rbp + 0x20]
mov qword [rbp - 0x28], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rcx, [rbp + 0x18]
lea rdx, [rbp - 0x38]
call fcn.140055930
mov qword [rbp - 8], rax
lea rcx, [rbp - 8]
call fcn.140055a70
mov ecx, 7
int 0x29
ud2

Function at 0x140057290
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov rdi, rcx
mov esi, dword [0x1400a90e0]
test esi, esi
je 0x140057339
dec esi
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x140057330
je 0x1400572d9
test rdi, rdi
je 0x1400572dd
mov rbx, qword [rdi]
mov qword [rdi], 0
test rbx, rbx
je 0x1400572df
mov rbx, qword [rdi + 8]
jmp 0x1400572df
xor eax, eax
jmp 0x140057330
xor ebx, ebx
movzx eax, byte [0x1400d3130]
mov edx, 0x10
xor ecx, ecx
call fcn.14008b3c0
test rax, rax
je 0x14005735a
mov qword [rax], rbx
mov dword [rax + 8], esi
mov ecx, esi
mov rbx, rax
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x14005732d
mov rcx, qword [0x1400d3110]
xor edx, edx
mov r8, rdi
call fcn.1400a6040
mov rax, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x1400a90c8]
call fcn.140057530
mov esi, eax
mov ecx, esi
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1400572bd
jmp 0x140057330
mov ecx, 8
mov edx, 0x10
call fcn.14000bba0
int3