joyce8/EMBER2024-capa huggingface dataset:
Function at 0x451ac0
Capabilities:
Access peb ldr_data

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x78
mov rcx, r14
test rcx, rcx
je 0x451b0b
mov rcx, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x90]
nop dword [rax + rax]
test rcx, rcx
je 0x451b0b
mov qword [rsp + 0x70], rcx
mov rax, rdi
call fcn.00409760
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x50], 0
jmp 0x451b1b
mov eax, 1
add rsp, 0x78
pop rbp
ret
mov rax, qword [rsp + 0x68]
nop dword [rax + rax]
call fcn.00409120
mov rcx, qword [sym.imp.kernel32.dll_RtlLookupFunctionEntry]
lea rdx, [rsp + 0x60]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], 0
call fcn.0043abe0
xorps xmm15, xmm15
mov r14, qword [0x006a1118]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x451bff
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x68]
call fcn.00409120
mov rcx, qword [rsp + 0x60]
mov rdx, qword [sym.imp.kernel32.dll_RtlVirtualUnwind]
mov rbx, qword [rsp + 0x68]
lea rdi, [rsp + 0x50]
mov qword [rsp], rdx
mov qword [rsp + 8], 0
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rax
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], 0
call fcn.0043af00
xorps xmm15, xmm15
mov r14, qword [0x006a1118]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
cmp qword [rdx], rcx
ja 0x451bff
cmp qword [rdx + 8], rcx
ja 0x451b16
mov eax, 1
add rsp, 0x78
pop rbp
ret

Function at 0x4604e0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4605a2
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rdi
lea rax, [rsp + 0x68]
call fcn.00456c00
mov rcx, qword [rsp + 0x58]
test byte [rcx], al
lea rdx, [rcx + 0x10]
mov rbx, qword [rax]
mov rsi, qword [rax + 8]
mov rax, rdx
mov rcx, rsi
call fcn.0045db40
test bl, bl
je 0x46059c
mov qword [rsp + 0x18], rax
movups xmmword [rsp + 0x20], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
lea rcx, [0x004605e0]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x20]
mov qword [rsp], rcx
call fcn.0046bb80
xorps xmm15, xmm15
mov r14, qword [0x006a1118]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x18]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.004604e0
Function at 0x4634a0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x46354f
push rbp
mov rbp, rsp
sub rsp, 0x58
mov qword [rsp + 0x70], rbx
lea rdx, [rsp + 0x68]
mov qword [rsp + 8], 0
movups xmmword [rsp + 0x10], xmm15
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
movups xmmword [rsp + 0x48], xmm15
lea rsi, [0x004635a0]
mov qword [rsp + 0x10], rsi
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdx
mov rdx, r14
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 8]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call fcn.0046bb80
xorps xmm15, xmm15
mov r14, qword [0x006a1118]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 8]
add rsp, 0x58
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax]
jmp fcn.004634a0
Function at 0x46daa0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4054e3
push rbp
mov rbp, rsp
sub rsp, 0x18
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
mov rax, rdx
call fcn.0040b200
add rsp, 0x18
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x4054c0
cmp byte [0x006a0ecd], 0
je 0x46dab5
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp 0x46ace0
jmp 0x4054c0

Function at 0x46dac0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40b661
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rsp + 0x28], rbx
call fcn.0040b720
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
mov rbx, qword [rsp + 0x28]
xor rbx, rax
xor rbx, qword [0x006a1240]
movabs rdx, 0xa0761d6478bd642f
xor rbx, rdx
mov rax, rcx
call fcn.0040b700
mov rbx, rax
movabs rax, 0x1d8e4e27c47d124b
call fcn.0040b700
add rsp, 0x10
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x40b600
cmp byte [0x006a0ecd], 0
je 0x46daf5
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x006a1560]
aesenc xmm0, xmmword [0x006a1570]
aesenc xmm0, xmmword [0x006a1580]
movq rax, xmm0
ret
jmp 0x40b600

