joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180130e10
Capabilities:
Send data
Send data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
mov rax, qword [0x180515618]
xor rax, rsp
mov qword [rbp - 0x20], rax
movaps xmm6, xmm3
mov ebx, r8d
mov edi, edx
mov esi, ecx
call fcn.18012f970
mov ecx, eax
test ebx, ebx
jle 0x180130e9c
movss xmm0, dword [rbp + 0x30]
lea rdx, [rbp - 0x50]
xor r9d, r9d
movss dword [rbp - 0x2c], xmm6
movss dword [rbp - 0x28], xmm0
mov dword [rbp - 0x50], 0x42424c54
mov dword [rbp - 0x4c], 0x643130
lea r8d, [r9 + 0x2c]
mov dword [rbp - 0x48], 0x20
mov dword [rbp - 0x44], 0xbf800000
mov qword [rbp - 0x3c], 0xffffffffffffffff
mov dword [rbp - 0x40], esi
mov dword [rbp - 0x34], ebx
mov dword [rbp - 0x30], edi
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.180169060
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
movaps xmm6, xmmword [rsp + 0x60]
mov rsp, r11
pop rbp
ret

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

Disassembly:
sub rsp, 0x48
mov rax, qword [0x180515618]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], 0x42424c54
mov dword [rsp + 0x24], 0x2bf3130
mov dword [rsp + 0x28], 3
mov byte [rsp + 0x2e], 0
mov byte [rsp + 0x2c], cl
mov byte [rsp + 0x2d], dl
call fcn.18012f970
xor r9d, r9d
mov ecx, eax
lea rdx, [rsp + 0x20]
lea r8d, [r9 + 0xf]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180169060
add rsp, 0x48
ret

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

Disassembly:
sub rsp, 0x48
mov rax, qword [0x180515618]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], 0x42424c54
mov dword [rsp + 0x24], 0x9d03130
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x2c], ecx
call fcn.18012f970
xor r9d, r9d
mov ecx, eax
lea rdx, [rsp + 0x20]
lea r8d, [r9 + 0x10]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180169060
add rsp, 0x48
ret

Function at 0x180131b20
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rcx
mov eax, 0xffffffff
test edx, edx
je 0x180131b5e
mov r10d, edx
lea r11, [0x1801eb310]
nop word [rax + rax]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
mov edx, eax
shr eax, 8
xor r8, rdx
movzx ecx, r8b
xor eax, dword [r11 + rcx*4]
sub r10, 1
jne 0x180131b40
not eax
ret

Function at 0x1801343b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
cmp qword [rcx + 0x18], 0x10
jb 0x1801343be
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1801343d4
test al, 0x10
je 0x1801343d4
mov al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret
Function at 0x1801356d0
Capabilities:
Check if file exists

Disassembly:
sub rsp, 0x28
cmp qword [rcx + 0x18], 0x10
jb 0x1801356de
mov rcx, qword [rcx]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
cmp eax, 1
sete al
add rsp, 0x28
ret
Function at 0x18013b080
Capabilities:
Create process on windows

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0xe0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x74], xmm0
xor r8d, r8d
mov dword [r11 - 0x14], eax
movups xmmword [r11 - 0x64], xmm0
mov qword [rsp + 0x60], rax
movups xmmword [r11 - 0x54], xmm0
movups xmmword [r11 - 0x44], xmm0
movups xmmword [r11 - 0x34], xmm0
movups xmmword [r11 - 0x24], xmm0
mov dword [rsp + 0x70], 0x68
movups xmmword [rsp + 0x50], xmm0
cmp qword [rcx + 0x10], rax
je 0x18013b0da
cmp qword [rcx + 0x18], 0x10
mov rax, rcx
jb 0x18013b0da
mov rax, qword [rcx]
cmp qword [rdx + 0x18], 0x10
jb 0x18013b0e4
mov rdx, qword [rdx]
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x40], rcx
mov rcx, rax
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x28], 0x4000000
mov dword [rsp + 0x20], r8d
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov ebx, eax
test eax, eax
je 0x18013b137
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
setne al
add rsp, 0xe0
pop rbx
ret

