joyce8/EMBER2024-capa huggingface dataset:
Function at 0x58cfa0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x5abd63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
mov cl, byte [esi + 9]
xor eax, eax
test cl, cl
mov dword [esp + 0x14], 1
jne 0x58d029
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0xc], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.0058d890
test al, al
je 0x58d024
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0xc], esp
push edx
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 8]
mov ecx, esi
push eax
call fcn.0058d3c0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x18], 2
call fcn.0058dfec
lea ecx, [esp + 4]
mov byte [esp + 0x14], 1
call fcn.0058df86
jmp 0x58cfcc
mov eax, 1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x58d081
push 8
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 8], esi
test esi, esi
mov byte [esp + 0x14], 3
je 0x58d067
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, esi
call fcn.0058b930
jmp 0x58d069
xor eax, eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push 0x5dc018
push eax
mov byte [esp + 0x1c], 1
call sub.MSVCRT.dll__CxxThrowException
mov al, byte [esp + 0x24]
test al, al
je 0x58d0a1
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.0058bef0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x14], 0
call fcn.0058df86
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], 0xffffffff
call fcn.0058df86
mov ecx, dword [esp + 0xc]
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret 0xc
Function at 0x58d910
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5abf38
push eax
mov dword fs:[0], esp
push esi
push edi
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
or edi, 0xffffffff
cmp eax, edi
jne 0x58d991
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 2
je 0x58d96f
call esi
cmp eax, 3
je 0x58d96f
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], edi
call fcn.0058df86
mov eax, edi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0xc
ret 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], edi
call fcn.0058df86
xor eax, eax
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0xc
ret 4
test al, 0x10
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x18]
je 0x58d9ba
call fcn.0058df86
mov eax, 2
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0xc
ret 4
call fcn.0058df86
mov ecx, dword [esp + 8]
pop edi
mov eax, 1
mov dword fs:[0], ecx
pop esi
add esp, 0xc
ret 4
Function at 0x58da30
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x5abf7b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
mov esi, ecx
mov eax, dword [esp + 0x30]
xor ebx, ebx
push eax
mov dword [esp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
or edi, 0xffffffff
cmp eax, edi
je 0x58db6a
test al, 1
je 0x58db18
cmp byte [esi + 8], bl
je 0x58dbcc
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
push 0x5c
lea ecx, [esp + 0x10]
mov byte [esp + 0x2c], 1
call sub.MFC42.DLL_CString::ReverseFind
cmp eax, edi
je 0x58daa8
inc eax
lea ecx, [esp + 0xc]
push eax
push ebx
call sub.MFC42.DLL_CString::Delete
push str._is_read_olny._Do_you_want_delete_it_
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push eax
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push eax
mov byte [esp + 0x34], 2
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 4
call fcn.0058df86
mov ecx, dword [esp + 0x10]
push 0x23
push str.Warning
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
sub eax, 2
je 0x58db8d
sub eax, 4
je 0x58db3b
dec eax
mov byte [esp + 0x28], 1
lea ecx, [esp + 0x10]
je 0x58db58
call fcn.0058df86
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], bl
call fcn.0058df86
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x30]
call fcn.0058df86
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 4
mov edx, dword [esp + 0x30]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
mov byte [esp + 0x28], 1
lea ecx, [esp + 0x10]
jne 0x58db06
call fcn.0058df86
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], bl
call fcn.0058df86
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], edi
call fcn.0058df86
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 4
push 8
mov byte [esi + 0xa], 1
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, ebx
mov byte [esp + 0x28], 5
je 0x58dbb2
push ebx
mov ecx, eax
call fcn.0058b930
jmp 0x58dbb4
xor eax, eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 0x5dc018
push eax
mov byte [esp + 0x30], 4
call sub.MSVCRT.dll__CxxThrowException
mov ecx, dword [esp + 0x30]
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x30]
jne 0x58db20
call fcn.0058df86
mov ecx, dword [esp + 0x20]
pop edi
pop esi
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret 4
Function at 0x593a90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x5ac513
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [esp + 8], esi
call fcn.00442ab0
mov edi, dword [esp + 0x1c]
lea ecx, [esi + 8]
mov dword [esp + 0x14], 0
lea eax, [edi + 8]
push eax
call fcn.00533b20
add edi, 0x30
lea ecx, [esi + 0x30]
push edi
mov byte [esp + 0x18], 1
call fcn.00538ad0
mov ecx, dword [esp + 0xc]
mov dword [esi], 0x5bed38
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4