Function at 0x46db00
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40b6e1
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rsp + 0x28], rbx
call fcn.0040b760
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
mov rbx, qword [rsp + 0x28]
xor rbx, rax
xor rbx, qword [0x006a1240]
movabs rdx, 0xa0761d6478bd642f
xor rbx, rdx
mov rax, rcx
call fcn.0040b700
mov rbx, rax
movabs rax, 0x1d8e4e27c47d1247
call fcn.0040b700
add rsp, 0x10
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x40b680
cmp byte [0x006a0ecd], 0
je 0x46db36
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x006a1560]
aesenc xmm0, xmmword [0x006a1570]
aesenc xmm0, xmmword [0x006a1580]
movq rax, xmm0
ret
jmp 0x40b680

Function at 0x46f780
Capabilities:
Allocate thread local storage

Disassembly:
push rbp
mov rbp, rsp
mov rax, rsp
and rsp, 0xfffffffffffffff0
sub rsp, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [sym.imp.kernel32.dll_TlsAlloc]
call rax
mov rsp, qword [rsp + 0x20]
mov rcx, rax
cmp rcx, 0x40
jb 0x46f7b4
mov rcx, 0x28
jmp 0x46f7bf
shl rcx, 3
add rcx, 0x1480
mov qword [0x006a1118], rcx
pop rbp
ret
Function at 0x47dc00
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x47dcca
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0
call fcn.004048e0
xorps xmm15, xmm15
mov r14, qword [0x006a1118]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
jne 0x47dcaf
mov rcx, qword [rsp + 0x60]
lea rdx, [rcx + 1]
mov qword [rsp + 0x40], rdx
lea rax, [0x0050b840]
xor ebx, ebx
mov rcx, rdx
call fcn.004525c0
mov rbx, qword [rsp + 0x60]
mov rcx, rax
xor edi, edi
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.0047ed20
inc rbx
cmp rcx, rbx
jae 0x47dc9e
mov edi, 1
lea rsi, [0x0050b840]
call fcn.00452680
mov word [rax + rbx*2 - 2], 0
xor edi, edi
xor esi, esi
add rsp, 0x48
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x0054a4c8]
lea rsi, [0x00549950]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0047dc00
Function at 0x4a6440
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4a6675
push rbp
mov rbp, rsp
sub rsp, 0x60
mov qword [rsp + 0x70], rax
xor ecx, ecx
xor edx, edx
xor esi, esi
xor edi, edi
xor r8d, r8d
jmp 0x4a6480
dec rbx
mov r10, rbx
neg r10
sar r10, 0x3f
and r10d, 1
add rax, r10
mov rcx, r9
nop dword [rax + rax]
test rbx, rbx
je 0x4a665a
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x46], r8b
mov qword [rsp + 0x50], rbx
movzx r9d, byte [rax]
mov byte [rsp + 0x47], r9b
cmp r9b, 0x20
jbe 0x4a65b6
cmp r9b, 0x22
je 0x4a64c2
cmp r9b, 0x5c
jne 0x4a65cb
lea r9, [rcx + 1]
nop
jmp 0x4a6464
mov qword [rsp + 0x48], rcx
mov r8, rcx
shr rcx, 0x3f
lea r9, [rcx + r8]
sar r9, 1
mov rax, rdi
mov rbx, rsi
mov rcx, rdx
mov rdi, r9
call fcn.004a63a0
mov rdx, qword [rsp + 0x48]
bt edx, 0
jb 0x4a656a
movzx edx, byte [rsp + 0x46]
test dl, dl
je 0x4a655b
mov r8, qword [rsp + 0x50]
nop
cmp r8, 1
jle 0x4a6551
mov r9, qword [rsp + 0x58]
cmp byte [r9 + 1], 0x22
jne 0x4a6549
inc rbx
cmp rcx, rbx
jae 0x4a653a
mov edi, 1
lea rsi, [0x0050b7c0]
call fcn.00452680
movzx edx, byte [rsp + 0x46]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
mov byte [rbx + rax - 1], 0x22
lea rsi, [r8 - 1]
lea r8, [r9 + 1]
jmp 0x4a6565
mov rsi, r8
mov r8, r9
jmp 0x4a6565
mov rsi, r8
mov r8, qword [rsp + 0x58]
jmp 0x4a6565
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
xor edx, 1
jmp 0x4a6599
inc rbx
cmp rcx, rbx
jae 0x4a6585
mov edi, 1
lea rsi, [0x0050b7c0]
nop
call fcn.00452680
mov byte [rbx + rax - 1], 0x22
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x46]
xor r9d, r9d
mov rdi, rax
mov rax, r8
mov r8d, edx
mov rdx, rcx
mov r10, rbx
mov rbx, rsi
mov rsi, r10
jmp 0x4a6464
cmp r9b, 9
je 0x4a65c6
nop dword [rax]
cmp r9b, 0x20
jne 0x4a65cb
test r8b, r8b
je 0x4a6625
mov rax, rdi
mov rbx, rsi
mov rdi, rcx
mov rcx, rdx
call fcn.004a63a0
inc rbx
nop
cmp rcx, rbx
jae 0x4a65f6
mov edi, 1
lea rsi, [0x0050b7c0]
call fcn.00452680
movzx r10d, byte [rsp + 0x47]
mov byte [rbx + rax - 1], r10b
mov rdx, rcx
mov rsi, rbx
xor r9d, r9d
mov rdi, rax
movzx r8d, byte [rsp + 0x46]
mov rbx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
nop dword [rax]
jmp 0x4a6464
mov rax, rdi
mov rbx, rsi
mov rdi, rcx
mov rcx, rdx
call fcn.004a63a0
mov rsi, qword [rsp + 0x50]
dec rsi
mov rdx, rsi
neg rdx
sar rdx, 0x3f
and edx, 1
mov r8, qword [rsp + 0x58]
lea rdi, [rdx + r8]
add rsp, 0x60
pop rbp
ret
mov rax, rdi
mov rbx, rsi
mov rdi, rcx
mov rcx, rdx
call fcn.004a63a0
xor edi, edi
xor esi, esi
add rsp, 0x60
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
nop
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.004a6440
Function at 0x4a7fe0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4a816c
push rbp
mov rbp, rsp
sub rsp, 0x10
mov qword [rsp + 0x20], rax
nop word [rax + rax]
cmp rbx, 2
jl 0x4a80b3
movzx ecx, byte [rax]
cmp byte [rax + 1], 0x3a
jne 0x4a8038
lea edx, [rcx - 0x30]
cmp dl, 9
jbe 0x4a802d
lea edx, [rcx - 0x61]
nop
cmp dl, 0x19
jbe 0x4a802d
lea edx, [rcx - 0x41]
cmp dl, 0x19
ja 0x4a8038
mov ebx, 2
add rsp, 0x10
pop rbp
ret
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
cmp rbx, 5
jge 0x4a804c
xor ecx, ecx
jmp 0x4a8060
mov eax, ecx
call fcn.004a7ea0
mov rbx, qword [rsp + 0x28]
mov ecx, eax
mov rax, qword [rsp + 0x20]
nop
test cl, cl
jne 0x4a8068
xor ecx, ecx
jmp 0x4a80a2
movzx ecx, byte [rax + 1]
mov eax, ecx
call fcn.004a7ea0
test al, al
jne 0x4a8085
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
xor ecx, ecx
jmp 0x4a80a2
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + 2]
call fcn.004a7ea0
xor eax, 1
mov rbx, qword [rsp + 0x28]
mov ecx, eax
mov rax, qword [rsp + 0x20]
test cl, cl
je 0x4a80bd
cmp byte [rax + 2], 0x2e
je 0x4a80bd
mov ecx, 3
jmp 0x4a80d9
xor eax, eax
xor ebx, ebx
add rsp, 0x10
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0x10
pop rbp
ret
mov rcx, qword [rsp + 8]
inc rcx
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
lea rdx, [rbx - 1]
nop dword [rax]
cmp rcx, rdx
jge 0x4a80bd
mov qword [rsp + 8], rcx
movzx edx, byte [rcx + rax]
mov eax, edx
call fcn.004a7ea0
test al, al
je 0x4a80c7
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 8]
movzx eax, byte [rdx + rcx + 1]
call fcn.004a7ea0
test al, al
jne 0x4a80bd
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 8]
movzx edx, byte [rcx + rax + 1]
cmp dl, 0x2e
je 0x4a80bd
inc rcx
jmp 0x4a8137
mov rcx, qword [rsp + 8]
inc rcx
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
nop dword [rax]
cmp rdx, rcx
jle 0x4a8163
mov qword [rsp + 8], rcx
movzx edx, byte [rcx + rax]
mov eax, edx
call fcn.004a7ea0
test al, al
je 0x4a812a
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 8]
mov rbx, rcx
add rsp, 0x10
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.004a7fe0
Function at 0x4b9e20
Capabilities:
Hash data using fnv

Disassembly:
movzx ecx, bl
xor rax, rcx
movabs rcx, 0x100000001b3
imul rax, rcx
ret

Function at 0x4b9e40
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
xor edx, edx
jmp 0x4b9e61
movzx esi, byte [rbx + rdx]
xor rax, rsi
inc rdx
movabs rsi, 0x100000001b3
imul rax, rsi
cmp rcx, rdx
jg 0x4b9e49
ret

Function at 0x4b9e80
Capabilities:
Hash data using fnv

Disassembly:
xor ecx, ecx
jmp 0x4b9ea0
movzx edx, bl
xor rax, rdx
inc rcx
shr rbx, 8
movabs rdx, 0x100000001b3
imul rax, rdx
nop
cmp rcx, 8
jl 0x4b9e84
ret

Function at 0x4b9ec0
Capabilities:
Hash data using fnv

Disassembly:
xor ecx, ecx
jmp 0x4b9ee0
movzx edx, bl
xor rax, rdx
inc rcx
shr ebx, 8
movabs rdx, 0x100000001b3
imul rax, rdx
nop
cmp rcx, 4
jl 0x4b9ec4
ret
Function at 0x4cde80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4ce0e1
push rbp
mov rbp, rsp
sub rsp, 0x30
test rax, rax
je 0x4ce06c
nop dword [rax + rax]
test rbx, rbx
je 0x4ce06c
movzx edx, byte [rax]
cmp byte [rbx], dl
jne 0x4ce064
mov qword [rsp + 0x48], rbx
nop dword [rax]
cmp dl, 0xd
ja 0x4cdfa0
lea esi, [rdx - 3]
cmp sil, 1
ja 0x4cdef3
mov rcx, qword [rax + 0x30]
cmp qword [rbx + 0x30], rcx
jne 0x4cdeeb
mov rdx, qword [rax + 0x28]
mov rbx, qword [rbx + 0x28]
xor eax, eax
jmp 0x4ce0ca
xor eax, eax
add rsp, 0x30
pop rbp
ret
cmp dl, 0xa
jne 0x4cdf20
movzx ecx, word [rax + 2]
and ecx, 0x100
movzx edx, word [rbx + 2]
and edx, 0x100
cmp dx, cx
je 0x4ce078
xor eax, eax
add rsp, 0x30
pop rbp
ret
cmp dl, 0xd
jne 0x4ce078
mov rdx, qword [rax + 0x58]
cmp qword [rbx + 0x58], rdx
je 0x4cdf3a
mov ecx, 1
jmp 0x4cdf74
mov rcx, qword [rax + 0x68]
nop
cmp qword [rbx + 0x68], rcx
je 0x4cdf4d
mov ecx, 1
jmp 0x4cdf74
mov qword [rsp + 0x40], rax
mov rdx, qword [rax + 0x60]
mov rsi, qword [rbx + 0x60]
mov rax, rdx
mov rbx, rsi
call fcn.004043a0
xor eax, 1
mov rbx, qword [rsp + 0x48]
mov ecx, eax
mov rax, qword [rsp + 0x40]
test cl, cl
jne 0x4cdf93
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rcx, qword [rbx + 8]
mov rbx, qword [rcx]
call fcn.004cde80
test al, al
jne 0x4ce078
xor eax, eax
add rsp, 0x30
pop rbp
ret
cmp dl, 0x10
jbe 0x4ce031
cmp dl, 0x11
je 0x4cdfe3
lea ecx, [rdx - 0x12]
cmp cl, 1
ja 0x4ce078
mov rcx, qword [rax + 0x10]
nop
cmp qword [rbx + 0x10], rcx
jne 0x4cdfdb
mov qword [rsp + 0x20], rcx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x28], rdx
xor eax, eax
jmp 0x4ce09a
xor eax, eax
add rsp, 0x30
pop rbp
ret
movzx ecx, word [rax + 2]
and ecx, 0x20
movzx edx, word [rbx + 2]
and edx, 0x20
cmp dx, cx
jne 0x4ce029
mov rcx, qword [rax + 0x48]
nop word [rax + rax]
cmp qword [rbx + 0x48], rcx
jne 0x4ce029
mov rcx, qword [rax + 0x50]
cmp qword [rbx + 0x50], rcx
jne 0x4ce029
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rcx, qword [rbx + 8]
mov rbx, qword [rcx]
nop
call fcn.004cde80
test al, al
jne 0x4ce078
xor eax, eax
add rsp, 0x30
pop rbp
ret
movzx ecx, word [rax + 2]
and ecx, 0x20
movzx edx, word [rbx + 2]
and edx, 0x20
nop
cmp dx, cx
jne 0x4ce05c
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rcx, qword [rbx + 8]
mov rbx, qword [rcx]
call fcn.004cde80
test al, al
jne 0x4ce078
xor eax, eax
add rsp, 0x30
pop rbp
ret
xor eax, eax
add rsp, 0x30
pop rbp
ret
cmp rbx, rax
sete al
add rsp, 0x30
pop rbp
ret
mov eax, 1
add rsp, 0x30
pop rbp
ret
mov rax, qword [rsp + 0x18]
inc rax
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x48]
cmp rax, rcx
jge 0x4ce078
mov qword [rsp + 0x18], rax
mov rcx, qword [rdx + rax*8]
mov rsi, qword [rbx + 8]
mov rsi, qword [rsi + rax*8]
mov rax, rcx
mov rbx, rsi
call fcn.004cde80
test al, al
jne 0x4ce083
xor eax, eax
add rsp, 0x30
pop rbp
ret
inc rax
cmp rax, rcx
jge 0x4ce078
mov esi, dword [rdx + rax*4]
mov edi, dword [rbx + rax*4]
cmp edi, esi
je 0x4ce0c7
xor eax, eax
add rsp, 0x30
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0046bca0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.004cde80
Function at 0x4e6560
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
movd xmm0, dword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movdqu xmm1, xmmword [rsi]
movdqu xmm2, xmmword [rsi + 0x10]
movdqu xmm3, xmmword [rsi + 0x20]
movdqu xmm4, xmmword [rsi + 0x30]
pxor xmm1, xmm0
add rsi, 0x40
sub rcx, 0x40
cmp rcx, 0x40
jb 0x4e6635
movdqa xmm0, xmmword [0x00549b10]
movdqa xmm5, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm3
movdqa xmm8, xmm4
pclmulqdq xmm1, xmm0, 0
pclmulqdq xmm2, xmm0, 0
pclmulqdq xmm3, xmm0, 0
pclmulqdq xmm4, xmm0, 0
movdqu xmm11, xmmword [rsi]
movdqu xmm12, xmmword [rsi + 0x10]
movdqu xmm13, xmmword [rsi + 0x20]
movdqu xmm14, xmmword [rsi + 0x30]
pclmulqdq xmm5, xmm0, 0x11
pclmulqdq xmm6, xmm0, 0x11
pclmulqdq xmm7, xmm0, 0x11
pclmulqdq xmm8, xmm0, 0x11
pxor xmm1, xmm5
pxor xmm2, xmm6
pxor xmm3, xmm7
pxor xmm4, xmm8
pxor xmm1, xmm11
pxor xmm2, xmm12
pxor xmm3, xmm13
pxor xmm4, xmm14
add rdi, 0x40
add rsi, 0x40
sub rcx, 0x40
cmp rcx, 0x40
jge 0x4e65a1
movdqa xmm0, xmmword [0x00549b20]
movdqa xmm5, xmm1
pclmulqdq xmm1, xmm0, 0
pclmulqdq xmm5, xmm0, 0x11
pxor xmm1, xmm5
pxor xmm1, xmm2
movdqa xmm5, xmm1
pclmulqdq xmm1, xmm0, 0
pclmulqdq xmm5, xmm0, 0x11
pxor xmm1, xmm5
pxor xmm1, xmm3
movdqa xmm5, xmm1
pclmulqdq xmm1, xmm0, 0
pclmulqdq xmm5, xmm0, 0x11
pxor xmm1, xmm5
pxor xmm1, xmm4
cmp rcx, 0x10
jb 0x4e66b7
movdqu xmm10, xmmword [rsi]
movdqa xmm5, xmm1
pclmulqdq xmm1, xmm0, 0
pclmulqdq xmm5, xmm0, 0x11
pxor xmm1, xmm5
pxor xmm1, xmm10
sub rcx, 0x10
add rsi, 0x10
cmp rcx, 0x10
jge 0x4e668b
pcmpeqb xmm3, xmm3
pclmulqdq xmm0, xmm1, 1
psrldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm2, xmm1
movq xmm0, qword [0x00549940]
psrlq xmm3, 0x20
psrldq xmm2, 4
pand xmm1, xmm3
pclmulqdq xmm1, xmm0, 0
pxor xmm1, xmm2
movdqa xmm0, xmmword [0x00549b30]
movdqa xmm2, xmm1
pand xmm1, xmm3
pclmulqdq xmm1, xmm0, 0x10
pand xmm1, xmm3
pclmulqdq xmm1, xmm0, 0
pxor xmm1, xmm2
pextrd eax, xmm1, 1
mov dword [rsp + 0x28], eax
ret
Function at 0x140001378
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x1401fec90]
mov dword [rax], 1
mov rax, qword [0x1401feca0]
mov dword [rax], 1
mov rax, qword [0x1401fecb0]
mov dword [rax], 1
mov rax, qword [0x1401fec10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400013c9
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x1400013f5
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000141b
cmp eax, 0x20b
je 0x140001442
jmp 0x140001471
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000142e
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000145d
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140177300
Capabilities:
Query environment variable

Disassembly:
push r15
mov eax, 0x10088
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401d9d00
sub rsp, rax
xor edx, edx
mov rbp, rcx
xor ecx, ecx
mov word [rsp + 0x80], dx
lea r15, [rsp + 0x30]
movzx eax, byte [rbp]
mov word [rsp + 0x30], cx
test al, al
je 0x1401773c5
xor edi, edi
lea r15, [rsp + 0x30]
lea r14, [rsp + 0x2a]
mov r12d, 0x28
lea r13, [rsp + 0x2c]
nop dword [rax]
mov rsi, r12
mov r8d, 2
mov rdx, r14
mov rcx, r13
sub rsi, rdi
mov byte [rsp + 0x2a], al
lea rbx, [r15 + rdi*2]
mov byte [rsp + 0x2b], 0
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x1401eac24
cmp word [r15 + rdi*2], 0
movzx eax, word [rsp + 0x2c]
je 0x1401773a6
nop dword [rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x140177398
test rsi, rsi
je 0x1401eac24
mov word [rbx], ax
add rdi, 1
xor eax, eax
mov word [rbx + 2], ax
movzx eax, byte [rbp + rdi]
test al, al
jne 0x140177358
lea rbx, [rsp + 0x80]
mov r8d, 0x10000
mov rcx, r15
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea edx, [rax - 1]
xor eax, eax
cmp edx, 0xffff
ja 0x1401773f4
mov rcx, rbx
call sub.msvcrt.dll__wcsdup
add rsp, 0x10088
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret

Function at 0x140177410
Capabilities:
Set environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
movzx eax, byte [rcx]
mov qword [rsp + 0xd8], rdx
xor edx, edx
mov rbp, rcx
lea r15, [rsp + 0x30]
mov word [rsp + 0x30], dx
test al, al
je 0x1401774cd
xor edi, edi
lea r15, [rsp + 0x30]
lea r14, [rsp + 0x2a]
mov r12d, 0x28
lea r13, [rsp + 0x2c]
nop dword [rax]
mov rsi, r12
mov r8d, 2
mov rdx, r14
mov rcx, r13
sub rsi, rdi
mov byte [rsp + 0x2a], al
lea rbx, [r15 + rdi*2]
mov byte [rsp + 0x2b], 0
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x1401eac2a
cmp word [r15 + rdi*2], 0
movzx eax, word [rsp + 0x2c]
je 0x1401774ae
nop dword [rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x1401774a0
test rsi, rsi
je 0x1401eac2a
mov word [rbx], ax
add rdi, 1
xor eax, eax
mov word [rbx + 2], ax
movzx eax, byte [rbp + rdi]
test al, al
jne 0x140177460
mov rdx, qword [rsp + 0xd8]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
nop
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret