joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14024b620
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov rbx, rdx
mov esi, r8d
mov rdi, r9
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.140228640
mov rcx, qword [rbp - 0x48]
mov r14, qword [rcx + 8]
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, r14
mov qword [rbp - 0x54], rcx
mov rdx, rbx
mov qword [rbp - 0x5c], rdx
mov r8d, esi
mov dword [rbp - 0x4c], r8d
mov r9, rdi
mov qword [rbp - 0x64], r9
lea rcx, [rbp - 0x90]
call fcn.140007570
mov rcx, qword [rbp - 0x54]
mov rdx, qword [rbp - 0x5c]
mov r8d, dword [rbp - 0x4c]
mov r9, qword [rbp - 0x64]
call sub.KERNEL32.dll_WriteFile
mov ebx, eax
lea rcx, [rbp - 0x90]
call fcn.1400075c0
call sub.KERNEL32.dll_GetLastError
mov esi, eax
cmp byte [rbp - 0x40], 0
je 0x14024b6dd
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.140228680
call fcn.140003bcb
mov dword [rax + 0xf0], esi
mov eax, ebx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x14024b740
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xorps xmm4, xmm4
movaps xmmword [rbp - 0x50], xmm4
xor eax, eax
mov qword [rbp - 0x40], rax
mov rsi, rdx
mov edi, r8d
mov rbx, r9
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.140228640
nop
mov qword [rbp - 0x50], rbx
mov rcx, qword [rbp - 0x48]
mov r14, qword [rcx + 8]
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, r14
mov qword [rbp - 0x5c], rcx
mov rdx, rsi
mov qword [rbp - 0x64], rdx
mov r8d, edi
mov dword [rbp - 0x54], r8d
mov r9, rbx
mov qword [rbp - 0x6c], r9
lea rcx, [rbp - 0x98]
call fcn.140007570
mov rcx, qword [rbp - 0x5c]
mov rdx, qword [rbp - 0x64]
mov r8d, dword [rbp - 0x54]
mov r9, qword [rbp - 0x6c]
call sub.KERNEL32.dll_WriteFile
mov ebx, eax
lea rcx, [rbp - 0x98]
call fcn.1400075c0
call sub.KERNEL32.dll_GetLastError
mov esi, eax
xor ecx, ecx
mov qword [rbp - 0x50], rcx
cmp byte [rbp - 0x40], 0
je 0x14024b80f
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.140228680
call fcn.140003bcb
mov dword [rax + 0xf0], esi
mov eax, ebx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x14024c200
Capabilities:
Query or enumerate registry key

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x100]
xor eax, eax
mov qword [rbp - 0x78], rax
xorps xmm4, xmm4
movaps xmmword [rbp - 0x70], xmm4
movaps xmmword [rbp - 0x60], xmm4
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp - 0x40], rax
mov edi, edx
mov rbx, r8
mov rsi, r9
mov r14, qword [rbp + 0x30]
mov r15, qword [rbp + 0x38]
mov r13, qword [rbp + 0x40]
mov r12, qword [rbp + 0x48]
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.140228640
nop
lea rcx, [r12 + 0x10]
xor edx, edx
test r12, r12
cmove rcx, rdx
mov qword [rbp - 0x50], rcx
lea rdx, [r13 + 0x10]
xor r8d, r8d
test r13, r13
cmove rdx, r8
mov qword [rbp - 0x58], rdx
lea r8, [r15 + 0x10]
xor r9d, r9d
test r15, r15
cmove r8, r9
mov qword [rbp - 0x60], r8
lea r9, [r14 + 0x10]
xor eax, eax
test r14, r14
cmove r9, rax
mov qword [rbp - 0x68], r9
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x78], rbx
mov rax, qword [rbp - 0x48]
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov rcx, qword [rax + 8]
mov qword [rbp - 0x84], rcx
mov edx, edi
mov dword [rbp - 0x7c], edx
mov r8, rbx
mov qword [rbp - 0x8c], r8
mov r9, rsi
mov qword [rbp - 0x94], r9
lea rcx, [rbp - 0xc0]
call fcn.140007570
mov rcx, qword [rbp - 0x84]
mov edx, dword [rbp - 0x7c]
mov r8, qword [rbp - 0x8c]
mov r9, qword [rbp - 0x94]
call sub.ADVAPI32.dll_RegEnumKeyExW
mov ebx, eax
lea rcx, [rbp - 0xc0]
call fcn.1400075c0
nop
xor ecx, ecx
mov qword [rbp - 0x78], rcx
xor ecx, ecx
mov qword [rbp - 0x70], rcx
xor ecx, ecx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x58], rcx
xor ecx, ecx
mov qword [rbp - 0x50], rcx
cmp byte [rbp - 0x40], 0
je 0x14024c35d
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.140228680
mov eax, ebx
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x14024c650
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0xd0]
xorps xmm4, xmm4
movaps xmmword [rbp - 0x50], xmm4
xor eax, eax
mov qword [rbp - 0x40], rax
mov rbx, rdx
mov rsi, r8
mov rdi, r9
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.140228640
nop
test rbx, rbx
je 0x14024c6a6
add rbx, 0xc
mov rdx, rbx
jmp 0x14024c6a8
xor edx, edx
mov qword [rbp - 0x50], rdx
mov rcx, qword [rbp - 0x48]
mov rbx, qword [rbp + 0x30]
mov qword [rsp + 0x20], rbx
mov rbx, qword [rbp + 0x38]
mov qword [rsp + 0x28], rbx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x60], rdx
mov r8, rsi
mov qword [rbp - 0x68], r8
mov r9, rdi
mov qword [rbp - 0x70], r9
lea rcx, [rbp - 0x98]
call fcn.140007570
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
mov r8, qword [rbp - 0x68]
mov r9, qword [rbp - 0x70]
call sub.ADVAPI32.dll_RegQueryValueExW
mov ebx, eax
lea rcx, [rbp - 0x98]
call fcn.1400075c0
nop
xor ecx, ecx
mov qword [rbp - 0x50], rcx
cmp byte [rbp - 0x40], 0
je 0x14024c725
mov rcx, qword [rbp - 0x48]
cmp byte [rcx], cl
xor edx, edx
call fcn.140228680
mov eax, ebx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x1402c8c50
Capabilities:
Get token membership

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xorps xmm4, xmm4
movups xmmword [rbp - 0x58], xmm4
xor eax, eax
mov qword [rbp - 0x48], rax
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov dword [rbp - 0x40], edx
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp + 0x20], rsi
xor edx, edx
cmp byte [rsi], 0
setne dl
mov dword [rbp - 0x40], edx
mov qword [rbp - 0x50], rcx
lea rdx, [rbp - 0x48]
cmp dword [rcx], ecx
call fcn.140228640
nop
lea rdi, [rbx + 0x10]
xor ecx, ecx
test rbx, rbx
cmove rdi, rcx
mov qword [rbp - 0x58], rdi
mov rcx, qword [rbp - 0x50]
mov rbx, qword [rcx + 8]
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
lea r8, [rbp - 0x40]
mov qword [rbp - 0x60], r8
mov rcx, rbx
mov qword [rbp - 0x68], rcx
mov rdx, rdi
mov qword [rbp - 0x70], rdx
lea rcx, [rbp - 0x98]
call fcn.140007570
mov r8, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x70]
call sub.ADVAPI32.dll_CheckTokenMembership
mov ebx, eax
lea rcx, [rbp - 0x98]
call fcn.1400075c0
call sub.KERNEL32.dll_GetLastError
mov esi, eax
xor ecx, ecx
mov qword [rbp - 0x58], rcx
test ebx, ebx
setne bl
movzx ebx, bl
cmp dword [rbp - 0x40], 0
setne cl
mov rdi, qword [rbp + 0x20]
mov byte [rdi], cl
cmp byte [rbp - 0x48], 0
je 0x1402c8d3f
mov rcx, qword [rbp - 0x50]
cmp byte [rcx], cl
xor edx, edx
call fcn.140228680
call fcn.140003bcb
mov dword [rax + 0xf0], esi
movzx eax, bl
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x1403aaa40
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x38
cmp r8d, 8
jge 0x1403aaadd
xor eax, eax
cmp r8d, 4
jl 0x1403aaa91
add r8d, 0xfffffffc
movsx r10, word [rcx + rax*2]
movsx r9, dx
cmp r10d, r9d
je 0x1403aaad8
nop dword [rax]
movsx r10, word [rcx + rax*2 + 2]
cmp r10d, r9d
je 0x1403aaad1
movsx r10, word [rcx + rax*2 + 4]
cmp r10d, r9d
je 0x1403aaac9
movsx r10, word [rcx + rax*2 + 6]
cmp r10d, r9d
je 0x1403aaac1
add rax, 4
test r8d, r8d
jle 0x1403aacba
movsx r9, dx
nop
dec r8d
movsx rdx, word [rcx + rax*2]
cmp edx, r9d
je 0x1403aaad8
inc rax
test r8d, r8d
jg 0x1403aaaa0
jmp 0x1403aacba
add eax, 3
jmp 0x1403aacb5
add eax, 2
jmp 0x1403aacb5
inc eax
jmp 0x1403aacb5
jmp 0x1403aacb5
movsx r9, dx
movd xmm0, r9d
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
mov rax, rcx
lea edx, [r8 - 8]
movsxd rdx, edx
add rdx, rdx
lea r10, [rax + rdx]
movups xmm1, xmmword [rax]
pcmpeqw xmm1, xmm0
movaps xmmword [rsp + 0x20], xmm1
xorps xmm2, xmm2
pcmpeqw xmm1, xmm2
pmovmskb r9d, xmm1
cmp r9d, 0xffff
jne 0x1403aabf6
add rax, 0x10
cmp rax, r10
jbe 0x1403aab00
mov eax, r8d
test al, 7
je 0x1403aacba
movups xmm1, xmmword [r10]
pcmpeqw xmm0, xmm1
movaps xmmword [rsp + 0x20], xmm0
xorps xmm1, xmm1
pcmpeqw xmm0, xmm1
pmovmskb ecx, xmm0
cmp ecx, 0xffff
je 0x1403aacba
mov rax, qword [rsp + 0x20]
mov qword [rsp + 8], rax
movzx eax, word [rsp + 8]
shr eax, 0xf
movzx ecx, word [rsp + 0xa]
shr ecx, 0xf
add ecx, ecx
or eax, ecx
movzx ecx, word [rsp + 0xc]
shr ecx, 0xf
shl ecx, 2
or ecx, eax
mov eax, ecx
movzx ecx, word [rsp + 0xe]
shr ecx, 0xf
shl ecx, 3
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
mov qword [rsp], rcx
movzx ecx, word [rsp]
shr ecx, 0xf
movzx r8d, word [rsp + 2]
shr r8d, 0xf
add r8d, r8d
or ecx, r8d
movzx r8d, word [rsp + 4]
shr r8d, 0xf
shl r8d, 2
or r8d, ecx
mov ecx, r8d
movzx r8d, word [rsp + 6]
shr r8d, 0xf
shl r8d, 3
or r8d, ecx
mov ecx, r8d
shl ecx, 4
or eax, ecx
jne 0x1403aacac
mov ecx, 0x20
jmp 0x1403aacaf
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x18], rdx
movzx edx, word [rsp + 0x18]
shr edx, 0xf
movzx r8d, word [rsp + 0x1a]
shr r8d, 0xf
add r8d, r8d
or edx, r8d
movzx r8d, word [rsp + 0x1c]
shr r8d, 0xf
shl r8d, 2
or r8d, edx
mov edx, r8d
movzx r8d, word [rsp + 0x1e]
shr r8d, 0xf
shl r8d, 3
or r8d, edx
mov edx, r8d
mov r8, qword [rsp + 0x28]
mov qword [rsp + 0x10], r8
movzx r8d, word [rsp + 0x10]
shr r8d, 0xf
movzx r10d, word [rsp + 0x12]
shr r10d, 0xf
add r10d, r10d
or r8d, r10d
movzx r10d, word [rsp + 0x14]
shr r10d, 0xf
shl r10d, 2
or r10d, r8d
mov r8d, r10d
movzx r10d, word [rsp + 0x16]
shr r10d, 0xf
shl r10d, 3
or r10d, r8d
mov r8d, r10d
shl r8d, 4
or edx, r8d
jne 0x1403aac9d
mov r8d, 0x20
jmp 0x1403aaca1
bsf r8d, edx
sub rax, rcx
shr rax, 1
add eax, r8d
jmp 0x1403aacb5
bsf ecx, eax
shr rdx, 1
lea eax, [rdx + rcx]
add rsp, 0x38
ret
mov eax, 0xffffffff
add rsp, 0x38
ret
Function at 0x1403b4f60
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x48
movaps xmmword [rsp + 0x30], xmm6
cmp r9d, 8
jge 0x1403b4fb1
movzx r10d, dx
sub r8d, r10d
movzx eax, r8w
xor edx, edx
test r9d, r9d
jle 0x1403b51db
movsxd r8, edx
movzx r8d, word [rcx + r8*2]
sub r8d, r10d
movzx r8d, r8w
cmp r8d, eax
jle 0x1403b4fa5
inc edx
cmp edx, r9d
jl 0x1403b4f85
jmp 0x1403b51db
mov eax, edx
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
ret
movzx r10d, dx
movd xmm0, r10d
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
mov eax, r8d
sub eax, r10d
movzx eax, ax
movd xmm1, eax
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
mov rax, rcx
add r9d, 0xfffffff8
mov edx, r9d
add rdx, rdx
lea r8, [rax + rdx]
movups xmm2, xmmword [0x140926b50]
movaps xmm3, xmm1
psubw xmm3, xmm2
movups xmm4, xmmword [rax]
psubw xmm4, xmm0
movaps xmm5, xmm4
psubw xmm5, xmm2
movaps xmm6, xmm3
pcmpgtw xmm6, xmm5
pcmpeqw xmm4, xmm1
por xmm4, xmm6
movaps xmmword [rsp + 0x20], xmm4
xorps xmm5, xmm5
pcmpeqw xmm4, xmm5
pmovmskb r10d, xmm4
cmp r10d, 0xffff
jne 0x1403b511b
add rax, 0x10
cmp rax, r8
jb 0x1403b4ff8
movups xmm4, xmmword [r8]
psubw xmm4, xmm0
movaps xmm0, xmm4
psubw xmm0, xmm2
pcmpgtw xmm3, xmm0
pcmpeqw xmm1, xmm4
por xmm1, xmm3
movaps xmmword [rsp + 0x20], xmm1
xorps xmm0, xmm0
pcmpeqw xmm0, xmm1
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x1403b51db
mov rax, qword [rsp + 0x20]
mov qword [rsp + 8], rax
movzx eax, word [rsp + 8]
shr eax, 0xf
movzx ecx, word [rsp + 0xa]
shr ecx, 0xf
add ecx, ecx
or eax, ecx
movzx ecx, word [rsp + 0xc]
shr ecx, 0xf
shl ecx, 2
or ecx, eax
mov eax, ecx
movzx ecx, word [rsp + 0xe]
shr ecx, 0xf
shl ecx, 3
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
mov qword [rsp], rcx
movzx ecx, word [rsp]
shr ecx, 0xf
movzx r8d, word [rsp + 2]
shr r8d, 0xf
add r8d, r8d
or ecx, r8d
movzx r8d, word [rsp + 4]
shr r8d, 0xf
shl r8d, 2
or r8d, ecx
mov ecx, r8d
movzx r8d, word [rsp + 6]
shr r8d, 0xf
shl r8d, 3
or r8d, ecx
mov ecx, r8d
shl ecx, 4
or eax, ecx
bsf ecx, eax
mov r8d, 0x20
test eax, eax
cmove ecx, r8d
mov eax, ecx
shr rdx, 1
add eax, edx
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
ret
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x18], rdx
movzx edx, word [rsp + 0x18]
shr edx, 0xf
movzx r8d, word [rsp + 0x1a]
shr r8d, 0xf
add r8d, r8d
or edx, r8d
movzx r8d, word [rsp + 0x1c]
shr r8d, 0xf
shl r8d, 2
or r8d, edx
mov edx, r8d
movzx r8d, word [rsp + 0x1e]
shr r8d, 0xf
shl r8d, 3
or r8d, edx
mov edx, r8d
mov r8, qword [rsp + 0x28]
mov qword [rsp + 0x10], r8
movzx r8d, word [rsp + 0x10]
shr r8d, 0xf
movzx r10d, word [rsp + 0x12]
shr r10d, 0xf
add r10d, r10d
or r8d, r10d
movzx r10d, word [rsp + 0x14]
shr r10d, 0xf
shl r10d, 2
or r10d, r8d
mov r8d, r10d
movzx r10d, word [rsp + 0x16]
shr r10d, 0xf
shl r10d, 3
or r10d, r8d
mov r8d, r10d
shl r8d, 4
or edx, r8d
bsf r8d, edx
mov r10d, 0x20
test edx, edx
cmove r8d, r10d
sub rax, rcx
shr rax, 1
add eax, r8d
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
ret
mov eax, 0xffffffff
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
ret
Function at 0x140001528
Capabilities:
Encode data using xor

