joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1803a6030
Capabilities:
Encrypt data via sspi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rbp, r8
mov r12, rdx
mov rdi, rcx
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.1803a7530
mov eax, dword [rsp + 0x30]
cmp eax, 2
jne 0x1803a6071
mov rdx, qword [rsp + 0x38]
mov esi, 1
jmp 0x1803a62c1
mov esi, 1
test eax, eax
je 0x1803a61d2
mov r9, qword [rdi + 0x190]
mov rbx, qword [rdi + 0x198]
cmp rbx, r9
jne 0x1803a6217
mov r14, qword [rsp + 0x38]
mov r13d, r14d
shr r14, 0x20
cmp r14, rbp
cmovae r14, rbp
mov r15d, dword [rsp + 0x34]
lea rbp, [r14 + r15]
add r13, rbp
sub r13, rbx
jbe 0x1803a6108
mov rax, qword [rdi + 0x180]
sub rax, rbx
cmp rax, r13
jb 0x1803a62d8
mov rax, qword [rdi + 0x188]
lea rcx, [rax + rbx]
cmp r13, 2
jb 0x1803a60fb
lea r8, [r13 - 1]
xor edx, edx
mov qword [rsp + 0x70], rax
call fcn.1804691b0
add rbx, r13
dec rbx
mov rcx, qword [rsp + 0x70]
add rcx, rbx
mov byte [rcx], 0
inc rbx
mov qword [rdi + 0x190], rbx
cmp rbp, rbx
ja 0x1803a631a
mov rcx, qword [rdi + 0x188]
add rcx, r15
mov rdx, r12
mov r8, r14
call fcn.180468b10
mov rax, qword [rdi + 0x190]
cmp rax, r15
jb 0x1803a631a
cmp rax, rbp
jb 0x1803a631a
mov rcx, qword [rdi + 0x188]
lea rdx, [rcx + r15]
sub eax, ebp
add rbp, rcx
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x34], 7
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x44], 1
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], 6
mov qword [rsp + 0x58], rbp
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movabs rax, 0x400000000
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x80], rax
lea rcx, [rdi + 0x1f0]
lea r8, [rsp + 0x78]
xor edx, edx
xor r9d, r9d
call qword [sym.imp.secur32.dll_EncryptMessage]
test eax, eax
je 0x1803a61e1
mov edx, eax
shl rdx, 0x20
or rdx, 2
jmp 0x1803a62c1
movabs rdx, 0x8009031700000002
jmp 0x1803a62c1
mov eax, dword [rsp + 0x40]
add eax, dword [rsp + 0x30]
add eax, dword [rsp + 0x50]
mov r9, qword [rdi + 0x190]
cmp r9, rax
jb 0x1803a6203
mov qword [rdi + 0x190], rax
mov r9, rax
mov qword [rdi + 0x198], 0
mov qword [rdi + 0x218], r14
xor ebx, ebx
cmp rbx, r9
je 0x1803a62b8
lea r14, [rdi + 0x10]
lea r15, [rdi + 0x18]
movabs r13, 0xd00000003
lea r12, [rsp + 0x30]
nop word [rax + rax]
sub r9, rbx
jb 0x1803a631a
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x1803a631a
mov r8, qword [rdi + 0x188]
add r8, rbx
cmp dword [r14], 2
jne 0x1803a6280
mov rcx, r15
call fcn.180407930
cmp rax, 2
cmove rdx, r13
test rax, rax
je 0x1803a62a2
jmp 0x1803a62c1
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov rcx, r14
mov r8, r12
call fcn.180379f40
cmp rax, 2
cmove rdx, r13
test rax, rax
jne 0x1803a62c1
add rbx, rdx
mov qword [rdi + 0x198], rbx
mov r9, qword [rdi + 0x190]
cmp rbx, r9
jne 0x1803a6240
mov rdx, qword [rdi + 0x218]
xor esi, esi
mov rax, rsi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rdi + 0x180]
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rdx, rbx
mov r8, r13
call fcn.180469640
mov rbx, qword [rdi + 0x190]
mov rax, qword [rdi + 0x188]
lea rcx, [rax + rbx]
cmp r13, 2
jae 0x1803a60dd
jmp 0x1803a60fb
ud2
Function at 0x1803abc10
Capabilities:
Get remote cert context via schannel

Disassembly:
sub rsp, 0x28
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
mov edx, 0x53
call qword [sym.imp.secur32.dll_QueryContextAttributesW]
mov edx, eax
xor eax, eax
test edx, edx
setne cl
jne 0x1803abc44
mov rdx, qword [rsp + 0x20]
mov al, cl
add rsp, 0x28
ret
shl rdx, 0x20
or rdx, 2
mov al, cl
add rsp, 0x28
ret
Function at 0x1803b5ff0
Capabilities:
Check for software breakpoints

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x2848
call fcn.18045a590
sub rsp, rax
movaps xmmword [rsp + 0x2830], xmm6
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x40], rcx
mov rdi, qword [r8]
mov r14, qword [r8 + 8]
lea rax, [r8 + 0x20]
mov qword [rsp + 0x1b0], rax
movzx eax, byte [r8 + 0x28]
mov byte [rsp + 0x3d], al
movzx eax, byte [r8 + 0x21]
mov byte [rsp + 0x3f], al
lea r13, [rsp + 0x68]
mov rdx, r14
shl rdx, 5
mov rax, r14
shr rax, 0x3b
setne al
movabs rcx, 0x7ffffffffffffff8
mov qword [rsp + 0x98], rdx
cmp rdx, rcx
mov rcx, qword [r8 + 0x10]
seta dl
or dl, al
mov byte [rsp + 0x3c], dl
movzx eax, byte [r8 + 0x27]
mov byte [rsp + 0x3e], al
mov rax, qword [r8 + 0x18]
mov qword [rsp + 0x1a0], rax
xorps xmm6, xmm6
mov qword [rsp + 0x1a8], rcx
lea rax, [rcx + 8]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], r14
mov qword [rsp + 0x198], rdi
Function at 0x1803c1870
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xa8
mov rsi, rdx
mov rdi, rcx
add rcx, 0x48
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
mov r8d, 0x20
call fcn.1803fc2a0
test rax, rax
je 0x1803c18d2
mov rbx, rax
mov r14, rdx
mov rax, qword [rdx]
test rax, rax
je 0x1803c18bb
mov rcx, rbx
call rax
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x1803c1922
mov r8, qword [r14 + 0x10]
mov rcx, rbx
call fcn.1802cbf20
jmp 0x1803c1922
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x70]
lea r8, [0x1804a92b0]
lea rdx, [rsp + 0x40]
mov r9d, 8
call fcn.1803fc160
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov edx, 6
mov r8, rsi
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r14
jmp fcn.1803f9d70
Function at 0x1803d5130
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
mov r8, rdx
mov rax, qword [rcx + 0x38]
test rax, rax
jle 0x1803d5157
cmp qword [rcx + 0x40], 0
js 0x1803d5157
add rax, 0xffffffffffffff00
mov qword [rcx + 0x38], rax
mov edx, 6
jmp fcn.1803f9d70
mov rdx, r8
jmp fcn.1803d5160

Function at 0x1803d5160
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xa8
mov rsi, rdx
mov rdi, rcx
add rcx, 0x48
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
mov r8d, 0x20
call fcn.1803fc2a0
test rax, rax
je 0x1803d51c2
mov rbx, rax
mov r14, rdx
mov rax, qword [rdx]
test rax, rax
je 0x1803d51ab
mov rcx, rbx
call rax
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x1803d5212
mov r8, qword [r14 + 0x10]
mov rcx, rbx
call fcn.1802cbf20
jmp 0x1803d5212
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x70]
lea r8, [0x1804a996f]
lea rdx, [rsp + 0x40]
mov r9d, 8
call fcn.1803fc160
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov edx, 6
mov r8, rsi
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r14
jmp fcn.1803f9d70
Function at 0x1803ecb30
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
mov r8, rdx
mov rax, qword [rcx + 0x38]
test rax, rax
jle 0x1803ecb57
cmp qword [rcx + 0x40], 0
js 0x1803ecb57
add rax, 0xffffffffffffff00
mov qword [rcx + 0x38], rax
mov edx, 6
jmp fcn.1803f9d70
mov rdx, r8
jmp fcn.1803eccb0

