joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14015d210
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x50
call fcn.1400b2870
sub rsp, rax
mov rax, qword [rcx + 0x180]
mov rsi, rcx
mov rdi, qword [rcx + 0x160]
mov r14, r9
mov qword [rsp + 0x30], rax
mov rbp, r8
mov rax, qword [rcx + 0x168]
mov r15, rdx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x14015d44e
cmp rcx, r9
jb 0x14015d44e
cmp dword [rsi + 0x174], 0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x48], r12
mov qword [rsi + 0x38], rcx
je 0x14015d2a1
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov dword [rsi + 0x174], 0
mov ebx, dword [rsi + 0x170]
mov r12d, dword [rsi + 0xc]
mov dword [rsp + 0x80], ebx
bswap r12d
test ebx, ebx
je 0x14015d304
nop dword [rax]
test r14, r14
je 0x14015d2f2
movzx edx, byte [r15]
dec r14
mov ecx, ebx
inc r15
movzx eax, byte [rcx + rsi + 0x10]
xor al, dl
mov byte [rbp], al
inc rbp
xor byte [rcx + rsi + 0x40], dl
inc ebx
and ebx, 0xf
mov dword [rsp + 0x80], ebx
jne 0x14015d2c0
jmp 0x14015d2fa
test ebx, ebx
jne 0x14015d42d
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov qword [rsp + 0x40], r13
mov r13, qword [rsp + 0xa0]
cmp r14, 0xc00
jb 0x14015d398
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add r14, rax
nop dword [rax + rax]
mov r9d, 0xc00
lea rdx, [rsi + 0x60]
mov r8, r15
lea rcx, [rsi + 0x40]
call qword [rsp + gethostname]
mov r9, qword [rsp + 0x30]
mov r8d, 0xc0
mov rdx, rbp
mov qword [rsp + 0x20], rsi
mov rcx, r15
call r13
add r12d, 0xc0
add rbp, 0xc00
mov eax, r12d
add r15, 0xc00
bswap eax
mov dword [rsi + 0xc], eax
sub rdi, 1
jne 0x14015d340
mov ebx, dword [rsp + 0x80]
mov r13, r14
and r13, 0xfffffffffffffff0
je 0x14015d3e8
mov rdi, r13
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
shr rdi, 4
mov r9, r13
mov r8, r15
call qword [rsp + gethostname]
mov r9, qword [rsp + 0x30]
mov r8, rdi
mov rdx, rbp
mov qword [rsp + 0x20], rsi
mov rcx, r15
call qword [rsp + 0xa0]
add r12d, edi
add rbp, r13
mov eax, r12d
add r15, r13
bswap eax
mov dword [rsi + 0xc], eax
sub r14, r13
mov r13, qword [rsp + 0x40]
test r14, r14
je 0x14015d42d
mov r8, qword [rsp + 0x30]
lea rdx, [rsi + 0x10]
mov rcx, rsi
call qword [rsi + 0x178]
inc r12d
bswap r12d
mov dword [rsi + 0xc], r12d
nop
mov edx, ebx
inc ebx
movzx ecx, byte [rdx + r15]
movzx eax, byte [rsi + rdx + 0x10]
xor byte [rdx + rsi + 0x40], cl
xor al, cl
mov byte [rdx + rbp], al
sub r14, 1
jne 0x14015d410
mov r12, qword [rsp + 0x48]
xor eax, eax
mov dword [rsi + 0x170], ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
or eax, 0xffffffff
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14015d730
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x50
call fcn.1400b2870
sub rsp, rax
mov rax, qword [rcx + 0x180]
mov rsi, rcx
mov rdi, qword [rcx + 0x160]
mov r14, r9
mov qword [rsp + 0x30], rax
mov r15, r8
mov rax, qword [rcx + 0x168]
mov rbp, rdx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x14015d98e
cmp rcx, r9
jb 0x14015d98e
cmp dword [rsi + 0x174], 0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x48], r12
mov qword [rsi + 0x38], rcx
je 0x14015d7c1
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov dword [rsi + 0x174], 0
mov ebx, dword [rsi + 0x170]
mov r12d, dword [rsi + 0xc]
mov dword [rsp + 0x80], ebx
bswap r12d
test ebx, ebx
je 0x14015d821
nop dword [rax]
test r14, r14
je 0x14015d80f
mov ecx, ebx
dec r14
movzx eax, byte [rcx + rsi + 0x10]
xor al, byte [rbp]
inc rbp
mov byte [r15], al
inc r15
xor byte [rcx + rsi + 0x40], al
inc ebx
and ebx, 0xf
mov dword [rsp + 0x80], ebx
jne 0x14015d7e0
jmp 0x14015d817
test ebx, ebx
jne 0x14015d96d
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov r10, qword [rsp + 0xa0]
mov qword [rsp + 0x40], r13
cmp r14, 0xc00
jb 0x14015d8d6
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x30]
nop word [rax + rax]
mov r9, r14
mov qword [rsp + 0x20], rsi
mov r8d, 0xc0
mov rdx, r15
mov rcx, rbp
call r10
add r12d, 0xc0
lea rdx, [rsi + 0x60]
mov eax, r12d
lea rcx, [rsi + 0x40]
bswap eax
mov r9d, 0xc00
mov dword [rsi + 0xc], eax
mov r8, r15
call qword [rsp + gethostname]
mov r10, qword [rsp + 0xa0]
add r15, 0xc00
add rbp, 0xc00
sub rdi, 1
jne 0x14015d870
mov ebx, dword [rsp + 0x80]
mov r14, qword [rsp + 0x98]
mov r13, r14
and r13, 0xfffffffffffffff0
je 0x14015d922
mov r9, qword [rsp + 0x30]
mov rdi, r13
shr rdi, 4
mov rdx, r15
mov r8, rdi
mov qword [rsp + 0x20], rsi
mov rcx, rbp
call r10
add r12d, edi
lea rdx, [rsi + 0x60]
mov eax, r12d
lea rcx, [rsi + 0x40]
bswap eax
mov r9, r13
mov dword [rsi + 0xc], eax
mov r8, r15
add rbp, r13
sub r14, r13
call qword [rsp + gethostname]
add r15, r13
mov r13, qword [rsp + 0x40]
test r14, r14
je 0x14015d96d
mov r8, qword [rsp + 0x30]
lea rdx, [rsi + 0x10]
mov rcx, rsi
call qword [rsi + 0x178]
inc r12d
bswap r12d
mov dword [rsi + 0xc], r12d
nop dword [rax + rax]
mov ecx, ebx
inc ebx
movzx edx, byte [rcx + rbp]
movzx eax, byte [rsi + rcx + 0x10]
xor edx, eax
mov byte [rcx + r15], dl
xor byte [rcx + rsi + 0x40], dl
sub r14, 1
jne 0x14015d950
mov r12, qword [rsp + 0x48]
xor eax, eax
mov dword [rsi + 0x170], ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
or eax, 0xffffffff
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14015db90
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r13
push r14
mov eax, reloc.WLDAP32.dll_Ordinal_32
call fcn.1400b2870
sub rsp, rax
mov r13, qword [rcx + 0x160]
xor r14d, r14d
mov qword [rcx], r14
mov rsi, r8
mov qword [rcx + 8], r14
mov rdi, rdx
mov qword [rcx + 0x40], r14
mov rbx, rcx
mov qword [rcx + 0x48], r14
mov qword [rcx + 0x30], r14
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x170], r14
cmp r8, 0xc
jne 0x14015dbf7
movsd xmm0, qword [rdx]
lea edi, [r8 - 0xb]
movsd qword [rcx], xmm0
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov byte [rcx + 0xf], 1
jmp 0x14015dd69
mov qword [rsp + 0x58], rbp
mov rbp, rsi
mov qword [rsp + 0x50], rsi
cmp rsi, 0x10
jb 0x14015dca3
mov qword [rsp + 0x60], r12
mov r12, rbx
shr rbp, 4
neg r12
imul rax, rbp, 0xfffffffffffffff0
mov qword [rsp + 0x68], r15
lea r15, [rcx + 0xf]
add rsi, rax
nop dword [rax]
lea r8, [r12 + rdi]
lea rax, [r8 + r15]
cmp rbx, rax
ja 0x14015dc70
cmp r15, rdi
jb 0x14015dc70
mov rax, rbx
mov edx, reloc.WS2_32.dll_recv
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x14015dc50
jmp 0x14015dc80
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
lea rdx, [rbx + 0x60]
mov rcx, rbx
call r13
add rdi, 0x10
sub rbp, 1
jne 0x14015dc30
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
test rsi, rsi
je 0x14015dd4a
cmp rsi, 0x20
jb 0x14015dd13
lea rcx, [rbx - 1]
lea rax, [rdi - 1]
add rcx, rsi
add rax, rsi
cmp rbx, rax
ja 0x14015dcca
cmp rcx, rdi
jae 0x14015dd13
mov rdx, rsi
mov rcx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rbx
sub rcx, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
add r14, 0x20
movdqu xmm1, xmmword [rax + rcx]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r14, rdx
jb 0x14015dce0
cmp r14, rsi
jae 0x14015dd40
sub rdi, rbx
lea rcx, [r14 + rbx]
sub rsi, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x14015dd30
lea rdx, [rbx + 0x60]
mov rcx, rbx
call r13
shl rbp, 3
lea rdx, [rbx + 0x60]
bswap rbp
xor qword [rbx + 8], rbp
mov rcx, rbx
call r13
mov edi, dword [rbx + 0xc]
mov rbp, qword [rsp + 0x58]
bswap edi
mov r8, qword [rbx + 0x180]
lea rdx, [rbx + 0x20]
mov rcx, rbx
call qword [rbx + 0x178]
inc edi
bswap edi
mov dword [rbx + 0xc], edi
add rsp, 0x20
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret

Function at 0x140162e20
Capabilities:
Encode data using xor

Disassembly:
mov eax, Ordinal_60
call fcn.1400b2870
sub rsp, rax
cmp dword [rsp + 0x68], 0
je 0x140162e49
lea rax, [0x1401613f0]
mov qword [rsp + 0x68], rax
add rsp, 0x38
jmp fcn.14015c5a0
lea rax, [0x140160550]
mov qword [rsp + 0x68], rax
add rsp, 0x38
jmp fcn.14015c2d0
Function at 0x140199620
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
mov eax, reloc.WLDAP32.dll_Ordinal_32
call fcn.1400b2870
sub rsp, rax
mov rax, qword [rcx + 8]
lea rsi, [r9 + 1]
mov rbx, rdx
mov r10, rcx
mov r9, qword [rax + 0xc0]
test byte [r9 + 0x60], 1
je 0x14019967e
mov rdx, qword [rdx + 8]
lea rax, [rsi + r8]
cmp rax, rdx
jbe 0x140199669
xor eax, eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
add qword [rbx + 0x20], r8
sub rdx, r8
add qword [rbx + 0x28], r8
sub qword [rbx + 0x10], r8
mov qword [rbx + 8], rdx
jmp 0x140199684
cmp rsi, qword [rdx + 8]
ja 0x14019965c
mov rcx, qword [rbx + 0x20]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x38], rdi
movzx edi, byte [rcx + rax - 1]
mov rcx, qword [r10 + 0x2a0]
call fcn.1400e5250
mov rcx, rax
call fcn.1400bf550
bt eax, 0x15
jae 0x1401996d0
or rax, 0xffffffffffffffff
sub rax, rdi
mov rdi, qword [rsp + 0x38]
add qword [rbx + 8], rax
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
lea rcx, [rdi + rsi]
mov qword [rsp + 0x30], rbp
mov rsi, qword [rbx + 8]
mov ebp, 0x100
mov r8, rsi
mov rax, rsi
sub r8, rcx
xor rax, rcx
xor r8, rcx
or r8, rax
xor r8, rsi
shr r8, 0x3f
dec r8
cmp rsi, rbp
cmovb rbp, rsi
xor r9d, r9d
test rbp, rbp
je 0x14019975d
mov r10, rdi
lea r11, [rsi - 1]
shr r10, 0x3f
add r11, qword [rbx + 0x20]
nop dword [rax]
mov rax, r9
lea r11, [r11 - 1]
shr rax, 0x3f
mov rcx, rdi
sub rcx, r9
inc r9
shr rcx, 0x3f
xor cl, al
xor al, r10b
or cl, al
xor cl, r10b
dec cl
movzx edx, cl
movzx ecx, byte [r11 + 1]
xor rcx, rdi
and rdx, rcx
not rdx
and r8, rdx
cmp r9, rbp
jb 0x140199720
mov rbp, qword [rsp + 0x30]
not r8
movzx eax, r8b
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and rcx, rax
lea rax, [rdi + 1]
mov rdi, qword [rsp + 0x38]
neg rcx
and rax, rcx
sub rsi, rax
mov eax, ecx
and eax, 1
mov qword [rbx + 8], rsi
mov rbx, qword [rsp + 0x40]
not ecx
or eax, ecx
add rsp, 0x20
pop rsi
ret
Function at 0x1415bf4d0
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.1415bf657
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x1415bf501
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1415bf4e7
add dl, dl
jne 0x1415bf50e
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1415bf56e
xor eax, eax
add dl, dl
jne 0x1415bf51d
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1415bf625
add dl, dl
jne 0x1415bf52e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1415bf53b
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1415bf548
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1415bf555
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1415bf562
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x1415bf4f6
mov eax, 1
add dl, dl
jne 0x1415bf57e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1415bf58b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1415bf573
sub eax, ebx
mov ebx, 1
jne 0x1415bf5c4
mov ecx, 1
add dl, dl
jne 0x1415bf5a6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1415bf5b3
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1415bf59b
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1415bf4f6
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1415bf5e0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1415bf5ed
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1415bf5d5
cmp eax, 0x7d00
jae 0x1415bf613
cmp eax, 0x500
jb 0x1415bf60e
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1415bf4f6
cmp eax, 0x7f
ja 0x1415bf616
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1415bf4f6
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1415bf64a
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x1415bf4f6
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140001010
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rdi, rdx
mov rbx, rcx
mov ecx, 0x30
call fcn.140001edc
test rax, rax
je 0x140001045
movups xmm0, xmmword [rdi]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rax + 0x20], xmm0
mov qword [rsp + 0x40], rax
lea rdi, [rbx + 8]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0
mov r9, rax
lea r8, [0x140001560]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbx], rax
test rax, rax
je 0x140001085
mov rax, rbx
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov dword [rdi], 0
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
Function at 0x1400018f0
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Encode data using xor
Generate random numbers using a mersenne twister
Initialize winsock library
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
mov eax, 0x1580
call fcn.140002030
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1570], rax
mov rdi, rcx
lea rdx, [rsp + 0x40]
mov ecx, 0x101
xor esi, esi
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov rcx, qword [rdi + 8]
mov ebx, 2
mov word [rsp + 0x28], bx
movzx ecx, word [rcx]
call qword [sym.imp.WS2_32.dll_htons]
mov rcx, qword [rdi]
mov word [rsp + 0x2a], ax
mov rcx, qword [rcx]
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x2c], eax
lea r8d, [rsi + 0x11]
xor eax, eax
mov edx, ebx
mov ecx, ebx
mov qword [rsp + 0x30], rax
call qword [sym.imp.WS2_32.dll_socket]
mov rbp, rax
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x1e4], eax
lea edx, [rsi + 1]
mov dword [rsp + 0x1564], 0xffffffff
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x1e4], eax
inc rdx
cmp rdx, 0x270
jb 0x1400019a0
mov dword [rsp + 0x1e0], 0x270
nop dword [rax]
mov rax, qword [rdi + 0x28]
cmp byte [rax], 0
je 0x1400019ee
movzx ecx, si
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x2a], ax
lea rax, [rsi + 1]
movzx esi, ax
mov r8d, send
lea rdx, [rsp + 0x28]
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_connect]
mov rax, qword [rdi + 0x10]
xor ebx, ebx
mov rcx, qword [rax]
test rcx, rcx
je 0x140001a75
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x20], rax
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.140001af0
mov eax, eax
imul rax, rax, 0xff
test eax, eax
jne 0x140001a58
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140001af0
mov eax, eax
imul rax, rax, 0xff
cmp eax, 1
jb 0x140001a40
mov rcx, qword [rdi + 0x20]
shr rax, 0x20
mov rdx, qword [rcx]
mov byte [rbx + rdx], al
inc rbx
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax]
cmp rbx, rcx
jb 0x140001a20
mov rdx, qword [rdi + 0x20]
mov r8d, ecx
xor r9d, r9d
mov rcx, rbp
mov rdx, qword [rdx]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x1400019d0
Function at 0x140001af0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, qword [rcx]
mov r10d, 0x270
mov ecx, dword [r9]
cmp ecx, r10d
jne 0x140001b51
lea r8, [r9 + 8]
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x140001b10
mov ecx, dword [r9]
jmp 0x140001c3b
cmp ecx, 0x4e0
jb 0x140001c3b
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x140001b70
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x140001bc0
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x1400029cc
Capabilities:
Parse pe header

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