Function at 0x18013b210
Capabilities:
Shutdown system

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
movzx ebx, dl
mov byte [rsp + 0x30], 0
mov edi, ecx
call fcn.180132600
mov rcx, rax
lea rdx, str.RtlAdjustPrivilege
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18013b24e
xor r8d, r8d
lea r9, [rsp + 0x30]
mov dl, 1
lea ecx, [r8 + 0x13]
call rax
cmp edi, 2
jne 0x18013b286
mov edx, 0xffff
test bl, bl
je 0x18013b270
lea ecx, [rdi + 4]
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp edi, 3
jne 0x18013b2bb
mov edx, 0xffff
test bl, bl
je 0x18013b2a8
lea ecx, [rdi + 1]
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
xor ecx, ecx
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
test bl, bl
je 0x18013b2d5
xor edx, edx
lea ecx, [rdx + 5]
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0xffff
mov ecx, 1
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x18014cd70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rdx, r8
je 0x18014ce87
push rbx
sub rsp, 0x20
mov qword [rsp + 0x30], rdi
mov r11, r8
lea rdi, [0x180000000]
mov r10, rdx
mov rbx, rcx
movzx edx, byte [r10 + 9]
movzx eax, dl
and al, 7
cmp al, 3
jne case.0x18014cdda.8
xor dl, 7
mov byte [r10 + 9], dl
test dl, 0x20
je case.0x18014cdda.8
movzx eax, byte [r10 + 8]
add eax, 0xfffffffc
cmp eax, 0x22
ja case.0x18014cdda.8
cdqe
movzx eax, byte [rdi + rax + 0x14ce9c]
mov ecx, dword [rdi + rax*4 + 0x14ce88]
add rcx, rdi
jmp rcx
and dl, 0xe7
or dl, 0x20
mov byte [r10 + 9], dl
jmp case.0x18014cdda.8
mov rcx, qword [r10 + 0x10]
lea rax, [r10 + 0x18]
cmp rcx, rax
je 0x18014cdfd
and dl, 0xc7
jmp 0x18014ce03
and dl, 0xe7
or dl, 0x20
mov byte [r10 + 9], dl
test byte [rcx + 8], 0x40
je case.0x18014cdda.8
mov rdx, qword [rcx]
test byte [rdx + 9], 0x18
je case.0x18014cdda.8
mov rcx, rbx
call fcn.18014d520
jmp case.0x18014cdda.8
cmp word [r10 + 0xa], 0
jne case.0x18014cdda.5
mov rax, qword [r10 + 0x18]
test rax, rax
je 0x18014ce47
test byte [rax + 9], 0x18
je 0x18014ce47
mov rdx, rax
mov rcx, rbx
call fcn.18014d520
movzx edx, byte [r10 + 9]
and dl, 0xe7
or dl, 0x20
mov byte [r10 + 9], dl
jmp case.0x18014cdda.8
mov rcx, r10
call fcn.18014c230
mov rcx, qword [rbx + 0x88]
mov qword [rax], rcx
mov qword [rbx + 0x88], r10
and byte [r10 + 9], 0xc7
mov r10, qword [r10]
cmp r10, r11
jne 0x18014cd93
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret
Function at 0x18014e3e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rdi, rcx
xor ebp, ebp
mov rcx, rdx
mov esi, ebp
mov r15d, ebp
mov r12d, r8d
mov rbx, rdx
call fcn.180160940
movzx ecx, byte [rbx + 0xb]
mov r14d, 1
shl r14d, cl
test eax, eax
je 0x18014e45d
mov r10d, ebp
mov r11d, eax
nop dword [rax]
mov rax, qword [rbx + 0x10]
test byte [r10 + rax + 8], 0x40
je 0x18014e453
mov rdx, qword [r10 + rax]
test byte [rdx + 9], 0x18
je 0x18014e453
mov rcx, rdi
mov esi, 1
call fcn.18014d520
add r10, 0x10
sub r11, 1
jne 0x18014e430
mov r11d, ebp
test r14d, r14d
je 0x18014e502
nop dword [rax]
mov rdx, qword [rbx + 0x18]
mov ecx, r14d
sub ecx, r11d
mov eax, r11d
dec ecx
test r12d, r12d
cmovne eax, ecx
lea rcx, [rax + rax*2]
movzx eax, byte [rdx + rcx*8 + 8]
lea r10, [rdx + rcx*8]
movzx ecx, byte [rdx + rcx*8 + 9]
and cl, 0x40
test al, 0xf
jne 0x18014e4a9
test cl, cl
je 0x18014e4f6
mov byte [r10 + 9], 0xb
jmp 0x18014e4f6
test cl, cl
je 0x18014e4da
mov rdx, qword [r10 + 0x10]
test rdx, rdx
je 0x18014e4da
movzx ecx, byte [rdx + 8]
movzx r8d, byte [rdx + 9]
and cl, 0xf
cmp cl, 4
jne 0x18014e523
test r8b, 0x18
je 0x18014e4da
mov rcx, rdi
call fcn.18014d520
movzx eax, byte [r10 + 8]
and al, 0x40
test al, al
je 0x18014e4f6
mov rdx, qword [r10]
test byte [rdx + 9], 0x18
je 0x18014e4f6
mov rcx, rdi
mov esi, 1
call fcn.18014d520
inc r11d
cmp r11d, r14d
jb 0x18014e470
cmp byte [rdi + 0x65], 0
jne 0x18014e542
mov rcx, qword [rdi + 0x90]
mov qword [rbx + 0x30], rcx
mov qword [rdi + 0x90], rbx
and byte [rbx + 9], 0xc7
jmp 0x18014e5b3
and al, 0x40
test r8b, 0x18
je 0x18014e4dc
mov ebp, 1
test al, al
je 0x18014e4f6
mov rax, qword [r10]
test byte [rax + 9], 0x18
je 0x18014e4f6
mov r15d, ebp
jmp 0x18014e4f6
test r15d, r15d
je 0x18014e55f
mov rax, qword [rdi + 0xa0]
mov qword [rbx + 0x30], rax
mov qword [rdi + 0xa0], rbx
and byte [rbx + 9], 0xc7
jmp 0x18014e5b3
test ebp, ebp
je 0x18014e57b
mov rax, qword [rdi + 0xa8]
mov qword [rbx + 0x30], rax
mov qword [rdi + 0xa8], rbx
and byte [rbx + 9], 0xc7
jmp 0x18014e5b3
movzx eax, byte [rbx + 9]
movzx ecx, al
and cl, 7
cmp cl, 5
jne 0x18014e5a9
mov rcx, rbx
call fcn.18014c230
mov rcx, qword [rdi + 0x90]
mov qword [rax], rcx
mov qword [rdi + 0x90], rbx
and byte [rbx + 9], 0xc7
jmp 0x18014e5b3
cmp cl, 6
jne 0x18014e5b3
xor al, 2
mov byte [rbx + 9], al
mov rbx, qword [rsp + 0x40]
mov eax, esi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x18014e730
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, rcx
mov eax, 1
movzx ecx, byte [rdx + 0xb]
mov rbx, rdx
shl eax, cl
mov rcx, rdx
cdqe
lea r8, [rax + rax*2]
mov rax, qword [rdx + 0x18]
lea rbp, [rax + r8*8]
call fcn.180160940
xor esi, esi
test eax, eax
je 0x18014e7a8
mov r10d, esi
mov r11d, eax
nop word [rax + rax]
mov rax, qword [rbx + 0x10]
test byte [r10 + rax + 8], 0x40
je 0x18014e79e
mov rdx, qword [r10 + rax]
test byte [rdx + 9], 0x18
je 0x18014e79e
mov rcx, rdi
call fcn.18014d520
add r10, 0x10
sub r11, 1
jne 0x18014e780
mov r10, qword [rbx + 0x18]
cmp r10, rbp
jae 0x18014e805
movzx eax, byte [r10 + 8]
movzx ecx, byte [r10 + 9]
test al, 0xf
jne 0x18014e7cb
test cl, 0x40
je 0x18014e7fc
mov byte [r10 + 9], 0xb
jmp 0x18014e7fc
test cl, 0x40
je 0x18014e7e7
mov rdx, qword [r10 + 0x10]
test byte [rdx + 9], 0x18
je 0x18014e7e7
mov rcx, rdi
call fcn.18014d520
movzx eax, byte [r10 + 8]
test al, 0x40
je 0x18014e7fc
mov rdx, qword [r10]
test byte [rdx + 9], 0x18
je 0x18014e7fc
mov rcx, rdi
call fcn.18014d520
add r10, 0x18
cmp r10, rbp
jb 0x18014e7b1
movzx eax, byte [rbx + 9]
movzx ecx, al
and cl, 7
cmp cl, 5
jne 0x18014e870
movzx eax, byte [rbx + 8]
add eax, 0xfffffffb
cmp eax, 0x21
ja case.0x18014e83b.9
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x14e8a8]
mov ecx, dword [rdx + rax*4 + 0x14e890]
add rcx, rdx
jmp rcx
lea rsi, [rbx + 0x30]
jmp case.0x18014e83b.9
lea rsi, [rbx + 0x10]
jmp case.0x18014e83b.9
lea rsi, [rbx + 0x48]
jmp case.0x18014e83b.9
lea rsi, [rbx + 0x78]
jmp case.0x18014e83b.9
lea rsi, [rbx + 0x20]
mov rax, qword [rdi + 0x90]
mov qword [rsi], rax
mov qword [rdi + 0x90], rbx
and byte [rbx + 9], 0xc7
jmp 0x18014e87a
cmp cl, 6
jne 0x18014e87a
xor al, 2
mov byte [rbx + 9], al
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x18014f720
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x450
mov rax, qword [0x180515618]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov r13d, r8d
mov rbp, rdx
mov rbx, rcx
call fcn.18013c120
mov rcx, rbp
mov r15d, eax
call fcn.18019dd70
mov rcx, rbx
sub r15d, 1
jne 0x18014f79c
mov r8d, 1
mov rdx, rbp
call fcn.18014ff50
mov esi, eax
lea r14d, [r13 + 1]
mov rcx, rbp
call fcn.18019d468
test eax, eax
je 0x18014f925
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.18013e150
jmp 0x18014f942
lea edx, [r15 + 0x14]
lea r8, str.too_many_arguments
call fcn.18013de30
mov esi, 1
mov r14d, r13d
dec r15d
test esi, esi
je 0x18014f77a
mov edx, r14d
mov rcx, rbx
call fcn.18013d270
mov edx, r14d
mov rcx, rbx
cmp eax, 3
jne 0x18014f860
call fcn.18013dc10
mov rdi, rax
test rax, rax
jne 0x18014f813
mov rcx, rbp
call fcn.18019b74c
mov rdx, rbp
mov ecx, eax
mov edi, eax
call fcn.18019c648
lea rdx, [0x1801e4e9b]
mov rcx, rbx
call fcn.18013c770
xor esi, esi
cmp edi, 0xffffffff
setne sil
jmp 0x18014f903
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.18013db60
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.18013eb10
mov r9, rbp
mov r8, rdi
mov edx, 1
mov rcx, rax
call fcn.18019bb6c
add qword [rsp + 0x30], rax
lea rcx, [rsp + 0x20]
mov rdi, rax
call fcn.18013eb20
xor esi, esi
test rdi, rdi
setne sil
jmp 0x18014f903
xor r8d, r8d
call fcn.18013dca0
movzx ecx, byte [rax]
cmp cl, 0x2a
jne 0x18014f874
movzx ecx, byte [rax + 1]
cmp cl, 0x4c
je 0x18014f8f3
cmp cl, 0x61
je 0x18014f8a1
cmp cl, 0x6c
je 0x18014f899
cmp cl, 0x6e
mov rcx, rbx
jne 0x18014f914
mov rdx, rbp
call fcn.180150080
jmp 0x18014f901
mov r8d, 1
jmp 0x18014f8f6
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.18013db60
nop
mov edx, 0x400
lea rcx, [rsp + 0x20]
call fcn.18013eb10
mov r9, rbp
mov edx, 1
mov r8d, 0x400
mov rcx, rax
call fcn.18019bb6c
add qword [rsp + 0x30], rax
cmp rax, 0x400
je 0x18014f8b0
lea rcx, [rsp + 0x20]
call fcn.18013eb20
mov esi, 1
jmp 0x18014f903
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call fcn.18014ff50
mov esi, eax
inc r14d
test r15d, r15d
jne 0x18014f7b4
jmp 0x18014f77a
lea r8, str.invalid_format
mov edx, r14d
call fcn.18013da50
jmp 0x18014f942
test esi, esi
jne 0x18014f93c
lea edx, [rsi - 2]
mov rcx, rbx
call fcn.18013cdd0
mov rcx, rbx
call fcn.18013c740
sub r14d, r13d
mov eax, r14d
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.180169060
add rsp, 0x450
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180155420
Capabilities:
Check http status code

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x110
mov rax, qword [0x180515618]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov r14, rdx
mov rbx, rcx
lea rdx, [rsp + 0x20]
call fcn.180154850
mov r9, rax
test rax, rax
je 0x180155479
mov r8, qword [rsp + 0x20]
mov al, 3
sub r9, rbx
mov qword [r14], r8
mov byte [r14 + 8], al
lea rax, [r9 + 1]
jmp 0x1801555fa
lea rdx, [0x1801ef460]
mov rcx, rbx
call fcn.1801a22b0
test rax, rax
je 0x1801554b0
movzx edi, byte [rax]
or edi, 0x20
cmp edi, 0x6e
je 0x1801555f8
cmp edi, 0x78
jne 0x1801554b2
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.180155760
jmp 0x1801554bf
xor edi, edi
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.18019b514
mov rcx, qword [rsp + 0x20]
lea rbp, [0x1801edc20]
cmp rcx, rbx
je 0x180155505
movzx eax, byte [rcx]
test byte [rax + rbp + 1], 8
je 0x1801554f2
nop word [rax + rax]
inc rcx
mov qword [rsp + 0x20], rcx
movzx eax, byte [rcx]
test byte [rax + rbp + 1], 8
jne 0x1801554e0
xor r9d, r9d
cmp byte [rcx], r9b
cmove r9, rcx
test r9, r9
jne 0x1801555e4
mov edx, 0x2e
mov rcx, rbx
call fcn.180186890
mov rsi, rax
test rax, rax
je 0x1801555f8
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rbx + rcx], 0
jne 0x180155525
cmp rcx, 0xc8
ja 0x1801555f8
lea rdx, [rsp + 0x30]
mov rcx, rbx
sub rdx, rbx
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x180155550
call fcn.180197234
sub rsi, rbx
lea rdx, [rsp + 0x20]
mov rcx, qword [rax]
movzx eax, byte [rcx]
lea rcx, [rsp + 0x30]
mov byte [rsp + rsi + 0x30], al
cmp edi, 0x78
jne 0x180155586
call fcn.180155760
jmp 0x18015558b
call fcn.18019b514
mov rcx, qword [rsp + 0x20]
lea rax, [rsp + 0x30]
cmp rcx, rax
je 0x1801555f8
movzx eax, byte [rcx]
test byte [rax + rbp + 1], 8
je 0x1801555c2
nop dword [rax]
nop dword [rax + rax]
inc rcx
mov qword [rsp + 0x20], rcx
movzx eax, byte [rcx]
test byte [rax + rbp + 1], 8
jne 0x1801555b0
xor r9d, r9d
cmp byte [rcx], r9b
cmove r9, rcx
test r9, r9
je 0x1801555f8
lea rcx, [rsp + 0x30]
mov rax, rbx
sub rax, rcx
add r9, rax
test r9, r9
je 0x1801555f8
mov al, reloc.WS2_32.dll_send
movsd qword [r14], xmm0
sub r9, rbx
mov byte [r14 + 8], al
lea rax, [r9 + 1]
jmp 0x1801555fa
xor eax, eax
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.180169060
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x180155760
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x20
mov qword [rsp + 0x50], rbx
mov r12, rdx
mov rbx, rcx
call fcn.180197234
xor edi, edi
lea r13, [0x1801edc20]
xorps xmm1, xmm1
mov r10d, edi
mov esi, edi
mov r9d, edi
mov r8, qword [rax]
mov r11d, edi
movsx r14d, byte [r8]
mov qword [r12], rbx
movzx eax, byte [rbx]
test byte [rax + r13 + 1], 8
je 0x1801557bf
nop
movzx eax, byte [rbx + 1]
inc rbx
test byte [rax + r13 + 1], 8
jne 0x1801557b0
mov qword [rsp + 0x58], r15
lea rdx, [rbx + 1]
mov ebp, 1
cmp al, 0x2d
jne 0x1801557d6
mov r15d, ebp
jmp 0x1801557df
cmp al, 0x2b
mov r15d, edi
cmovne rdx, rbx
cmp byte [rdx], 0x30
mov rbx, qword [rsp + 0x50]
jne 0x180155917
movzx eax, byte [rdx + 1]
sub al, 0x58
test al, 0xdf
jne 0x180155917
movsd xmm2, qword [0x1801ef4c8]
add rdx, 2
nop word [rax + rax]
movzx r8d, byte [rdx]
movsx rcx, r8b
cmp ecx, r14d
jne 0x18015582a
test r11d, r11d
jne 0x18015587f
mov r11d, ebp
inc rdx
jmp 0x180155810
test byte [r8 + r13 + 1], 0x10
je 0x18015587f
test r10d, r10d
jne 0x180155841
cmp r8b, 0x30
jne 0x180155841
inc esi
jmp 0x180155872
inc r10d
cmp r10d, 0x1e
jg 0x18015586f
test byte [rcx + r13 + 1], 2
je 0x180155857
add ecx, 0xffffffd0
jmp 0x18015585d
or ecx, 0x20
sub ecx, 0x57
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm1, xmm0
jmp 0x180155872
inc r9d
test r11d, r11d
je 0x18015587a
dec r9d
inc rdx
jmp 0x180155810
lea eax, [rsi + r10]
test eax, eax
je 0x180155917
mov qword [r12], rdx
lea r9d, [r9*4]
movzx eax, byte [rdx]
sub al, 0x50
test al, 0xdf
jne 0x1801558fe
movzx ecx, byte [rdx + 1]
cmp cl, 0x2d
jne 0x1801558b0
mov eax, 2
jmp 0x1801558be
cmp cl, 0x2b
mov rax, rdi
mov ebp, edi
sete al
inc rax
lea r8, [rdx + rax]
movzx edx, byte [rdx + rax]
test byte [rdx + r13 + 1], 2
je 0x180155917
nop
movsx eax, dl
lea edi, [rdi + rdi*4]
inc r8
lea edi, [rdi - 0x18]
lea edi, [rax + rdi*2]
movzx eax, byte [r8]
movzx edx, al
test byte [rax + r13 + 1], 2
jne 0x1801558d0
mov eax, edi
mov qword [r12], r8
neg eax
test ebp, ebp
cmove eax, edi
add r9d, eax
test r15d, r15d
je 0x18015590a
xorps xmm1, xmmword [0x1801e7b70]
mov edx, r9d
movaps xmm0, xmm1
call fcn.18019dad4
jmp 0x18015591a
xorps xmm0, xmm0
mov r15, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret

Function at 0x18015b520
Capabilities:
Encode data using xor

Disassembly:
mov eax, edx
mov r9, rcx
xor eax, r8d
test rdx, rdx
je 0x18015b54f
nop dword [rax]
movzx r8d, byte [r9 + rdx - 1]
mov ecx, eax
shl ecx, 5
add r8d, ecx
mov ecx, eax
shr ecx, 2
add r8d, ecx
xor eax, r8d
sub rdx, 1
jne 0x18015b530
ret
Function at 0x18015b7b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
mov rsi, r8
mov rbp, rdx
cmp r8, 0x28
ja 0x18015b7d5
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
jmp fcn.18015b270
movabs rax, 0x7fffffffffffffdf
cmp rsi, rax
jae 0x18015b83d
mov rax, qword [rcx + 0x18]
add r8, 0x19
mov qword [rsp + 0x30], rbx
mov edx, 0x14
mov qword [rsp + 0x38], rdi
mov ebx, dword [rax + 0x60]
call fcn.18014c6a0
mov r8, rsi
mov rdx, rbp
mov rdi, rax
mov dword [rax + 0xc], ebx
lea rcx, [rax + 0x18]
mov byte [rax + 0xa], 0
mov byte [rax + rsi + 0x18], 0
mov qword [rax + 0x10], rsi
call fcn.180185a30
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
call fcn.1801533e0
int3

Function at 0x18016c5b0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [rsp + 0x78]
sub rax, 0x10000
mov rcx, rax
call fcn.18016c800
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x20], rax
jbe 0x18016c6ca
mov rax, qword [0x1805156b8]
cmp qword [rsp + 0x20], rax
jb 0x18016c614
mov rax, qword [0x1805156c0]
cmp qword [rsp + 0x20], rax
ja 0x18016c614
mov rax, qword [rsp + 0x20]
sub rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x18016c5d6
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.180186390
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_VirtualQuery
test rax, rax
jne 0x18016c645
jmp 0x18016c6ca
cmp dword [rsp + 0x50], 0x10000
jne 0x18016c6ad
cmp qword [rsp + 0x48], 0x10000
jb 0x18016c6ad
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_VirtualAlloc
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x18016c68b
mov rax, qword [rsp + 0x28]
jmp 0x18016c6cc
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x677
jne 0x18016c69b
xor eax, eax
jmp 0x18016c6cc
mov rax, qword [rsp + 0x20]
sub rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x18016c6c5
mov rax, qword [rsp + 0x38]
sub rax, 0x10000
mov rcx, rax
call fcn.18016c800
mov qword [rsp + 0x20], rax
jmp 0x18016c5d6
xor eax, eax
add rsp, 0x68
ret
Function at 0x18016c6e0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rcx, qword [rsp + 0x70]
call fcn.18016c840
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x78]
cmp qword [rsp + 0x20], rax
jae 0x18016c7f6
mov rax, qword [0x1805156b8]
cmp qword [rsp + 0x20], rax
jb 0x18016c73b
mov rax, qword [0x1805156c0]
cmp qword [rsp + 0x20], rax
ja 0x18016c73b
mov rax, qword [rsp + 0x20]
add rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x18016c6fd
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.180186390
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_VirtualQuery
test rax, rax
jne 0x18016c76c
jmp 0x18016c7f6
cmp dword [rsp + 0x50], 0x10000
jne 0x18016c7d4
cmp qword [rsp + 0x48], 0x10000
jb 0x18016c7d4
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_VirtualAlloc
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x18016c7b2
mov rax, qword [rsp + 0x28]
jmp 0x18016c7f8
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x677
jne 0x18016c7c2
xor eax, eax
jmp 0x18016c7f8
mov rax, qword [rsp + 0x20]
add rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x18016c7f1
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov rcx, rax
call fcn.18016c840
mov qword [rsp + 0x20], rax
jmp 0x18016c6fd
xor eax, eax
add rsp, 0x68
ret