Function at 0x593aa6
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x5ac513
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [esp + 8], esi
call fcn.00442ab0
mov edi, dword [esp + 0x1c]
lea ecx, [esi + 8]
mov dword [esp + 0x14], 0
lea eax, [edi + 8]
push eax
call fcn.00533b20
add edi, 0x30
lea ecx, [esi + 0x30]
push edi
mov byte [esp + 0x18], 1
call fcn.00538ad0
mov ecx, dword [esp + 0xc]
mov dword [esi], 0x5bed38
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4
Function at 0x5d3d20
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1ce000]
push edi
jmp 0x5d3d3a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x5d3d41
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5d3d30
mov eax, 1
add ebx, ebx
jne 0x5d3d53
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x5d3d64
jne 0x5d3d83
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5d3d83
dec eax
add ebx, ebx
jne 0x5d3d70
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x5d3d48
add ebx, ebx
jne 0x5d3d7f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x5d3dd5
xor ecx, ecx
sub eax, 3
jb 0x5d3d9b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x5d3e0a
sar eax, 1
mov ebp, eax
jmp 0x5d3da6
add ebx, ebx
jne 0x5d3da6
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5d3d74
inc ecx
add ebx, ebx
jne 0x5d3db4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5d3d74
add ebx, ebx
jne 0x5d3dc1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x5d3db6
jne 0x5d3dd2
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x5d3db6
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x5d3df4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x5d3de6
jmp 0x5d3d36
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x5d3df4
add edi, ecx
jmp 0x5d3d36
pop esi
mov edi, esi
mov ecx, 0x255
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x5d3e12
cmp byte [edi], 1
jne 0x5d3e12
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x5d3e17
lea edi, [esi + 0x1d1000]
mov eax, dword [edi]
or eax, eax
je 0x5d3e8f
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x1f671c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1f67d0]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x5d3e44
mov ecx, edi
jns 0x5d3e73
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x1f67d4]
or eax, eax
je 0x5d3e89
mov dword [ebx], eax
add ebx, 4
jmp 0x5d3e61
call dword [esi + 0x1f67e4]
mov ebp, dword [esi + 0x1f67d8]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1ff]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x5d3ec3
sub esp, 0xffffff80
jmp 0x40354b
Function at 0x40106a
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ebx
push esi
mov esi, dword [eax + 4]
mov eax, dword [0x4643f8]
mov dword [ebp - 0x28], eax
mov eax, dword [0x4643fc]
push edi
xor edi, edi
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], edi
call fcn.00401063
mov eax, dword [0x464400]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [0x464404]
add ebx, 0x23f
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], 0x20
mov dword [ebp - 0x10], 2
add dword [ebp - 0x10], 3
mov eax, dword [ebp - 0xc]
shl eax, 4
cmp dword [0x1a54fac], 0xc
mov dword [ebp - 4], eax
jne 0x4010ef
push edi
lea eax, [ebp - 0x34]
push eax
push edi
lea eax, [ebp - 0x43c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadConsoleW]
mov eax, dword [ebp - 0x30]
add dword [ebp - 4], eax
mov eax, dword [0x1a54fac]
cmp eax, 0xfa9
jne 0x40110b
mov dword [0x1a54fa8], 0xedeb2e40
cmp eax, 0x3eb
jne 0x401123
push edi
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov dword [0x1a54efc], edi
mov eax, dword [ebp - 0xc]
add eax, ebx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
shr eax, 5
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2c]
add dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov dword [0x1a54fa4], 0xf4ea3dee
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
xor dword [ebp - 8], eax
sub esi, dword [ebp - 8]
cmp dword [0x1a54fac], 0xc
mov dword [ebp - 4], eax
jne 0x40117b
lea eax, [ebp - 0x38]
push eax
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov eax, esi
shl eax, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x28]
add dword [ebp - 4], eax
mov ecx, dword [ebp - 0x10]
lea eax, [ebx + esi]
mov dword [ebp - 0x18], eax
mov eax, esi
shr eax, cl
add eax, dword [ebp - 0x24]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
xor dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
xor dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
sub dword [ebp - 0xc], eax
add ebx, 0x61c88647
dec dword [ebp - 0x20]
jne 0x4010be
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [eax + 4], esi
pop esi
mov dword [eax], ecx
pop ebx
leave
ret 4
Function at 0x405d1a
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x4637d8]
jne 0x405d24
repz ret
jmp fcn.0040a84f