Disassembly:
cld
pop r11
jmp 0x69da9d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x69daad
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x69da95
lea eax, [rcx + 1]
jmp 0x69dabb
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x69dace
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x69dab4
sub eax, 3
jb 0x69daee
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x69db3d
sar eax, 1
movsxd rbp, eax
jb 0x69db24
jmp 0x69dafc
add ebx, ebx
jne 0x69dafa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x69db24
inc ecx
add ebx, ebx
jne 0x69db0a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x69db24
call r11
adc ecx, ecx
add ebx, ebx
jne 0x69db1d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x69db0c
add ecx, 2
jmp 0x69db29
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.0069da52
jmp 0x69da9d
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x93c00
mov dl, 0x1c
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x69db89
cmp rsi, rcx
jae 0x69db91
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x69db70
cmp al, 0x8f
ja 0x69db70
cmp byte [rsi - 2], 0xf
je 0x69db76
sub al, 0xe8
cmp al, 1
ja 0x69db5a
cmp rsi, rcx
jae 0x69db91
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x69db60
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x69db91
lodsb al, byte [rsi]
jmp 0x69db70
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x29a000]
mov eax, dword [rdi]
or eax, eax
je 0x69dbee
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x29d000]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x69db9e
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x69dbe8
mov qword [rbx], rax
add rbx, 8
jmp 0x69dbbe
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x69dc28
cmp al, 0xef
ja 0x69dc1a
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x69dbfa
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x69dc09
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x69dc7c
sub rsp, 0xffffffffffffff80
jmp 0x464960
Function at 0x14000fd60
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x48
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rcx
call sub.KERNEL32.dll_GetLastError
mov qword [rsp + 0x38], rax
mov rcx, qword [0x1400a2968]
call sub.KERNEL32.dll_TlsGetValue
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x38]
call sub.KERNEL32.dll_SetLastError
mov rax, qword [rsp + 0x28]
add rsp, 0x48
ret

Function at 0x140010520
Capabilities:
Create thread

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x20], rsi
push rdi
sub rsp, 0x30
lea rax, [r11 + 0x18]
mov r9, rdx
mov r8, rcx
mov qword [r11 - 0x10], rax
xor edi, edi
mov edx, 0x1000
xor ecx, ecx
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbp, rax
test rax, rax
je 0x1400105e6
lea rcx, [0x1400a8120]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x1400a5720]
jmp 0x1400105aa
lea rsi, [rbx + 0x10]
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400105a7
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rbx]
lea rcx, [0x1400a5720]
mov rdx, rsi
call fcn.14002a090
jmp 0x1400105aa
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140010577
mov rdx, qword [0x1400a2850]
lea rcx, [0x1400a5720]
mov rdi, rdx
inc rdx
mov qword [0x1400a2850], rdx
lea edx, [rbx + 0x20]
call fcn.14002a0d8
lea rcx, [0x1400a8120]
mov qword [rax], rbp
mov qword [rax + 8], rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
mov rax, rdi
add rsp, 0x30
pop rdi
ret