Disassembly:
cmp byte [rcx + 0x11], 0
mov r8, rcx
je 0x14000155c
xor r9d, r9d
mov cl, r9b
movabs rdx, 0xf5f1135169abdfd1
and cl, 7
shl cl, 3
shr rdx, cl
xor byte [r8 + r9], dl
inc r9
cmp r9, 0x11
jb 0x140001534
mov byte [r8 + 0x11], 0
mov rax, r8
ret

Function at 0x1400015b0
Capabilities:
Encode data using xor

Disassembly:
cmp byte [rcx + 0xd], 0
mov r8, rcx
je 0x1400015e4
xor r9d, r9d
mov cl, r9b
movabs rdx, 0xf5f1135169abdfd1
and cl, 7
shl cl, 3
shr rdx, cl
xor byte [r8 + r9], dl
inc r9
cmp r9, 0xd
jb 0x1400015bc
mov byte [r8 + 0xd], 0
mov rax, r8
ret

Function at 0x140001618
Capabilities:
Encode data using xor

Disassembly:
cmp byte [rcx + 0xd], 0
mov r8, rcx
je 0x14000164c
xor r9d, r9d
mov cl, r9b
movabs rdx, 0x810979618f4359cd
and cl, 7
shl cl, 3
shr rdx, cl
xor byte [r8 + r9], dl
inc r9
cmp r9, 0xd
jb 0x140001624
mov byte [r8 + 0xd], 0
mov rax, r8
ret

Function at 0x1400018e0
Capabilities:
Encode data using xor
Set console window title

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x68
mov rax, qword [0x140005040]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov ebp, r9d
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_AllocConsole]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rax
lea r8, [0x1400032d8]
lea rdx, str.CONIN_
lea rcx, [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen_s]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rax
lea r8, [0x1400032e4]
lea rdx, str.CONOUT_
lea rcx, [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen_s]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rax
lea r8, [0x1400032e4]
lea rdx, str.CONOUT_
lea rcx, [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen_s]
movdqa xmm0, xmmword [str.T_a_5:0]
xor ecx, ecx
movdqu xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x40], 0x33
mov al, byte [rsp + 0x30]
xor byte [rsp + rcx + 0x31], al
inc rcx
cmp rcx, 0x10
jb 0x140001993
lea rcx, [rsp + 0x31]
mov byte [rsp + 0x41], 0
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov rcx, qword [0x1400032d0]
mov r9, rsi
mov r8, rdi
mov dword [rsp + 0x20], ebp
mov rdx, rbx
call fcn.140001898
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140001a00
add rsp, 0x68
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x1400024c0
Capabilities:
Parse pe header

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

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14000178a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000178a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14000178a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000178a
cmp dword [rcx + 0x84], 0xe
jbe 0x14000178a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14000178c
xor al, al
add rsp, 0x28
ret
Function at 0x140002f70
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 r14
sub rsp, 0x20
mov r14, qword [rcx + 0x138]
xor ebx, ebx
mov ebp, dword [rcx + 0x140]
test byte [r14], 2
je 0x140002fa9
nop
inc ebx
test byte [rbx + r14], 2
jne 0x140002fa0
lea rsi, [rcx + 0xd058]
mov ecx, dword [rsi + 0x18]
mov edi, dword [rsi]
cmp ecx, 1
jge 0x140002fcc
mov edx, 1
mov rcx, rsi
call fcn.14000beb0
mov ecx, dword [rsi + 0x18]
mov edi, eax
dec ecx
mov dword [rsi + 0x18], ecx
lea ecx, [rdi + rdi]
mov dword [rsi], ecx
shr edi, 0x1f
nop dword [rax]
mov rcx, rsi
call fcn.140002480
xor r9d, r9d
mov r8d, eax
cmp eax, 0x1021
setae r9b
cmp ebx, ebp
jae 0x140003023
mov edx, ebx
add rdx, r14
movzx ecx, byte [rdx]
test cl, 2
jne 0x14000301a
mov eax, r8d
dec r8d
test eax, eax
je 0x140003023
and cl, 0xfe
or cl, dil
mov byte [rdx], cl
inc ebx
inc rdx
cmp ebx, ebp
jb 0x140003000
test r9d, r9d
je 0x1400030b8
cmp ebx, ebp
jae 0x1400030b8
mov r8d, dword [rsi + 0x18]
mov edi, dword [rsi]
cmp r8d, 1
jge 0x1400030a7
mov rdx, qword [rsi + 8]
mov ecx, 0x20
mov r9, qword [rsi + 0x10]
sub ecx, r8d
cmp rdx, r9
jae 0x14000306c
movzx eax, byte [rdx]
sub ecx, 8
shl eax, cl
add r8d, 8
or edi, eax
inc rdx
cmp r8d, 0x18
jle 0x140003050
mov qword [rsi + 8], rdx
cmp r8d, 1
jge 0x1400030a7
cmp rdx, r9
jb 0x140003099
mov r8d, 0x40000000
mov dword [rsi + 0x1c], 1
lea eax, [r8 - 1]
mov dword [rsi + 0x18], eax
lea eax, [rdi + rdi]
mov dword [rsi], eax
shr edi, 0x1f
jmp 0x1400030bb
movzx edx, byte [rdx]
movzx ecx, r8b
and ecx, 7
shr edx, cl
or edi, edx
lea eax, [r8 - 1]
mov dword [rsi + 0x18], eax
lea eax, [rdi + rdi]
mov dword [rsi], eax
shr edi, 0x1f
jmp 0x1400030bb
xor edi, 1
cmp ebx, ebp
jb 0x140002fe0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x140021b10
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
mov r8, rcx
test rcx, rcx
je 0x140021bdb
mov rdx, qword [rcx]
xor r9d, r9d
mov eax, r9d
mov qword [rsp], rdi
lea rdi, [0x1400d1f10]
mov byte [rdx + 0x16], al
mov rdx, qword [rcx]
mov byte [rdx + 0x17], al
mov rdx, qword [rcx]
mov byte [rdx + 0x18], al
mov rdx, qword [rcx]
mov byte [rdx + 0x19], al
movsxd r11, dword [rcx + 8]
test r11, r11
jle 0x140021b85
mov qword [rsp + 0x10], rbx
mov r10d, r9d
mov rbx, qword [rcx]
nop dword [rax]
movzx edx, byte [rbx + r10]
inc r10
mov ecx, eax
shr rcx, 0x18
xor rdx, rcx
mov ecx, eax
shl ecx, 8
mov eax, dword [rdi + rdx*4]
xor eax, ecx
cmp r10, r11
jl 0x140021b60
mov rbx, qword [rsp + 0x10]
movsxd r10, dword [r8 + 0x18]
test r10, r10
jle 0x140021bb2
mov r11, qword [r8 + 0x10]
movzx edx, byte [r11 + r9]
inc r9
mov ecx, eax
shr rcx, 0x18
xor rdx, rcx
mov ecx, eax
shl ecx, 8
mov eax, dword [rdi + rdx*4]
xor eax, ecx
cmp r9, r10
jl 0x140021b92
mov rcx, qword [r8]
mov edx, eax
mov rdi, qword [rsp]
shr edx, 8
mov byte [rcx + 0x16], al
mov rcx, qword [r8]
mov byte [rcx + 0x17], dl
mov edx, eax
mov rcx, qword [r8]
shr edx, 0x10
shr eax, 0x18
mov byte [rcx + 0x18], dl
mov rcx, qword [r8]
mov byte [rcx + 0x19], al
add rsp, 8
ret
Function at 0x140025c4c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov r15d, r8d
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
jne 0x140025c8c
lea edx, [rsi + 2]
and dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
call fcn.140027ffc
xor al, al
jmp 0x140025d5f
call fcn.140024cb8
or eax, 0xffffffff
xor edx, edx
mov rcx, rsi
mov dword [rbx + 0xc], eax
mov dword [rbx + 8], eax
lea r8d, [rax + 3]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
movsxd rbp, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test ebp, ebp
jg 0x140025cd1
mov edx, reloc.WS2_32.dll_inet_ntoa
mov rcx, rbx
jmp 0x140025c75
lea eax, [rbp + 1]
movsxd rcx, eax
call fcn.1400b0a4c
mov r9, rsi
mov r8d, 1
mov rdx, rbp
mov rcx, rax
mov rdi, rax
mov byte [rax], 0
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rdi
cmp rax, 1
je 0x140025d0c
call fcn.1400b0a54
mov edx, 2
jmp 0x140025ccc
mov byte [rbp + rdi], 0
mov rax, rdi
mov dl, byte [rdi]
jmp 0x140025d38
inc rax
lea r8, [rcx + 1]
cmp dl, 0xd
jne 0x140025d31
mov byte [rcx], 0xa
cmp byte [rax], 0xa
jne 0x140025d33
inc rax
jmp 0x140025d33
mov byte [rcx], dl
mov dl, byte [rax]
mov rcx, r8
test dl, dl
jne 0x140025d18
mov byte [rcx], dl
mov r9d, r15d
mov rax, qword [rbx]
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rdi
call fcn.1400b0a54
cmp byte [rbx + 0x50], 0
sete al
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret