joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000b92f
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x1000b9cc
push ebx
push esi
call fcn.1000b8f8
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.1000b88c
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x1000b979
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x1000b9cb
push edi
push eax
call fcn.1000c8ea
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x1000b999
call fcn.1000a3d4
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x1000b9ca
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.1000b88c
add esp, 0x20
test eax, eax
jne 0x1000b9b8
push edi
call fcn.1000a3d4
jmp 0x1000b9c0
push ebx
call fcn.1000a3d4
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x1000bc39
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10013678
push 0x10013670
push str.FlsAlloc
push 0x1f
call fcn.1000bb55
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1000bc6d
push dword [ebp + 8]
mov ecx, esi
call dword [0x1001214c]
call esi
jmp 0x1000bc73
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x1000bcb7
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10013688
push 0x10013680
push str.FlsGetValue
push 0x21
call fcn.1000bb55
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1000bcee
push dword [ebp + 8]
mov ecx, esi
call dword [0x1001214c]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x1000bcf6
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10013690
push 0x10013688
push str.FlsSetValue
push 0x22
call fcn.1000bb55
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1000bd30
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x1001214c]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsSetValue]
Function at 0x100113b0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x100113dd
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x100113dd
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x4050e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
test eax, eax
jne 0x4050fa
push edi
call fcn.00404d50
mov eax, dword [edi + 4]
add esp, 4
cmp eax, 1
jne 0x405114
push dword [ebp + 0x10]
lea eax, [edi + 8]
push dword [ebp + 0xc]
push eax
call fcn.00405560
add esp, 0xc
pop edi
pop ebp
ret
cmp eax, 2
jne 0x40514d
push dword [edi]
push dword [ebp + 0x10]
push 1
push dword [ebp + 0xc]
call fcn.00467ef4
add esp, 0x10
cmp eax, dword [ebp + 0x10]
jae 0x40514d
push edi
call fcn.00404d00
push str.Disabled_writing_session_log_due_to_error_while_writing
push dword [edi + 0x18]
mov dword [edi + 4], 3
call fcn.0043dc60
add esp, 0xc
pop edi
pop ebp
ret

Function at 0x4053c0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x4ba7e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor edx, edx
push edi
mov edi, dword [ebp + 0xc]
nop dword [eax + eax]
mov cl, byte [edx + esi]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x4053f2
movsx eax, cl
sub eax, 0x41
jmp 0x405434
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x405401
movsx eax, cl
sub eax, 0x47
jmp 0x405434
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x405410
movsx eax, cl
add eax, 4
jmp 0x405434
cmp cl, 0x2b
jne 0x40541c
mov eax, 0x3e
jmp 0x405434
cmp cl, 0x2f
jne 0x405428
mov eax, 0x3f
jmp 0x405434
cmp cl, 0x3d
jne 0x4054b1
or eax, 0xffffffff
mov dword [ebp + edx*4 - 0x14], eax
inc edx
cmp edx, 4
jl 0x4053e0
mov edx, dword [ebp - 0x14]
cmp edx, 0xffffffff
je 0x4054b1
mov esi, dword [ebp - 0x10]
cmp esi, 0xffffffff
je 0x4054b1
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
cmp ecx, 0xffffffff
jne 0x405462
cmp eax, ecx
jne 0x4054b1
lea ebx, [ecx + 2]
jmp 0x40546d
xor ebx, ebx
cmp eax, 0xffffffff
setne bl
add ebx, 2
shl edx, 6
and ecx, 0x3f
or edx, esi
and eax, 0x3f
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
mov eax, edx
shr eax, 0x10
mov byte [edi], al
cmp ebx, 1
jbe 0x405496
mov ecx, edx
shr ecx, 8
mov byte [edi + 1], cl
cmp ebx, 2
jbe 0x40549e
mov byte [edi + 2], dl
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00448c15
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448c15
mov esp, ebp
pop ebp
ret