Function at 0x40a13a
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.00405e1c
and dword [ebp - 4], 0
cmp dword [0x46d43c], 0
mov ebx, eax
jne 0x40a1eb
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40a29c
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x40a29c
push eax
call fcn.00405daa
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x46d43c], eax
call esi
push eax
call fcn.00405daa
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x46d440], eax
call esi
push eax
call fcn.00405daa
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x46d444], eax
call esi
push eax
call fcn.00405daa
pop ecx
mov dword [0x46d44c], eax
test eax, eax
je 0x40a1eb
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00405daa
pop ecx
mov dword [0x46d448], eax
mov eax, dword [0x46d448]
cmp eax, ebx
je 0x40a243
cmp dword [0x46d44c], ebx
je 0x40a243
push eax
call fcn.00405e25
push dword [0x46d44c]
mov esi, eax
call fcn.00405e25
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x40a243
test edi, edi
je 0x40a243
call esi
test eax, eax
je 0x40a23a
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x40a23a
test byte [ebp - 0xc], 1
jne 0x40a243
or dword [ebp + 0x10], 0x200000
jmp 0x40a27c
mov eax, dword [0x46d440]
cmp eax, ebx
je 0x40a27c
push eax
call fcn.00405e25
pop ecx
test eax, eax
je 0x40a27c
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40a27c
mov eax, dword [0x46d444]
cmp eax, ebx
je 0x40a27c
push eax
call fcn.00405e25
pop ecx
test eax, eax
je 0x40a27c
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x46d43c]
call fcn.00405e25
pop ecx
test eax, eax
je 0x40a29c
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40a29e
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x407e15
Capabilities:
Terminate process

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

Function at 0x4085a6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
pushal
call 0x4085b5
pop dword [ebp - 8]
mov eax, 0xa6ced8bc
sub eax, 0xa68e5307
sub dword [ebp - 8], eax
mov dword [ebp - 0x18], 0xfe73da63
add dword [ebp - 0x18], 0x4fde6ae8
mov dword [ebp - 0x14], 0xbeb3aa5
add dword [ebp - 0x14], 0x264811a0
mov dword [ebp - 0x10], 0xc856a255
add dword [ebp - 0x10], 0x83f5a1d9
mov dword [ebp - 0xc], 0x7cf143a4
sub dword [ebp - 0xc], 0x7cf143a4
lea eax, [ebp - 0x18]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 8]
call dword [eax]
mov dword [ebp - 0x18], 0x732f9e6b
add dword [ebp - 0x18], 0x142caeb
mov dword [ebp - 0x14], 0x16a62510
add dword [ebp - 0x14], 0x2ac63c65
mov dword [ebp - 0x10], 0xd4d5b63e
add dword [ebp - 0x10], 0x8e99b62e
mov dword [ebp - 0xc], 0x77c9ec21
add dword [ebp - 0xc], 0x883613df
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 0x412a4
push 0
call eax
mov ecx, 0xbeb4799a
add ecx, 0x414bdc34
xor ebx, ebx
add ebx, eax
mov edx, 0xea947794
sub edx, 0xea513394
add edx, dword [ebp - 8]
mov edi, 0x57c78d16
add dword [ebp - 4], 0x6988c773
mov esi, dword [edx]
sub dword [ebp - 4], edi
sub esi, edi
mov dword [ebx], esi
xor dword [ebp - 4], 0x6a50123a
add ebx, 0x1c4172bd
add ebx, 0xe3be8d47
add edx, 0x97fff22e
sub edx, 0x97fff22a
loop 0x4086c9
add eax, 0x514cdbbf
add eax, 0xaeb46e4c
mov ebx, eax
add eax, 0x4a77077e
add eax, 0xb588f887
mov ecx, 0x4b3ff832
add ecx, 0xb50007ce
add ecx, dword [ebp - 8]
call ebx
leave
ret
Function at 0x407e15
Capabilities:
Terminate process

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

Function at 0x420ed5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
pushal
call 0x420ee4
pop dword [ebp - 0x24]
mov eax, 0x420ee4
sub dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0xcd6a9b44
add dword [ebp - 0x34], 0x80e7aa07
mov dword [ebp - 0x30], 0x2f6705d1
sub dword [ebp - 0x30], 0xfd33b98c
mov dword [ebp - 0x2c], 0xa5be8f81
sub dword [ebp - 0x2c], 0x59724b53
mov dword [ebp - 0x28], 0x83bf5926
add dword [ebp - 0x28], 0x7c40a6da
lea eax, [ebp - 0x34]
push eax
mov eax, 0x2f387acf
sub eax, 0x2ef64a5b
add eax, dword [ebp - 0x24]
call dword [eax]
mov dword [ebp - 0x34], 0x8a7ca762
add dword [ebp - 0x34], 0xe9f5c1f4
mov dword [ebp - 0x30], 0xc1227752
sub dword [ebp - 0x30], 0x7fb615dd
mov dword [ebp - 0x2c], 0x555235e2
add dword [ebp - 0x2c], 0xe1d368a
mov dword [ebp - 0x28], 0xb05696c2
sub dword [ebp - 0x28], 0xb05696c2
lea ebx, [ebp - 0x34]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x24]
call dword [eax]
push 0x40
push 0x1000
push 0x41624
push 0
call eax
mov ecx, 0xa584970d
sub ecx, 0xa5844087
mov edx, eax
mov ebx, 0xa87cd9d0
add ebx, 0x57c66a30
add ebx, dword [ebp - 0x24]
mov esi, 0x57b84e9a
mov dword [ebp - 0x18], 0x8096ceb
mov edi, dword [ebx]
xor dword [ebp - 0x18], 0xb4893ec1
sub edi, esi
add dword [ebp - 0x10], 0x64098bcc
mov dword [edx], edi
sub dword [ebp - 0x14], edx
add edx, 0xddd8b7fb
sub edx, 0xddd8b7f7
add ebx, 4
loop 0x420ff6
add eax, 0x14ceb
xor ebx, ebx
add ebx, eax
add eax, 0xf5b75957
sub eax, 0xf5b75952
mov ecx, 0x98a282fc
sub ecx, 0x986282fc
add ecx, dword [ebp - 0x24]
call ebx
leave
ret
Function at 0x404dd8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
pushal
call 0x404de7
pop dword [ebp - 0x30]
mov eax, 0x404de7
sub dword [ebp - 0x30], eax
mov dword [ebp - 0x40], 0x101645eb
add dword [ebp - 0x40], 0x3e3bff60
mov dword [ebp - 0x3c], 0xb5b34f8c
add dword [ebp - 0x3c], 0x7c7ffcb9
mov dword [ebp - 0x38], 0x84a9f245
add dword [ebp - 0x38], 0xc7a251e9
mov dword [ebp - 0x34], 0xaff64096
sub dword [ebp - 0x34], 0xaff64096
lea eax, [ebp - 0x40]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x30]
call dword [eax]
mov dword [ebp - 0x40], 0x245c26f7
add dword [ebp - 0x40], 0x5016425f
mov dword [ebp - 0x3c], 0x260fa087
sub dword [ebp - 0x3c], 0xe4a33f12
mov dword [ebp - 0x38], 0x4a18311e
sub dword [ebp - 0x38], 0xe6a8c4b2
mov dword [ebp - 0x34], 0x739be53e
add dword [ebp - 0x34], 0x8c641ac2
lea ebx, [ebp - 0x40]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x30]
call dword [eax]
push 0x40
push 0x1000
push 0x4054d
push 0
call eax
mov ecx, 0x525c
xor ebx, ebx
add ebx, eax
mov edx, 0x61f7fe6c
sub edx, 0x61b4ba6c
add edx, dword [ebp - 0x30]
mov edi, 0x9038302d
xor dword [ebp - 0x20], edx
mov esi, dword [edx]
mov dword [ebp - 0x24], 0x5e41e943
add esi, edi
sub dword [ebp - 0x18], 0x14fc0dab
mov dword [ebx], esi
sub dword [ebp - 0xc], 0x60418a2c
add ebx, 0xe9d42ebc
sub ebx, 0xe9d42eb8
add edx, 0x2ed299cb
add edx, 0xd12d6639
loop 0x404ef0
add eax, 0xb94428e8
sub eax, 0xb942eca5
mov ebx, eax
add eax, 5
mov ecx, 0x2ee1f4af
add ecx, 0xd15e0b51
add ecx, dword [ebp - 0x30]
call ebx
leave
ret

Function at 0x407e15
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x42e180]
jne 0x407e1f
repz ret
jmp fcn.0040bc0c
Function at 0x402840
Capabilities:
Terminate process

Disassembly:
mov eax, dword [esp + 4]
push esi
push edi
push eax
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
je 0x40287e
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov esi, eax
test esi, esi
je 0x402872
push 0x2710
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
ret
xor esi, esi
pop edi
mov eax, esi
pop esi
ret

Function at 0x402890
Capabilities:
Read file via mapping

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push section..rdata
push 0x403630
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x24], esi
push esi
mov eax, dword [ebp + 8]
push esi
push 3
push esi
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x1c], eax
cmp eax, 0xffffffff
jne 0x4028e0
xor eax, eax
jmp 0x4029cb
push 0
mov eax, dword [ebp - 0x1c]
push 0
push 0
push 2
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x40290c
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x4029cb
push 0
mov eax, dword [ebp - 0x28]
push 0
push 0
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40293e
mov eax, dword [ebp - 0x28]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [ebp - 0x1c]
push ecx
call esi
xor eax, eax
jmp 0x4029cb
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 0x20]
mov esi, eax
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x5a4d
jne 0x40299e
cmp word [esi], 0x454e
jne 0x40299e
xor eax, eax
mov ax, word [esi + 0x26]
lea ecx, [eax + esi]
xor ebx, ebx
mov bl, byte [ecx]
inc ebx
mov esi, dword [ebp + 0x10]
and esi, 0xffff
cmp ebx, esi
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov edx, dword [ebp + 0xc]
jl 0x402986
mov ebx, esi
push ebx
inc ecx
push ecx
push edx
call eax
mov dword [ebp - 0x24], 1
jmp 0x4029a5
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, dword [ebp - 0x28]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov ecx, dword [ebp - 0x1c]
push ecx
call esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40454d
Capabilities:
Terminate process

Disassembly:
mov dword [0x40a5b0], 1
cmp dword [esp + 8], 0
push ebx
push esi
mov ebx, dword [esp + 0x14]
mov byte [0x40a5ac], bl
jne 0x4045a9
cmp dword [0x408554], 0
je 0x404597
mov esi, dword [0x408550]
sub esi, 4
cmp dword [0x408554], esi
ja 0x404597
mov eax, dword [esi]
test eax, eax
je 0x40458c
call eax
sub esi, 4
cmp dword [0x408554], esi
jbe 0x404584
push 0x40b324
push 0x40b320
call fcn.004045cc
add esp, 8
push 0x40b32c
push 0x40b328
call fcn.004045cc
add esp, 8
test ebx, ebx
jne 0x4045c9
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop esi
pop ebx
ret
Function at 0x7b21b0
Capabilities:
Acquire debug privileges

Disassembly:
push ecx
lea eax, [esp]
mov dword [esp], 0
push eax
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp]
push 1
push str.SeBackupPrivilege
push ecx
call fcn.007b2140
mov edx, dword [esp + 0xc]
push 1
push str.SeDebugPrivilege
push edx
call fcn.007b2140
mov eax, dword [esp + 0x18]
push 1
push str.SeRestorePrivilege
push eax
call fcn.007b2140
mov ecx, dword [esp + 0x24]
push 1
push str.SeSecurityPrivilege
push ecx
call fcn.007b2140
mov edx, dword [esp + 0x30]
add esp, 0x30
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
pop ecx
ret

Function at 0x7b2bfa
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
lea eax, [ebp - 4]
push eax
push 0x20019
xor esi, esi
push esi
push str.CLSIDADB880A6_D8FF_11CF_9377_00AA003B7A11InprocServer32
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x7b2c50
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
mov dword [ebp - 8], 0x104
push esi
push esi
push 0x7c487c
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x7b2c43
inc esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x7b2c52
xor eax, eax
pop esi
leave
ret 4