Function at 0x1803eccb0
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xa8
mov rsi, rdx
mov rdi, rcx
add rcx, 0x48
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
mov r8d, 0x20
call fcn.1803fc2a0
test rax, rax
je 0x1803ecd12
mov rbx, rax
mov r14, rdx
mov rax, qword [rdx]
test rax, rax
je 0x1803eccfb
mov rcx, rbx
call rax
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x1803ecd62
mov r8, qword [r14 + 0x10]
mov rcx, rbx
call fcn.1802cbf20
jmp 0x1803ecd62
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x70]
lea r8, [0x1804dfd70]
lea rdx, [rsp + 0x40]
mov r9d, 8
call fcn.1803fc160
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov edx, 6
mov r8, rsi
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r14
jmp fcn.1803f9d70
Function at 0x1803fc540
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
test rdx, rdx
je 0x1803fc5b2
mov rsi, rdx
mov rdi, rcx
mov r14d, 0xffffffff
mov r15, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
mov r12, qword [sym.imp.advapi32.dll_SystemFunction036]
jmp 0x1803fc578
add rdi, rbx
sub rsi, rbx
je 0x1803fc5b2
cmp rsi, r14
mov ebx, 0xffffffff
cmovb rbx, rsi
xor ecx, ecx
mov rdx, rdi
mov r8d, ebx
mov r9d, 2
call r15
cmp eax, 0xbfffffff
jbe 0x1803fc570
mov ebp, eax
mov rcx, rdi
mov edx, ebx
call r12
test al, al
jne 0x1803fc570
add ebp, 0x80000000
jmp 0x1803fc5b4
xor ebp, ebp
mov eax, ebp
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x1804059e0
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, 0x48
mov r12, r9
mov r9d, r8d
mov rdi, rdx
mov r14, qword [rcx + 0x10]
lea rcx, [rsp + 0x28]
mov rdx, r14
mov r8, rdi
mov byte [rsp + 0x27], r9b
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
mov esi, 2
cmp al, 3
jne 0x180405a25
jmp 0x180405b7f
mov r13, qword [r12]
mov rcx, qword [r12 + 8]
mov qword [rsp + 0x40], rcx
add r13, 0x18
mov rcx, qword [r12 + 0x10]
mov qword [rsp + 0x38], rcx
lea rsi, [rsp + 0x28]
jmp 0x180405a8a
dec r15
mov edx, 0x18
mov r8d, 8
mov rcx, r15
call fcn.1802cbf20
mov rsi, rbx
mov rcx, rbx
mov rdx, r14
mov r8, rdi
movzx r9d, byte [rsp + 0x27]
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
je 0x180405b7a
mov rbp, qword [rsp + 0x28]
cmp al, 2
je 0x180405b6f
cmp qword [r13], 0xffffffffffffffff
je 0x180405b99
movzx r12d, byte [rsp + 0x30]
mov qword [rsp + 0x28], r13
mov rbx, rsi
mov rcx, rsi
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
call fcn.18041c110
mov r15, rdx
test rax, rax
je 0x180405b76
mov rsi, rax
mov rcx, r15
call fcn.1804054b0
cmp al, 0xd
jne 0x180405b82
and ebp, 0x23
mov rax, qword [r14 + 0x90]
xor rbp, 0x2f
mov rcx, r12
shl rcx, 0x10
nop word cs:[rax + rax]
mov edx, eax
shr edx, 0x10
cmp r12b, dl
jne 0x180405b1c
mov edx, eax
and edx, ebp
or rdx, rcx
lock cmpxchg qword [r14 + 0x90], rdx
jne 0x180405b00
mov eax, r15d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x180405a66
test rax, rax
je 0x180405a66
mov rsi, qword [r15 - 1]
mov r12, qword [r15 + 7]
mov rax, qword [r12]
test rax, rax
je 0x180405b4f
mov rcx, rsi
call rax
mov rdx, qword [r12 + 8]
test rdx, rdx
je 0x180405a50
mov r8, qword [r12 + 0x10]
mov rcx, rsi
call fcn.1802cbf20
jmp 0x180405a50
mov esi, 1
jmp 0x180405b7f
xor esi, esi
jmp 0x180405b82
mov esi, 2
mov r15, rbp
mov rax, rsi
mov rdx, r15
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2