Function at 0x406200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
test esi, esi
je 0x406235
push ebx
mov ebx, dword [ebp + 0xc]
sub ebx, eax
nop word [eax + eax]
movzx edx, byte [ebx + eax]
lea eax, [eax + 1]
movzx ecx, byte [eax - 1]
xor edx, ecx
or edi, edx
sub esi, 1
jne 0x406220
pop ebx
mov eax, 0x100
sub eax, edi
pop edi
shr eax, 8
pop esi
pop ebp
ret

Function at 0x40a510
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0x34
push dword [ebp + 8]
call fcn.00403120
add esp, 8
cmp byte [eax], 0
je 0x40a52e
mov dword [ebp + 8], eax
pop ebp
jmp fcn.00405a10
push 0x35
push dword [ebp + 8]
call fcn.004030c0
add esp, 8
test eax, eax
je 0x40a545
pop ebp
jmp fcn.0043f990
xor eax, eax
pop ebp
ret
Function at 0x40a810
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0043df30
add esp, 8
mov dword [ebp + 0x10], eax
pop ebp
jmp fcn.00445d10
Function at 0x41e5b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x4ba7e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x40], edi
movups xmm0, xmmword [edi + 0x3c8]
movups xmmword [ebp - 0x34], xmm0
test ebx, ebx
jle 0x41e715
dec ebx
add edx, 3
shr ebx, 4
inc ebx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], ebx
push esi
movzx ecx, byte [edx - 3]
lea esi, [edx - 1]
movzx eax, byte [edx - 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 2]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 6]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], ecx
movzx ecx, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xa]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], ecx
movzx ecx, byte [edx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xc]
shl ecx, 8
or ecx, eax
lea eax, [ebp - 0x14]
push eax
push edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], ecx
call fcn.0041e590
add esp, 8
xor edi, edi
mov edx, dword [ebp + edi - 0x34]
lea esi, [esi + 4]
mov ebx, dword [ebp + edi - 0x14]
mov ecx, edx
shr ecx, 0x18
mov eax, ebx
shr eax, 0x18
xor cl, al
mov eax, ebx
mov byte [esi - 6], cl
mov ecx, edx
shr ecx, 0x10
shr eax, 0x10
xor cl, al
mov eax, ebx
mov byte [esi - 5], cl
mov ecx, edx
shr eax, 8
xor dl, bl
shr ecx, 8
xor cl, al
mov byte [esi - 3], dl
mov eax, dword [ebp + edi - 0x24]
mov dword [ebp + edi - 0x34], eax
add edi, 4
mov byte [esi - 4], cl
cmp edi, 0x10
jl 0x41e694
mov edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
add edx, 0x10
sub dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], edx
jne 0x41e5f0
movups xmm0, xmmword [ebp - 0x34]
mov eax, edi
pop esi
pop edi
pop ebx
movups xmmword [eax + 0x3c8], xmm0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00448c15
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
movups xmmword [edi + 0x3c8], xmm0
pop edi
xor ecx, ebp
pop ebx
call fcn.00448c15
mov esp, ebp
pop ebp
ret
Function at 0x41f3c0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x4ba7e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
movups xmm0, xmmword [ebx + 0x3c8]
mov edi, dword [ebp + 0xc]
movups xmmword [ebp - 0x14], xmm0
test edi, edi
jle 0x41f51d
mov edx, dword [ebp - 8]
dec edi
shr edi, 4
add esi, 2
inc edi
nop word [eax + eax]
movzx ecx, byte [esi - 2]
movzx eax, byte [esi - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 3]
xor dword [ebp - 0x14], ecx
movzx ecx, byte [esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 7]
xor dword [ebp - 0x10], ecx
movzx ecx, byte [esi + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xb]
xor dword [ebp - 0xc], ecx
movzx ecx, byte [esi + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xd]
shl ecx, 8
or ecx, eax
lea eax, [ebp - 0x14]
push eax
xor edx, ecx
push ebx
mov dword [ebp - 8], edx
call fcn.0041f3a0
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, ecx
mov byte [esi + 1], cl
shr eax, 0x18
mov byte [esi - 2], al
mov eax, ecx
shr eax, 0x10
mov byte [esi - 1], al
mov eax, ecx
mov ecx, dword [ebp - 0x10]
shr eax, 8
mov byte [esi], al
mov eax, ecx
shr eax, 0x18
mov byte [esi + 2], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 3], al
mov eax, ecx
shr eax, 8
mov byte [esi + 4], al
mov byte [esi + 5], cl
mov ecx, dword [ebp - 0xc]
mov eax, ecx
shr eax, 0x18
mov byte [esi + 6], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 7], al
mov eax, ecx
shr eax, 8
mov edx, dword [ebp - 8]
lea esi, [esi + 0x10]
mov byte [esi - 8], al
mov eax, edx
shr eax, 0x18
mov byte [esi - 6], al
mov eax, edx
shr eax, 0x10
mov byte [esi - 5], al
mov eax, edx
shr eax, 8
mov byte [esi - 7], cl
mov byte [esi - 4], al
mov byte [esi - 3], dl
sub edi, 1
jne 0x41f400
movups xmm0, xmmword [ebp - 0x14]
mov ecx, dword [ebp - 4]
pop edi
pop esi
movups xmmword [ebx + 0x3c8], xmm0
xor ecx, ebp
pop ebx
call fcn.00448c15
mov esp, ebp
pop ebp
ret
Function at 0x420610
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 8]
push ebx
push edi
xor edi, edi
lea edx, [eax + 2]
mov cl, byte [eax + 1]
mov bh, byte [eax]
mov dword [ebp - 8], edx
mov byte [ebp - 1], cl
cmp dword [ebp + 0x10], edi
jle 0x420672
mov al, cl
push esi
inc bh
movzx esi, bh
add esi, edx
mov bl, byte [esi]
add al, bl
movzx ecx, al
add edx, ecx
movzx ecx, byte [edx]
mov byte [esi], cl
mov byte [edx], bl
movzx edx, byte [esi]
mov esi, dword [ebp + 0xc]
movzx ecx, bl
add edx, ecx
movzx ecx, dl
mov edx, dword [ebp - 8]
movzx ecx, byte [ecx + edx]
xor byte [edi + esi], cl
inc edi
cmp edi, dword [ebp + 0x10]
jl 0x420633
mov byte [ebp - 1], al
mov eax, dword [ebp + 8]
mov cl, byte [ebp - 1]
pop esi
pop edi
mov byte [eax], bh
mov byte [eax + 1], cl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4206f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x4ba7e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
push esi
push edi
lea ebx, [eax + 2]
mov word [eax], 0
mov edi, ebx
mov dword [ebp - 0x108], ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x104]
sub edi, eax
mov eax, ecx
lea esi, [ebp - 0x104]
xor edx, edx
add esi, ecx
div dword [ebp + 0x10]
mov byte [edi + esi], cl
inc ecx
mov al, byte [edx + ebx]
mov byte [esi], al
cmp ecx, 0x100
jb 0x420726
mov esi, dword [ebp - 0x108]
lea ebx, [ebp - 0x104]
xor edi, edi
mov dword [ebp - 0x10c], 0x100
sub ebx, esi
mov dl, byte [esi]
lea esi, [esi + 1]
movzx eax, byte [ebx + esi - 1]
add eax, edi
movzx ecx, dl
add ecx, eax
sub dword [ebp - 0x10c], 1
movzx edi, cl
mov ecx, dword [ebp - 0x108]
mov al, byte [edi + ecx]
mov byte [esi - 1], al
mov byte [edi + ecx], dl
jne 0x420760
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448c15
mov esp, ebp
pop ebp
ret
Function at 0x421750
Capabilities:
Encrypt data using blowfish

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
movups xmm0, xmmword [0x4a4170]
movups xmmword [eax + 0x1000], xmm0
lea edx, [eax + 0x800]
movups xmm0, xmmword [0x4a4180]
movups xmmword [eax + 0x1010], xmm0
movups xmm0, xmmword [0x4a4190]
movups xmmword [eax + 0x1020], xmm0
movups xmm0, xmmword [0x4a41a0]
movups xmmword [eax + 0x1030], xmm0
movq xmm0, qword [0x4a41b0]
movq qword [eax + 0x1040], xmm0
xor eax, eax
nop word [eax + eax]
mov ecx, dword [eax + 0x4a41b8]
lea edx, [edx + 4]
mov dword [edx - 0x804], ecx
mov ecx, dword [eax + 0x4a45b8]
mov dword [edx - 0x404], ecx
mov ecx, dword [eax + 0x4a49b8]
mov dword [edx - 4], ecx
mov ecx, dword [eax + 0x4a4db8]
add eax, 4
mov dword [edx + 0x3fc], ecx
cmp eax, 0x400
jl 0x4217b0
pop ebp
ret

