joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4285e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], eax
cmp dword [eax + 0xc], 0
je 0x428634
push ebx
push esi
xor esi, esi
mov ebx, edx
push edi
mov edi, ecx
test ecx, ecx
jle 0x428624
movzx eax, byte [ebx]
lea ecx, [esi*8]
dec edi
lea ebx, [ebx + 1]
movzx edx, byte [eax + 0x5543c8]
xor edx, ecx
xor esi, edx
test edi, edi
jg 0x428604
mov ecx, dword [ebp + 8]
mov eax, esi
xor edx, edx
mov esi, dword [ebp - 4]
pop edi
div dword [esi]
mov eax, esi
pop esi
pop ebx
jmp 0x428636
xor edx, edx
push edx
mov edx, dword [ebp - 8]
push ecx
mov ecx, eax
call fcn.004284d0
add esp, 8
test eax, eax
je 0x428650
mov eax, dword [eax + 8]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov esp, ebp
pop ebp
ret

Function at 0x428660
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], edi
cmp dword [esi], 0
je 0x4286b5
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, eax
test eax, eax
jle 0x4286a5
mov esi, edx
movzx eax, byte [esi]
lea ecx, [edi*8]
dec ebx
lea esi, [esi + 1]
movzx edx, byte [eax + 0x5543c8]
xor edx, ecx
xor edi, edx
test ebx, ebx
jg 0x428685
mov esi, dword [ebp - 0xc]
mov eax, edi
xor edx, edx
div dword [esi]
mov edi, dword [ebp - 8]
mov ebx, edx
mov dword [ebp - 4], edx
jmp 0x4286ba
xor ebx, ebx
mov dword [ebp - 4], ebx
push ebx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.004284d0
add esp, 8
test eax, eax
je 0x428702
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x4286f2
push ebx
mov edx, eax
mov ecx, esi
call fcn.00428580
mov eax, dword [ebp - 0xc]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x428791
push 0x14
call fcn.00424350
mov edi, eax
add esp, 4
test edi, edi
jne 0x428726
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x10], eax
mov dword [edi + 8], ebx
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0xa
jb 0x428766
mov eax, dword [esi]
add eax, eax
cmp edx, eax
jbe 0x428766
add edx, edx
mov ecx, esi
call fcn.00428380
test eax, eax
je 0x428766
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.004282d0
xor edx, edx
div dword [esi]
jmp 0x428769
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0xc]
mov ecx, esi
push edi
test eax, eax
je 0x428787
lea edx, [eax + edx*8]
call fcn.00428310
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
call fcn.00428310
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x45a420
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov eax, edx
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], edx
push esi
mov esi, ecx
mov dword [ebp - 8], esi
push edi
mov edi, eax
test eax, eax
je 0x45a44f
cmp byte [eax], dl
je 0x45a447
inc edi
cmp byte [edi], dl
jne 0x45a442
sub edi, eax
and edi, 0x3fffffff
xor ebx, ebx
cmp dword [esi + 0x14], edx
jle 0x45a4fb
nop word [eax + eax]
mov eax, ebx
mov ecx, ebx
xor eax, 1
cmp ebx, 2
cmovl ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
test eax, eax
je 0x45a4cb
mov edx, ecx
mov ecx, dword [esi + 0x10]
add edx, edx
mov esi, dword [ecx + edx*8]
mov ecx, eax
mov cl, byte [ecx]
test cl, cl
je 0x45a4ad
nop dword [eax]
movzx edx, byte [esi]
movzx ecx, cl
mov cl, byte [ecx + 0x5543c8]
cmp cl, byte [edx + 0x5543c8]
jne 0x45a4ad
mov cl, byte [eax + 1]
inc eax
inc esi
test cl, cl
jne 0x45a490
movzx ecx, byte [esi]
movzx eax, byte [eax]
mov esi, dword [ebp - 8]
movzx ecx, byte [ecx + 0x5543c8]
movzx eax, byte [eax + 0x5543c8]
sub eax, ecx
jne 0x45a4ee
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [ebp - 0x10]
push edi
mov ecx, dword [eax + ecx*8 + 0xc]
add ecx, 8
call fcn.004285e0
mov edx, eax
add esp, 4
mov dword [ebp - 4], edx
test edx, edx
jne 0x45a4fb
jmp 0x45a4f1
mov edx, dword [ebp - 4]
inc ebx
cmp ebx, dword [esi + 0x14]
jl 0x45a460
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x45a620
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, edx
xor edx, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], edx
push ebx
push edi
mov edi, eax
test eax, eax
je 0x45a64d
cmp byte [eax], dl
je 0x45a645
nop dword [eax]
inc edi
cmp byte [edi], dl
jne 0x45a640
sub edi, eax
and edi, 0x3fffffff
mov eax, dword [ecx + 0x14]
xor ebx, ebx
mov dword [ebp - 0x10], eax
test eax, eax
jle 0x45a6f9
push esi
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x14], esi
mov ecx, ebx
mov eax, ebx
xor ecx, 1
cmp ebx, 2
cmovl eax, ecx
mov ecx, dword [ebp + 8]
shl eax, 4
add esi, eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 8], eax
test ecx, ecx
je 0x45a6cb
mov esi, dword [esi]
mov eax, ecx
mov cl, byte [ecx]
test cl, cl
je 0x45a6b0
nop dword [eax]
movzx edx, byte [esi]
movzx ecx, cl
mov cl, byte [ecx + 0x5543c8]
cmp cl, byte [edx + 0x5543c8]
jne 0x45a6ad
mov cl, byte [eax + 1]
inc eax
inc esi
test cl, cl
jne 0x45a690
mov edx, dword [ebp - 4]
movzx eax, byte [eax]
movzx ecx, byte [esi]
movzx eax, byte [eax + 0x5543c8]
movzx ecx, byte [ecx + 0x5543c8]
sub eax, ecx
jne 0x45a6e3
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
lea ecx, [eax + 0x18]
push edi
call fcn.004285e0
mov edx, eax
add esp, 4
mov dword [ebp - 4], edx
test edx, edx
jne 0x45a6f0
mov esi, dword [ebp - 0x14]
inc ebx
cmp ebx, dword [ebp - 0x10]
jl 0x45a664
pop esi
pop edi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4d273a
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp 0x522230
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x40
cmp dword [0x5720f0], 1
jge 0x52229f
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
je 0x522275
mov edx, dword [ebx + 8]
movzx eax, word [edx]
movzx ecx, word [ebx + 0xc]
cmp eax, ecx
je 0x522275
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x522252
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x52228b
mov eax, dword [ebx + 8]
mov dword [ebp - 4], eax
jmp 0x522292
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
jmp 0x52238f
movzx ecx, word [ebx + 0xc]
movd xmm0, ecx
movaps xmmword [ebp - 0x30], xmm0
pshuflw xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
pshufd xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
mov edx, dword [ebx + 8]
and edx, 0xfff
cmp edx, 0xff0
ja 0x522360
mov eax, dword [ebx + 8]
movups xmm0, xmmword [eax]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pcmpeqw xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x40]
pcmpeqw xmm0, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
por xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pmovmskb ecx, xmm0
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x522355
bsf edx, dword [ebp - 8]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebx + 8]
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
movzx edx, word [ecx]
movzx eax, word [ebx + 0xc]
cmp edx, eax
jne 0x522349
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xc], ecx
jmp 0x522350
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
jmp 0x52238f
mov edx, dword [ebx + 8]
add edx, 0x10
mov dword [ebx + 8], edx
jmp 0x52238a
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x522373
mov eax, dword [ebx + 8]
jmp 0x52238f
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
jne 0x522381
xor eax, eax
jmp 0x52238f
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x5222bf
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret

Function at 0x4d2745
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004d22d6

Function at 0x4d2970
Capabilities:
Delete file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4d2997
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004b84c0
add esp, 4
or eax, 0xffffffff
jmp 0x4d2999
xor eax, eax
pop ebp
ret
Function at 0x4d6a40
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
call fcn.004cb700
mov byte [ebp - 1], al
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4d6a7e
cmp dword [ebp + 8], 0
je 0x4d6a6c
lea eax, [ebp + 8]
push eax
call fcn.004d6c40
add esp, 4
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x4d6a7e
mov eax, 4
jmp 0x4d6bae
call fcn.004cb500
movzx edx, al
test edx, edx
jne 0x4d6aac
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4d6a9d
mov dword [ebp - 0xc], 4
jmp 0x4d6aa4
mov dword [ebp - 0xc], 3
mov eax, dword [ebp - 0xc]
jmp 0x4d6bae
movzx eax, byte [ebp - 1]
test eax, eax
je 0x4d6b55
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
push 0
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0x4d6bf0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
lea ecx, [ebp - 8]
call fcn.004c0510
lea ecx, [ebp - 8]
call fcn.004b73b0
movzx edx, al
test edx, edx
jne 0x4d6b17
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 8]
call fcn.004b7370
mov eax, dword [ebp - 0x10]
jmp 0x4d6bae
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.004d37d0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
je 0x4d6b42
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.004b7370
mov eax, dword [ebp - 0x14]
jmp 0x4d6bae
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 8]
call fcn.004b7370
mov eax, dword [ebp - 0x18]
jmp 0x4d6bae
call fcn.004cb650
movzx ecx, al
test ecx, ecx
jne 0x4d6b8e
mov edx, dword [ebp + 0x10]
or edx, 0x200000
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.004d6bc0
add esp, 0x10
jmp 0x4d6bae
call fcn.004cb560
mov dword [ebp - 0x24], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.004d6bc0
add esp, 0x10
mov esp, ebp
pop ebp
ret

Function at 0x4ebec0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret

Function at 0x4ec5a0
Capabilities:
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x4ec5de
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00403650
add esp, 4
push eax
lea ecx, [ebp - 0x10]
call fcn.00500ef0
push 0x569de4
lea edx, [ebp - 0x10]
push edx
call fcn.00496820
mov esp, ebp
pop ebp
ret
Function at 0x50a1a0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x529778
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x56e00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
add eax, 0x20
push eax
lea ecx, [ebp - 0x20]
call fcn.00509ce0
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
call fcn.0048e130
mov ecx, dword [ebp + 8]
call dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
call fcn.005082e0
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 8]
push ecx
imul edx, dword [ebp - 0x18], 0x34
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
imul eax, dword [ebp - 0x1c], 0x34
mov ecx, dword [ecx + edx + 0x30]
lea ecx, [ecx + eax + 0xc]
call fcn.0050a250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.004ed4e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4

Function at 0x50a860
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5297e8
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x56e00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 0
push 0
push 0x570a58
push 0x570a8c
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.00522d40
add esp, 0x14
mov dword [ebp - 0x14], eax
mov byte [ebp - 0xd], 0
cmp dword [ebp - 0x14], 0
jne 0x50a8c5
mov ecx, dword [ebp + 8]
call fcn.0050b220
mov dword [ebp - 0x14], eax
mov byte [ebp - 0xd], 1
movzx ecx, byte [ebp - 0xd]
test ecx, ecx
je 0x50a8f5
mov ecx, dword [ebp - 0x14]
call fcn.004f2a90
cmp eax, dword [ebp - 0x18]
je 0x50a8f5
push str.pExecutionResource
lea ecx, [ebp - 0x3c]
call fcn.0048fe00
push 0x568ffc
lea edx, [ebp - 0x3c]
push edx
call fcn.00496820
mov eax, dword [ebp - 0x18]
add eax, 0x20
push eax
lea ecx, [ebp - 0x30]
call fcn.00509ce0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
call fcn.0048e130
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x20]
imul ecx, eax, 0x34
mov edx, dword [ebp - 0x18]
add ecx, dword [edx + 0x10]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x14]
call fcn.005082e0
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
call fcn.0048e130
mov ecx, dword [ebp - 0x18]
call dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
call fcn.0050c040
mov ecx, dword [ebp - 0x1c]
call fcn.0050b220
push eax
imul edx, dword [ebp - 0x28], 0x34
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x30]
lea ecx, [ecx + edx + 0xc]
call fcn.0050a250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004ed4e0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x4013c5
Capabilities:
Encode data using xor

Disassembly:
jmp 0x4159d0
push esi
push edi
mov edi, dword [esp + 0x10]
xor esi, esi
test edi, edi
je 0x415b7a
push ebx
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
sub byte [esi + ebx], 0x57
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x7e
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
xor byte [esi + ebx], 0x2b
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x17
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
sub byte [esi + ebx], 0x80
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
add esp, 0x44
push eax
call fcn.0040616d
add byte [esi + ebx], 0xfc
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x12
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0xac
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x3f
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x2d
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x15
add esp, 0x40
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0xcd
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
xor byte [esi + ebx], 0xd
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0x77
push str.Halloween_Beasts
push 0x4d34b0
call fcn.00402d79
push eax
call fcn.0040616d
add byte [esi + ebx], 0xbc
add esp, 0x30
inc esi
cmp esi, edi
jb 0x4159f0
pop ebx
pop edi
pop esi
ret

Function at 0x4035f3
Capabilities:
Terminate process

Disassembly:
jmp 0x453df9
push 0x17
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x453e0a
push 5
pop ecx
int 0x29
push esi
push 1
mov esi, 0xc0000417
push esi
push 2
call fcn.00405948
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
pop esi
ret

Function at 0x40371f
Capabilities:
Query environment variable

Disassembly:
jmp 0x49c842
mov edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x49c853
pop esi
ret
push ebx
push edi
push esi
call fcn.0049c729
mov ebx, eax
sub ebx, esi
and ebx, 0xfffffffe
push ebx
call fcn.00403fe4
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x49c87b
push ebx
push esi
push edi
call fcn.0040572c
add esp, 0xc
push 0
call fcn.004062b2
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, edi
pop edi
pop ebx
pop esi
ret
Function at 0x405a3d
Capabilities:
Create process on windows

Disassembly:
mov eax, dword [esp + 4]
push eax
and dword [eax + 0x24], 0
mov dword [eax], 0x3c
call dword [sym.imp.shell32.dll_ShellExecuteExW]
ret 4

Function at 0x405b23
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
pushal
call 0x405b32
pop dword [ebp - 8]
mov eax, 0x37b5ef8b
sub eax, 0x37759459
sub dword [ebp - 8], eax
mov dword [ebp - 0x18], 0xe0e3dbc0
sub dword [ebp - 0x18], 0x92919675
mov dword [ebp - 0x14], 0xd8c1a204
sub dword [ebp - 0x14], 0xa68e55bf
mov dword [ebp - 0x10], 0x3ed09f4e
sub dword [ebp - 0x10], 0xf2845b20
mov dword [ebp - 0xc], 0xe2b59aec
sub dword [ebp - 0xc], 0xe2b59aec
lea eax, [ebp - 0x18]
push eax
mov eax, 0x2cbffcfa
sub eax, 0x2c7f7c82
add eax, dword [ebp - 8]
call dword [eax]
mov dword [ebp - 0x18], 0x2ea5fe37
sub dword [ebp - 0x18], 0xba3394e1
mov dword [ebp - 0x14], 0x7c351775
add dword [ebp - 0x14], 0xc5374a00
mov dword [ebp - 0x10], 0xb0ee68a3
sub dword [ebp - 0x10], 0x4d7efc37
mov dword [ebp - 0xc], 0x9ddff905
add dword [ebp - 0xc], 0x622006fb
lea ebx, [ebp - 0x18]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 8]
call dword [eax]
push 0x40
push 0x1000
push 0x376cc
push 0
call eax
mov ecx, 0x49a9
xor ebx, ebx
add ebx, eax
mov esi, 0x6ab46a4
sub esi, 0x66632a4
add esi, dword [ebp - 8]
mov edx, 0xd4b295e7
add edx, 0xfce02a6d
add dword [ebp - 4], esi
mov edi, dword [esi]
add dword [ebp - 4], 0x4c6c25f3
xor edi, edx
sub dword [ebp - 4], 0x67825b
mov dword [ebx], edi
add dword [ebp - 4], ecx
add ebx, 0x55605cdd
add ebx, 0xaa9fa327
add esi, 0x323b7c37
sub esi, 0x323b7c33
loop 0x405c4b
add eax, 0x81706b81
sub eax, 0x816f520a
mov ebx, eax
add eax, 0x9c7718f0
add eax, 0x6388e715
mov ecx, 0x400000
add ecx, dword [ebp - 8]
call ebx
leave
ret

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

Disassembly:
push esi
push edi
push dword [esp + 0xc]
mov esi, 0x42fa70
push esi
call fcn.00406411
push esi
call fcn.00405d91
mov edi, eax
test edi, edi
jne 0x405e0f
xor eax, eax
jmp 0x405e67
push edi
call fcn.004066c0
test byte [0x434f1c], 0x80
je 0x405e2c
mov ax, word [edi]
test ax, ax
je 0x405e0b
cmp ax, 0x5c
je 0x405e0b
sub edi, esi
sar edi, 1
jmp 0x405e46
call fcn.0040676f
test eax, eax
je 0x405e40
test byte [eax], 0x10
je 0x405e0b
push esi
call fcn.00405d32
push esi
call sub.kernel32.dll_lstrlenW
cmp eax, edi
push esi
jg 0x405e32
call fcn.00405ce6
push esi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, ecx
pop edi
pop esi
ret 4

Function at 0x405ee2
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push esi
push dword [esp + 8]
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
je 0x405f01
and al, 0xfe
push eax
push dword [esp + 0xc]
call dword [sym.imp.kernel32.dll_SetFileAttributesW]
mov eax, esi
pop esi
ret 4
Function at 0x431005
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
mov eax, section..3ean
mov ebx, 0x40915c
nop
nop
mov ecx, 0x166749
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x43104e
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
nop
jne 0x431024
nop
nop
mov eax, section..7LWLf
mov ebx, 0x42f3f8
nop
nop
mov ecx, 0x71102523
nop
nop
nop
test eax, eax
nop
nop
je 0x431084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x43106c
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x401219