Function at 0x180405d80
Capabilities:
Encode data using xor

Disassembly:
mov rax, qword [rcx]
nop word cs:[rax + rax]
mov rdx, rax
xor rdx, 3
lock cmpxchg qword [rcx], rdx
jne 0x180405d90
test al, 1
je 0x180405dab
test al, 2
jne 0x180405dab
xor rax, 3
ret
ud2

Function at 0x180407880
Capabilities:
Set socket configuration

Disassembly:
cmp qword [rcx + 0x18], 0xffffffffffffffff
je 0x180407890
add rcx, 0x18
jmp 0x18041c0d0
ud2
jmp 0x180429360
sub rsp, 0x38
movzx eax, dl
mov rcx, qword [rcx]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov edx, 6
mov r8d, 1
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x180429398
xor eax, eax
add rsp, 0x38
ret
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret
Function at 0x180407920
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x18040fb40
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx + 0x18], 0xffffffffffffffff
je 0x18040fb8a
mov r15, qword [rbx + 0x10]
lea rcx, [rsp + 0x20]
mov rdx, r15
mov r8, rdi
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
jne 0x18040fbb5
mov eax, 1
jmp 0x18040fd23
mov rdx, qword [rbx + 0x10]
lea rcx, [rsp + 0x20]
mov r8, rdi
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
jne 0x18040fcec
mov eax, 1
jmp 0x18040fd23
add rbx, 0x18
lea r13, [rsp + 0x20]
mov qword [rsp + 0x30], rdi
jmp 0x18040fc0f
dec r13
mov edx, 0x18
mov r8d, 8
mov rcx, r13
call fcn.1802cbf20
mov r13, rbx
mov rcx, rbx
mov rdx, r15
mov r8, qword [rsp + 0x30]
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
mov rbx, rsi
mov rsi, r14
je 0x18040fb80
mov rbp, qword [rsp + 0x20]
cmp al, 2
je 0x18040fcf5
mov r8, qword [rsi + 8]
mov r12, qword [rsi + 0x10]
sub r8, r12
jb 0x18040fd3f
movzx edi, byte [rsp + 0x28]
mov r14, rsi
mov rdx, qword [rsi]
add rdx, r12
mov rsi, rbx
mov qword [rsp + 0x20], rbx
mov rbx, r13
mov rcx, r13
call fcn.18041c0f0
mov r13, rdx
test rax, rax
je 0x18040fcf9
mov rcx, r13
call fcn.18040f7e0
cmp al, 0xd
jne 0x18040fd1e
and ebp, 0x23
mov rax, qword [r15 + 0x90]
xor rbp, 0x2f
mov rcx, rdi
shl rcx, 0x10
nop
mov edx, eax
shr edx, 0x10
cmp dil, dl
jne 0x18040fc9c
mov edx, eax
and edx, ebp
or rdx, rcx
lock cmpxchg qword [r15 + 0x90], rdx
jne 0x18040fc80
mov eax, r13d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x18040fbe6
test rax, rax
je 0x18040fbe6
mov rbp, qword [r13 - 1]
mov rdi, qword [r13 + 7]
mov rax, qword [rdi]
test rax, rax
je 0x18040fcce
mov rcx, rbp
call rax
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x18040fbd0
mov r8, qword [rdi + 0x10]
mov rcx, rbp
call fcn.1802cbf20
jmp 0x18040fbd0
cmp al, 2
jne 0x18040fd37
mov rbp, qword [rsp + 0x20]
xor eax, eax
jmp 0x18040fd23
lea rax, [r12 + r13]
mov rcx, qword [r14 + 0x18]
cmp rax, rcx
jbe 0x18040fd0d
mov qword [r14 + 0x18], rax
mov rcx, rax
add r12, r13
jb 0x18040fd3f
cmp rax, rcx
ja 0x18040fd3f
mov qword [r14 + 0x10], rax
xor r13d, r13d
xor eax, eax
mov rbp, r13
mov rdx, rbp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi + 8]
ud2
Function at 0x180407930
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x18040fd50
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r8
mov rdi, rdx
mov r15, rcx
cmp qword [rcx + 0x18], 0xffffffffffffffff
je 0x18040fda1
mov r12, qword [r15 + 0x10]
lea rcx, [rsp + 0x28]
mov rdx, r12
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
jne 0x18040fdcc
mov eax, 2
jmp 0x18040ff06
mov rdx, qword [r15 + 0x10]
lea rcx, [rsp + 0x28]
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
jne 0x18040feec
mov eax, 2
jmp 0x18040ff06
add r15, 0x18
lea rsi, [rsp + 0x28]
jmp 0x18040fe13
dec r13
mov edx, 0x18
mov r8d, 8
mov rcx, r13
call fcn.1802cbf20
mov rsi, r14
mov rcx, r14
mov rdx, r12
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
je 0x18040fd97
mov rbp, qword [rsp + 0x28]
cmp al, 2
je 0x18040ff01
movzx ebx, byte [rsp + 0x30]
mov qword [rsp + 0x28], r15
mov r14, rsi
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call fcn.18041c100
mov rsi, rax
mov r13, rdx
test rax, rax
je 0x18040fefc
mov rcx, r13
call fcn.18040f7e0
cmp al, 0xd
jne 0x18040fefc
and ebp, 0x23
mov rax, qword [r12 + 0x90]
xor rbp, 0x2f
mov rcx, rbx
shl rcx, 0x10
nop word cs:[rax + rax]
mov edx, eax
shr edx, 0x10
cmp bl, dl
jne 0x18040fe9c
mov edx, eax
and edx, ebp
or rdx, rcx
lock cmpxchg qword [r12 + 0x90], rdx
jne 0x18040fe80
mov eax, r13d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x18040fdf6
test rax, rax
je 0x18040fdf6
mov rsi, qword [r13 - 1]
mov rbx, qword [r13 + 7]
mov rax, qword [rbx]
test rax, rax
je 0x18040fece
mov rcx, rsi
call rax
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x18040fde0
mov r8, qword [rbx + 0x10]
mov rcx, rsi
call fcn.1802cbf20
jmp 0x18040fde0
cmp al, 2
jne 0x18040ff1d
mov r13, qword [rsp + 0x28]
mov eax, 1
jmp 0x18040ff09
mov rax, rsi
jmp 0x18040ff09
mov eax, 1
mov r13, rbp
mov rdx, r13
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
Function at 0x18040c660
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rcx, qword [rcx]
add rcx, 0x10
jmp 0x18040fb40