Function at 0x4217f0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
push edi
mov ebx, dword [ecx + 0x1048]
mov edi, dword [ecx + 0x104c]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
test eax, eax
jle 0x4218e5
push esi
mov esi, dword [ebp + 8]
dec eax
shr eax, 3
add esi, 2
inc eax
mov dword [ebp + 0xc], eax
nop word [eax + eax]
movzx ebx, byte [esi + 1]
movzx eax, byte [esi]
movzx edi, byte [esi + 5]
shl ebx, 8
or ebx, eax
shl edi, 8
movzx eax, byte [esi - 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi - 2]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 4]
or edi, eax
movzx eax, byte [esi + 3]
shl edi, 8
or edi, eax
movzx eax, byte [esi + 2]
shl edi, 8
or edi, eax
lea eax, [ebp - 0x10]
push ecx
push eax
push edi
push ebx
call fcn.004209a0
mov ecx, dword [ebp - 4]
lea esi, [esi + 8]
xor ecx, dword [ebp - 0x10]
add esp, 0x10
mov edx, dword [ebp - 8]
mov eax, ecx
xor edx, dword [ebp - 0xc]
shr eax, 8
mov byte [esi - 9], al
mov eax, ecx
shr eax, 0x10
mov byte [esi - 8], al
mov eax, edx
shr eax, 8
mov byte [esi - 5], al
mov eax, edx
mov byte [esi - 0xa], cl
shr ecx, 0x18
mov byte [esi - 6], dl
shr eax, 0x10
shr edx, 0x18
sub dword [ebp + 0xc], 1
mov byte [esi - 7], cl
mov ecx, dword [ebp + 0x10]
mov byte [esi - 4], al
mov byte [esi - 3], dl
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
jne 0x421830
mov eax, ecx
pop esi
mov dword [eax + 0x104c], edi
pop edi
mov dword [eax + 0x1048], ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x104c], edi
pop edi
mov dword [ecx + 0x1048], ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x421900
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 8
push ebx
push edi
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + 0x1048]
mov ebx, dword [edi + 0x104c]
test eax, eax
jle 0x4219cb
push esi
mov esi, dword [ebp + 8]
dec eax
shr eax, 3
add esi, 2
inc eax
mov dword [ebp + 0x10], eax
movzx ecx, byte [esi + 5]
lea eax, [ebp - 8]
shl ecx, 8
push edi
push eax
movzx eax, byte [esi + 4]
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
xor ecx, ebx
push ecx
movzx ecx, byte [esi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi - 2]
shl ecx, 8
or ecx, eax
xor ecx, edx
push ecx
call fcn.00420dd0
mov edx, dword [ebp - 8]
lea esi, [esi + 8]
mov ebx, dword [ebp - 4]
mov eax, edx
shr eax, 8
add esp, 0x10
mov byte [esi - 9], al
mov eax, edx
shr eax, 0x10
mov byte [esi - 8], al
mov eax, edx
shr eax, 0x18
mov byte [esi - 7], al
mov eax, ebx
shr eax, 8
mov byte [esi - 5], al
mov eax, ebx
shr eax, 0x10
mov byte [esi - 4], al
mov eax, ebx
shr eax, 0x18
sub dword [ebp + 0x10], 1
mov byte [esi - 0xa], dl
mov byte [esi - 6], bl
mov byte [esi - 3], al
jne 0x421931
pop esi
mov dword [edi + 0x104c], ebx
mov dword [edi + 0x1048], edx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x421aa0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
push edi
mov ebx, dword [ecx + 0x1048]
mov edi, dword [ecx + 0x104c]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
test eax, eax
jle 0x421b99
push esi
mov esi, dword [ebp + 8]
dec eax
shr eax, 3
add esi, 2
inc eax
mov dword [ebp + 0xc], eax
nop word [eax + eax]
movzx ebx, byte [esi - 2]
movzx eax, byte [esi - 1]
movzx edi, byte [esi + 2]
shl ebx, 8
or ebx, eax
shl edi, 8
movzx eax, byte [esi]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 3]
or edi, eax
movzx eax, byte [esi + 4]
shl edi, 8
or edi, eax
movzx eax, byte [esi + 5]
shl edi, 8
or edi, eax
lea eax, [ebp - 0x10]
push ecx
push eax
push edi
push ebx
call fcn.004209a0
mov ecx, dword [ebp - 4]
lea esi, [esi + 8]
xor ecx, dword [ebp - 0x10]
add esp, 0x10
mov edx, dword [ebp - 8]
mov eax, ecx
xor edx, dword [ebp - 0xc]
shr eax, 0x18
mov byte [esi - 0xa], al
mov eax, ecx
shr eax, 0x10
mov byte [esi - 9], al
mov eax, ecx
shr eax, 8
mov byte [esi - 8], al
mov eax, edx
shr eax, 0x18
mov byte [esi - 6], al
mov eax, edx
shr eax, 0x10
mov byte [esi - 5], al
mov eax, edx
shr eax, 8
sub dword [ebp + 0xc], 1
mov byte [esi - 7], cl
mov ecx, dword [ebp + 0x10]
mov byte [esi - 4], al
mov byte [esi - 3], dl
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
jne 0x421ae0
mov eax, ecx
pop esi
mov dword [eax + 0x104c], edi
pop edi
mov dword [eax + 0x1048], ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x104c], edi
pop edi
mov dword [ecx + 0x1048], ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x421bb0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 8
push ebx
push edi
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + 0x1048]
mov ebx, dword [edi + 0x104c]
test eax, eax
jle 0x421c7b
push esi
mov esi, dword [ebp + 8]
dec eax
shr eax, 3
add esi, 2
inc eax
mov dword [ebp + 0x10], eax
movzx ecx, byte [esi + 2]
lea eax, [ebp - 8]
shl ecx, 8
push edi
push eax
movzx eax, byte [esi + 3]
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi - 1]
xor ecx, ebx
push ecx
movzx ecx, byte [esi - 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
xor ecx, edx
push ecx
call fcn.00420dd0
mov edx, dword [ebp - 8]
lea esi, [esi + 8]
mov ebx, dword [ebp - 4]
mov eax, edx
shr eax, 0x18
add esp, 0x10
mov byte [esi - 0xa], al
mov eax, edx
shr eax, 0x10
mov byte [esi - 9], al
mov eax, edx
shr eax, 8
mov byte [esi - 8], al
mov eax, ebx
shr eax, 0x18
mov byte [esi - 6], al
mov eax, ebx
shr eax, 0x10
mov byte [esi - 5], al
mov eax, ebx
shr eax, 8
sub dword [ebp + 0x10], 1
mov byte [esi - 7], dl
mov byte [esi - 4], al
mov byte [esi - 3], bl
jne 0x421be1
pop esi
mov dword [edi + 0x104c], ebx
mov dword [edi + 0x1048], edx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x421c90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + 0x1048]
mov ecx, dword [edi + 0x104c]
mov dword [ebp - 4], edx
mov dword [ebp + 0x10], ecx
test eax, eax
jle 0x421da4
push ebx
push esi
mov esi, dword [ebp + 8]
dec eax
shr eax, 3
add esi, 2
inc eax
mov dword [ebp + 0xc], eax
push edi
lea eax, [ebp - 0xc]
push eax
push ecx
push edx
call fcn.00420dd0
movzx ebx, byte [esi - 2]
lea esi, [esi + 8]
movzx eax, byte [esi - 9]
add esp, 0x10
mov edx, dword [ebp - 0xc]
mov ecx, edx
shl ebx, 8
or ebx, eax
shr ecx, 0x18
movzx eax, byte [esi - 8]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi - 7]
shl ebx, 8
or ebx, eax
mov eax, ebx
shr eax, 0x18
xor cl, al
mov eax, ebx
mov byte [esi - 0xa], cl
mov ecx, edx
shr ecx, 0x10
shr eax, 0x10
xor cl, al
mov eax, ebx
mov byte [esi - 9], cl
xor bl, dl
shr eax, 8
mov ecx, edx
mov edx, dword [ebp - 8]
shr ecx, 8
xor cl, al
mov byte [esi - 7], bl
movzx ebx, byte [esi - 6]
movzx eax, byte [esi - 5]
shl ebx, 8
or ebx, eax
mov byte [esi - 8], cl
movzx eax, byte [esi - 4]
mov ecx, edx
shl ebx, 8
or ebx, eax
shr ecx, 0x18
movzx eax, byte [esi - 3]
shl ebx, 8
or ebx, eax
mov eax, ebx
shr eax, 0x18
xor cl, al
mov eax, ebx
mov byte [esi - 6], cl
mov ecx, edx
shr ecx, 0x10
shr eax, 0x10
xor cl, al
mov eax, ebx
mov byte [esi - 5], cl
xor bl, dl
mov ecx, edx
shr eax, 8
mov edx, dword [ebp - 4]
shr ecx, 8
xor cl, al
mov byte [esi - 3], bl
mov byte [esi - 4], cl
mov ecx, dword [ebp + 0x10]
lea eax, [edx + 1]
add ecx, 1
mov dword [ebp + 0x10], ecx
cmovne eax, edx
sub dword [ebp + 0xc], 1
mov edx, eax
mov dword [ebp - 4], edx
jne 0x421cc7
pop esi
pop ebx
mov dword [edi + 0x104c], ecx
mov dword [edi + 0x1048], edx
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x424d00
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [esi], 0x61707865
mov dword [esi + 4], 0x3320646e
mov dword [esi + 8], 0x79622d32
mov dword [esi + 0xc], 0x6b206574
movzx ecx, byte [edx + 3]
shl ecx, 8
movzx eax, byte [edx + 2]
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x10], ecx
movzx ecx, byte [edx + 7]
shl ecx, 8
movzx eax, byte [edx + 6]
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x14], ecx
movzx ecx, byte [edx + 0xb]
movzx eax, byte [edx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 8]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x18], ecx
movzx ecx, byte [edx + 0xf]
movzx eax, byte [edx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xc]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x1c], ecx
movzx ecx, byte [edx + 0x13]
movzx eax, byte [edx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x10]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x20], ecx
movzx ecx, byte [edx + 0x17]
movzx eax, byte [edx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x14]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x24], ecx
movzx ecx, byte [edx + 0x1b]
movzx eax, byte [edx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x19]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [edx + 0x18]
or ecx, eax
mov dword [esi + 0x28], ecx
movzx ecx, byte [edx + 0x1f]
movzx eax, byte [edx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1c]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x80], 0x40
mov dword [esi + 0x2c], ecx
pop esi
pop ebp
ret