Function at 0x18040fb40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x18040fb40
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx + 0x18], 0xffffffffffffffff
je 0x18040fb8a
mov r15, qword [rbx + 0x10]
lea rcx, [rsp + 0x20]
mov rdx, r15
mov r8, rdi
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
jne 0x18040fbb5
mov eax, 1
jmp 0x18040fd23
mov rdx, qword [rbx + 0x10]
lea rcx, [rsp + 0x20]
mov r8, rdi
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
jne 0x18040fcec
mov eax, 1
jmp 0x18040fd23
add rbx, 0x18
lea r13, [rsp + 0x20]
mov qword [rsp + 0x30], rdi
jmp 0x18040fc0f
dec r13
mov edx, 0x18
mov r8d, 8
mov rcx, r13
call fcn.1802cbf20
mov r13, rbx
mov rcx, rbx
mov rdx, r15
mov r8, qword [rsp + 0x30]
xor r9d, r9d
call fcn.1804057e0
movzx eax, byte [rsp + 0x29]
cmp al, 3
mov rbx, rsi
mov rsi, r14
je 0x18040fb80
mov rbp, qword [rsp + 0x20]
cmp al, 2
je 0x18040fcf5
mov r8, qword [rsi + 8]
mov r12, qword [rsi + 0x10]
sub r8, r12
jb 0x18040fd3f
movzx edi, byte [rsp + 0x28]
mov r14, rsi
mov rdx, qword [rsi]
add rdx, r12
mov rsi, rbx
mov qword [rsp + 0x20], rbx
mov rbx, r13
mov rcx, r13
call fcn.18041c0f0
mov r13, rdx
test rax, rax
je 0x18040fcf9
mov rcx, r13
call fcn.18040f7e0
cmp al, 0xd
jne 0x18040fd1e
and ebp, 0x23
mov rax, qword [r15 + 0x90]
xor rbp, 0x2f
mov rcx, rdi
shl rcx, 0x10
nop
mov edx, eax
shr edx, 0x10
cmp dil, dl
jne 0x18040fc9c
mov edx, eax
and edx, ebp
or rdx, rcx
lock cmpxchg qword [r15 + 0x90], rdx
jne 0x18040fc80
mov eax, r13d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x18040fbe6
test rax, rax
je 0x18040fbe6
mov rbp, qword [r13 - 1]
mov rdi, qword [r13 + 7]
mov rax, qword [rdi]
test rax, rax
je 0x18040fcce
mov rcx, rbp
call rax
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x18040fbd0
mov r8, qword [rdi + 0x10]
mov rcx, rbp
call fcn.1802cbf20
jmp 0x18040fbd0
cmp al, 2
jne 0x18040fd37
mov rbp, qword [rsp + 0x20]
xor eax, eax
jmp 0x18040fd23
lea rax, [r12 + r13]
mov rcx, qword [r14 + 0x18]
cmp rax, rcx
jbe 0x18040fd0d
mov qword [r14 + 0x18], rax
mov rcx, rax
add r12, r13
jb 0x18040fd3f
cmp rax, rcx
ja 0x18040fd3f
mov qword [r14 + 0x10], rax
xor r13d, r13d
xor eax, eax
mov rbp, r13
mov rdx, rbp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi + 8]
ud2
Function at 0x18040fd50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x18040fd50
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r8
mov rdi, rdx
mov r15, rcx
cmp qword [rcx + 0x18], 0xffffffffffffffff
je 0x18040fda1
mov r12, qword [r15 + 0x10]
lea rcx, [rsp + 0x28]
mov rdx, r12
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
jne 0x18040fdcc
mov eax, 2
jmp 0x18040ff06
mov rdx, qword [r15 + 0x10]
lea rcx, [rsp + 0x28]
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
jne 0x18040feec
mov eax, 2
jmp 0x18040ff06
add r15, 0x18
lea rsi, [rsp + 0x28]
jmp 0x18040fe13
dec r13
mov edx, 0x18
mov r8d, 8
mov rcx, r13
call fcn.1802cbf20
mov rsi, r14
mov rcx, r14
mov rdx, r12
mov r8, rdi
mov r9b, 1
call fcn.1804057e0
movzx eax, byte [rsp + 0x31]
cmp al, 3
je 0x18040fd97
mov rbp, qword [rsp + 0x28]
cmp al, 2
je 0x18040ff01
movzx ebx, byte [rsp + 0x30]
mov qword [rsp + 0x28], r15
mov r14, rsi
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call fcn.18041c100
mov rsi, rax
mov r13, rdx
test rax, rax
je 0x18040fefc
mov rcx, r13
call fcn.18040f7e0
cmp al, 0xd
jne 0x18040fefc
and ebp, 0x23
mov rax, qword [r12 + 0x90]
xor rbp, 0x2f
mov rcx, rbx
shl rcx, 0x10
nop word cs:[rax + rax]
mov edx, eax
shr edx, 0x10
cmp bl, dl
jne 0x18040fe9c
mov edx, eax
and edx, ebp
or rdx, rcx
lock cmpxchg qword [r12 + 0x90], rdx
jne 0x18040fe80
mov eax, r13d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x18040fdf6
test rax, rax
je 0x18040fdf6
mov rsi, qword [r13 - 1]
mov rbx, qword [r13 + 7]
mov rax, qword [rbx]
test rax, rax
je 0x18040fece
mov rcx, rsi
call rax
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x18040fde0
mov r8, qword [rbx + 0x10]
mov rcx, rsi
call fcn.1802cbf20
jmp 0x18040fde0
cmp al, 2
jne 0x18040ff1d
mov r13, qword [rsp + 0x28]
mov eax, 1
jmp 0x18040ff09
mov rax, rsi
jmp 0x18040ff09
mov eax, 1
mov r13, rbp
mov rdx, r13
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2

Function at 0x18040ff20
Capabilities:
Set socket configuration

Disassembly:
jmp 0x180419750
sub rsp, 0x38
mov rcx, qword [rcx]
movzx eax, dl
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov edx, 0xffff
mov r8d, 4
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x180419788
xor eax, eax
add rsp, 0x38
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret

Function at 0x18040ff30
Capabilities:
Set socket configuration

Disassembly:
mov edx, edx
jmp 0x1804197a0
sub rsp, 0x38
mov rcx, qword [rcx]
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov edx, 0xffff
mov r8d, 0x1001
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x1804197d5
xor eax, eax
add rsp, 0x38
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret
Function at 0x18040ff40
Capabilities:
Set socket configuration

Disassembly:
mov edx, edx
jmp 0x180419700
sub rsp, 0x38
mov rcx, qword [rcx]
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov edx, 0xffff
mov r8d, 0x1002
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x180419735
xor eax, eax
add rsp, 0x38
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret

Function at 0x180413ab0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x50
mov rsi, rcx
mov rax, qword [rcx]
nop dword [rax + rax]
mov rcx, rax
xor rcx, 3
lock cmpxchg qword [rsi], rcx
jne 0x180413ac0
test al, 1
je 0x180413bb3
test al, 2
jne 0x180413bb3
test al, 8
jne 0x180413afb
lea rcx, [rsi + 0x20]
mov qword [rsp + 0x28], 4
lea rdx, [rsp + 0x28]
call fcn.1804086f0
jmp 0x180413b13
test al, 0x10
je 0x180413b13
mov rax, qword [rsi + 0x60]
test rax, rax
je 0x180413bb3
mov rcx, qword [rsi + 0x68]
call qword [rax + 0x10]
mov rax, 0xffffffffffffffc0
lock xadd qword [rsi], rax
cmp rax, 0x3f
jbe 0x180413bb3
and rax, 0xffffffffffffffc0
cmp rax, 0x40
jne 0x180413b7c
mov rcx, qword [rsi + 0x28]
add rcx, 0xfffffffffffffffe
cmp rcx, 3
mov eax, 1
cmovb rax, rcx
cmp rax, 1
je 0x180413b82
test rax, rax
jne 0x180413b8b
mov rdx, qword [rsi + 0x30]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x180413b8b
test rdx, rdx
je 0x180413b8b
mov rcx, qword [rsi + 0x38]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180413b8b
add rsp, 0x50
pop rsi
ret
lea rcx, [rsi + 0x28]
call fcn.1803ade20
mov rax, qword [rsi + 0x60]
test rax, rax
je 0x180413b9b
mov rcx, qword [rsi + 0x68]
call qword [rax + 0x18]
mov edx, 0x80
mov r8d, 0x80
mov rcx, rsi
add rsp, 0x50
pop rsi
jmp fcn.1802cbf20
ud2