joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42946c
Capabilities:
Check if file exists
Get file attributes
Persist via windows service
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1a0]
sub esp, 0x220
mov eax, dword [0x44de1c]
push ebx
xor ebx, ebx
cmp dword [ecx + 0x274], ebx
mov dword [ebp + 0x19c], eax
push esi
mov dword [ebp - 0x80], ecx
je 0x429649
mov esi, 0x104
push esi
lea eax, [ebp + 0x8c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x429627
lea eax, [ebp + 0x8c]
push 0x5c
push eax
call fcn.00404675
cmp eax, ebx
pop ecx
pop ecx
jne 0x4294ce
lea eax, [ebp + 0x8c]
push edi
push 0x429698
mov byte [eax], bl
push esi
lea eax, [ebp + 0x8c]
push eax
call fcn.0040a5b7
push 0xa
lea eax, [ebp + 0x190]
push eax
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
movzx eax, ax
push eax
call fcn.0040a780
add esp, 0xc
mov edi, 0x4090a8
push edi
push esi
lea eax, [ebp + 0x8c]
push eax
call fcn.0040a5b7
lea eax, [ebp + 0x190]
push eax
push esi
lea eax, [ebp + 0x8c]
push eax
call fcn.0040a5b7
push edi
push esi
lea eax, [ebp + 0x8c]
push eax
call fcn.0040a5b7
push 0x42968c
push esi
lea eax, [ebp + 0x8c]
push eax
call fcn.0040a5b7
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
pop edi
jne 0x429567
push esi
lea eax, [ebp + 0x8c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x4228ec
push esi
lea eax, [ebp - 0x78]
push eax
call fcn.004113c0
mov eax, dword [ebp - 0x80]
add eax, 0x150
push eax
push esi
lea eax, [ebp - 0x78]
push eax
call fcn.0040a5b7
push ebx
lea eax, [ebp - 0x7c]
push eax
push ebx
push 0x20006
push ebx
push 0x4228d0
push ebx
lea eax, [ebp - 0x78]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x429617
lea eax, [ebp + 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4295b7
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
sub eax, edx
inc eax
push eax
lea eax, [ebp + 0x8c]
push eax
push 1
push ebx
push 0x429678
push dword [ebp - 0x7c]
call esi
cmp eax, ebx
jne 0x4295fe
push 4
lea eax, [ebp - 0x80]
push eax
push 4
push ebx
push 0x429668
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], 7
call esi
cmp eax, ebx
je 0x42960c
jle 0x42960a
and eax, 0xffff
or eax, 0x80070000
mov ebx, eax
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x42964e
jle 0x429623
and eax, 0xffff
or eax, 0x80070000
mov ebx, eax
jmp 0x42964e
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x429637
call esi
jmp 0x429623
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x42964e
mov ebx, 0x80004005
mov ecx, dword [ebp + 0x19c]
pop esi
mov eax, ebx
pop ebx
call fcn.00417bd0
add ebp, 0x1a0
leave
ret
Function at 0x42969d
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x44de1c]
push esi
push edi
push 0x4228ec
mov dword [ebp - 4], eax
mov esi, 0x104
push esi
lea eax, [ebp - 0x108]
push eax
mov edi, ecx
call fcn.004113c0
add edi, 0x150
push edi
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0040a5b7
lea eax, [ebp - 0x108]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
pop edi
pop esi
jle 0x4296ff
and eax, 0xffff
or eax, 0x80070000
mov ecx, dword [ebp - 4]
call fcn.00417bd0
leave
ret

Function at 0x42aaa2
Capabilities:
Delete registry value

Disassembly:
mov eax, 0x443e10
call fcn.00417a9e
sub esp, 0x14
push ebx
push esi
push edi
xor edi, edi
push edi
push 1
mov esi, ecx
mov eax, dword [esi]
push 0x64
push esi
mov byte [ebp - 0xd], 0
call dword [eax + 0x20]
test eax, eax
jl 0x42abab
lea eax, [ebp - 0x20]
push eax
push 0x20006
mov ecx, esi
call fcn.00428e16
test eax, eax
jne 0x42abab
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x20]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edi, 0x42ac00
push edi
push eax
mov dword [ebp - 0x14], eax
call ebx
cmp dword [esi + 0x274], 0
je 0x42ab25
push 1
lea eax, [esi + 0x150]
push eax
push edi
lea ecx, [ebp - 0x14]
call fcn.00425e4f
push 0x42abf8
push dword [ebp - 0x14]
call ebx
and dword [ebp - 0x1c], 0
mov byte [ebp - 4], 1
and dword [ebp - 0x18], 0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x1c]
push eax
lea edi, [esi + 0x30]
push 0x1130
mov ecx, edi
call fcn.0040cd82
test eax, eax
jne 0x42ab77
lea eax, [ebp - 0x18]
push eax
push 0x1131
mov ecx, edi
call fcn.0040cd82
test eax, eax
jne 0x42ab77
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x14]
call fcn.00436d08
test eax, eax
jl 0x42ab77
mov byte [ebp - 0xd], 1
cmp byte [ebp + 8], 0
je 0x42ab87
push 0x422924
push dword [ebp - 0x14]
call ebx
mov byte [ebp - 4], 1
push dword [ebp - 0x18]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call edi
mov byte [ebp - 4], 0
push dword [ebp - 0x1c]
call edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004025d3
movzx eax, byte [ebp + 0xc]
push 0
push eax
mov ecx, esi
xor bl, bl
call fcn.0042a9d8
test eax, eax
jl 0x42abc1
inc bl
mov ecx, esi
call fcn.00425c8f
neg eax
sbb al, al
inc al
cmp byte [ebp - 0xd], 0
je 0x42abe0
test bl, bl
je 0x42abe0
test al, al
je 0x42abe0
xor eax, eax
jmp 0x42abe5
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8
Function at 0x42b21b
Capabilities:
Set registry value

Disassembly:
mov eax, 0x443eac
call fcn.00417a9e
sub esp, 0x10
push ebx
push esi
push edi
xor ebx, ebx
push ebx
mov esi, ecx
push ebx
mov dword [ebp - 0x1c], esi
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
cmp edi, ebx
jl 0x42b3a0
cmp dword [ebp + 8], ebx
mov ecx, esi
setne al
mov byte [ebp - 0xd], bl
push eax
push 1
call fcn.0042aaa2
test eax, eax
jl 0x42b25f
mov byte [ebp - 0xd], 1
push 1
call fcn.0042f78f
push 1
call fcn.0042f7e1
lea eax, [ebp - 0x14]
push eax
push 0x20006
push 0x409350
mov ecx, esi
call fcn.00428ccd
test eax, eax
jne 0x42b34c
mov dword [ebp + 8], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
pop edi
push edi
lea ecx, [ebp - 0x18]
push ecx
push edi
push ebx
push 0x42b40c
push eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b400
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3f8
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3ec
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3e0
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3d0
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3c4
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
push edi
lea eax, [ebp - 0x18]
push eax
push edi
push ebx
push 0x42b3b4
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.004025d3
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042946c
push ebx
push dword [esi + 0x274]
mov ecx, esi
call fcn.004290c8
push 0x7000a
test eax, eax
push 0xc050000
setne byte [ebp + 0xb]
call fcn.004381be
mov ecx, esi
call fcn.00425bd8
neg eax
sbb al, al
inc al
cmp byte [ebp + 0xb], bl
je 0x42b395
cmp byte [ebp - 0xd], bl
je 0x42b395
cmp al, bl
je 0x42b395
xor edi, edi
jmp 0x42b39a
mov edi, 0x80004005
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4

Function at 0x42b878
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 0x10]
mov eax, dword [esi]
and dword [esi], 0
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
push edi
lea eax, [ebp + 0x10]
push eax
push 0
push dword [ebp + 8]
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x42b8c9
cmp dword [ebp + 0x10], 1
je 0x42b8b2
cmp dword [ebp + 0x10], 2
jne 0x42b8c0
test edi, edi
mov eax, dword [ebp - 4]
je 0x42b8c5
cmp byte [eax + edi - 1], 0
je 0x42b8c5
push 0xd
pop eax
jmp 0x42b8c9
mov dword [esi], eax
xor eax, eax
pop edi
pop esi
leave
ret 0xc
Function at 0x42ec53
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x445d62
call fcn.00417a9e
sub esp, 0x210
mov eax, dword [0x44de1c]
push esi
mov esi, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x50]
test eax, eax
jns 0x42ed44
test al, 4
jne 0x42ed44
push ebx
push edi
push 0x422eb0
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x114]
push eax
mov edi, 0x422ea0
push edi
push 0x422e98
push 0x422e90
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x42ecbd
push edi
push ebx
lea eax, [ebp - 0x114]
push eax
call fcn.004113c0
and dword [ebp - 0x118], 0
and dword [ebp - 4], 0
mov eax, dword [esi]
lea ecx, [ebp - 0x118]
push ecx
push 2
push esi
call dword [eax + 0x14]
test eax, eax
jne 0x42ed32
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x21c]
call fcn.0040e03c
mov byte [ebp - 4], 1
push dword [eax]
push dword [ebp - 0x118]
call fcn.0040d0dd
mov ebx, eax
neg ebx
pop ecx
sbb bl, bl
pop ecx
inc bl
mov byte [ebp - 4], 0
lea eax, [ebp - 0x218]
cmp dword [ebp - 0x21c], eax
je 0x42ed26
push dword [ebp - 0x21c]
call fcn.00417b09
pop ecx
test bl, bl
je 0x42ed2e
or dword [esi + 0x50], 8
or dword [esi + 0x50], 4
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0x118]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
pop edi
pop ebx
mov eax, dword [esi + 0x50]
mov ecx, dword [ebp - 0xc]
shr eax, 3
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
and eax, 1
pop esi
call fcn.00417bd0
leave
ret

Function at 0x42f78f
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
and dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push 0x423084
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x42f7dd
cmp dword [ebp + 8], eax
push 3
je 0x42f7bd
push 0x423080
jmp 0x42f7c2
push 0x42307c
push 1
push 0
push 0x423014
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
leave
ret 4

Function at 0x42f7e1
Capabilities:
Set registry value

Disassembly:
push ecx
and dword [esp], 0
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x10]
push eax
push 0x42f8e0
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebp, 0x42307c
mov edi, 0x42f87c
mov ebx, 0x423080
jne 0x42f83a
xor eax, eax
cmp dword [esp + 0x18], eax
push 3
je 0x42f825
push ebp
jmp 0x42f826
push ebx
push 1
push eax
push edi
push dword [esp + 0x24]
call esi
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x10]
push eax
push 0x42f890
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x42f873
cmp dword [esp + 0x18], eax
push 3
je 0x42f85e
push ebp
jmp 0x42f85f
push ebx
push 1
push eax
push edi
push dword [esp + 0x24]
call esi
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 4
Function at 0x42f924
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x44de1c]
push esi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x14]
push eax
push 0x423084
push dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x14], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x42f999
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x10]
push eax
push esi
push esi
push 0x423014
push dword [ebp - 0x14]
mov dword [ebp + 8], 0xa
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x42f989
push 0x42307c
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov esi, eax
neg esi
sbb esi, esi
inc esi
jmp 0x42f98e
mov esi, 0x80004005
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x42f99e
mov esi, 0x80004005
mov ecx, dword [ebp - 4]
mov eax, esi
pop esi
call fcn.00417bd0
leave
ret 4

Function at 0x42f9ad
Capabilities:
Read .ini file

Disassembly:
push esi
push edi
mov edi, 0x80
push edi
call fcn.00417bc2
mov esi, eax
test esi, esi
pop ecx
je 0x42f9e1
push dword [esp + 0x14]
push edi
push esi
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
lea ecx, [edi - 2]
cmp eax, ecx
jb 0x42f9e1
push esi
call fcn.00417b09
pop ecx
xor esi, esi
add edi, edi
cmp edi, 0x8000
ja 0x42f9ef
test esi, esi
je 0x42f9b4
test esi, esi
je 0x42fa25
xor edi, edi
inc edi
jmp 0x42fa1a
push dword [esp + 0x10]
push esi
call fcn.004078ee
test eax, eax
pop ecx
pop ecx
je 0x42fa21
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42fa0d
sub eax, edx
lea esi, [esi + eax + 1]
cmp byte [esi], 0
jne 0x42f9f8
jmp 0x42fa2a
xor edi, edi
jmp 0x42fa2a
mov edi, 0x80004005
mov eax, edi
pop edi
pop esi
ret 0xc
Function at 0x42fb83
Capabilities:
Impersonate user

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 8]
xor ebx, ebx
xor esi, esi
call fcn.0041510b
cmp eax, ebx
mov dword [ebp - 4], eax
jl 0x42fca2
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_LookupAccountSidW]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
push eax
push ebx
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
push dword [eax]
mov dword [ebp - 4], 0x80004005
push ebx
call edi
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jbe 0x42fc8d
add eax, eax
push eax
call fcn.00417bc2
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmp eax, ebx
pop ecx
je 0x42fbfc
add eax, eax
push eax
call fcn.00417bc2
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x42fbff
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0xc], ebx
je 0x42fc72
cmp dword [ebp - 0x10], ebx
jne 0x42fc0e
cmp dword [ebp - 8], ebx
ja 0x42fc72
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
push dword [eax]
push ebx
call edi
test eax, eax
je 0x42fc68
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 8]
mov dword [ebp - 0x3c], 0x20
mov dword [ebp - 0x38], 1
call dword [sym.imp.USERENV.dll_LoadUserProfileW]
test eax, eax
je 0x42fc68
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov dword [ebp - 4], ebx
jmp 0x42fc79
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x42fc79
mov dword [ebp - 4], 0x8007000e
push dword [ebp - 0xc]
call fcn.00417b09
push dword [ebp - 0x10]
call fcn.00417b09
pop ecx
pop ecx
jmp 0x42fc95
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push dword [ebp - 0x18]
call fcn.004154c6
cmp esi, ebx
pop edi
jg 0x42fca6
mov eax, esi
jmp 0x42fcb2
mov eax, esi
and eax, 0xffff
or eax, 0x80070000
cmp eax, ebx
jge 0x42fcc9
cmp esi, ebx
jle 0x42fcc6
and esi, 0xffff
or esi, 0x80070000
mov dword [ebp - 4], esi
mov eax, dword [ebp - 4]
pop esi
pop ebx
leave
ret 8
Function at 0x42fed4
Capabilities:
List groups for user account

Disassembly:
mov eax, 0x446750
call fcn.00417a9e
push ecx
push ebx
mov ebx, dword [ebp + 0x10]
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [edi], esi
mov dword [ebx], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 4], esi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x10]
push eax
push 0xffffffffffffffff
lea eax, [ebp + 0xc]
push eax
push 1
push esi
push dword [ebp + 8]
push esi
call sub.NETAPI32.dll_NetUserGetLocalGroups
cmp eax, esi
je 0x42ff35
jle 0x42ff1e
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
or dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0xc], esi
je 0x42ff31
push dword [ebp + 0xc]
call sub.NETAPI32.dll_NetApiBufferFree
mov eax, edi
jmp 0x42ff49
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
je 0x42ff76
jmp 0x42ff5a
push dword [ebp + 0xc]
call sub.NETAPI32.dll_NetApiBufferFree
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc
mov eax, dword [ebp + 0xc]
mov dword [edi], eax
mov dword [ebp + 0xc], esi
mov dword [ebx], ecx
or dword [ebp - 4], 0xffffffff
cmp esi, esi
je 0x42ff72
push esi
call sub.NETAPI32.dll_NetApiBufferFree
xor eax, eax
jmp 0x42ff49
or dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0xc], esi
je 0x42ff46
jmp 0x42ff3e

Function at 0x43028d
Capabilities:
Compare security identifiers

Disassembly:
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
test eax, eax
je 0x4302c4
mov esi, dword [sym.imp.ADVAPI32.dll_IsValidSid]
push eax
call esi
test eax, eax
je 0x4302c4
push dword [esp + 0xc]
call esi
test eax, eax
je 0x4302c4
push dword [esp + 0xc]
push dword [edi + 4]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
neg eax
sbb eax, eax
neg eax
jmp 0x4302c6
xor al, al
pop edi
pop esi
ret 4
Function at 0x431a50
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x446dec
call fcn.00417a9e
sub esp, 0x168
mov eax, dword [0x44de1c]
push edi
xor edi, edi
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x164], 0x80004005
jbe 0x431a8e
cmp dword [ebp + 0x14], edi
je 0x431a84
cmp dword [ebp + 0x10], edi
jne 0x431a8e
mov eax, 0x80070057
jmp 0x431c08
push esi
mov esi, dword [ebp + 0x18]
cmp esi, edi
jne 0x431aa0
mov eax, 0x80004003
jmp 0x431c07
push dword [ebp + 8]
lea eax, [ebp - 0x47]
push eax
mov dword [esi], edi
mov dword [ebp - 0x168], edi
call fcn.00411971
lea eax, [ebp - 0x47]
push eax
push 0x423064
push 0x42302c
lea eax, [ebp - 0x160]
push 0x423128
push eax
call fcn.00430be4
add esp, 0x14
test eax, eax
jl 0x431be4
mov dword [ebp + 8], edi
mov dword [ebp - 4], edi
push 0x20019
lea eax, [ebp - 0x160]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp + 8]
call fcn.004025ea
test eax, eax
jne 0x431bd8
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
push 0x40
lea eax, [ebp - 0x60]
push eax
push edi
push dword [ebp + 8]
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x170], edi
call ebx
test eax, eax
jne 0x431bd4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0xc]
cmp eax, edi
je 0x431b51
cmp dword [ebp - 0x168], eax
jae 0x431bd4
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040a6da
test eax, eax
jl 0x431bb5
push 4
pop ecx
mov edi, 0x431c20
lea esi, [ebp - 0x20]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x431bb3
cmp dword [ebp + 0x10], eax
je 0x431b9f
cmp dword [ebp + 0x14], eax
je 0x431b9f
mov edi, dword [ebp - 0x174]
lea esi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x16c]
push eax
call fcn.00431560
mov dword [ebp - 0x164], eax
inc dword [ebp - 0x168]
add dword [ebp - 0x174], 0x10
add dword [ebp - 0x16c], 4
xor edi, edi
inc dword [ebp - 0x170]
push 0x40
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x170]
push dword [ebp + 8]
call ebx
test eax, eax
je 0x431b3e
mov esi, dword [ebp + 0x18]
pop ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.004025d3
cmp dword [ebp - 0x164], edi
mov eax, dword [ebp - 0x168]
mov dword [esi], eax
jl 0x431c01
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop edi
call fcn.00417bd0
leave
ret 0x14
Function at 0x43207c
Capabilities:
Read .ini file

Disassembly:
push ebp
mov eax, 0x13420
lea ebp, [esp - 0x133a0]
call fcn.0041763c
mov eax, dword [0x44de1c]
push ebx
mov dword [ebp + 0x1339c], eax
mov eax, dword [ebp + 0x133b0]
test eax, eax
push esi
push edi
mov dword [ebp - 0x74], 0x800405a6
je 0x43225d
and dword [eax], 0
push 0x422eb0
mov ebx, 0x104
push ebx
lea eax, [ebp + 0x13298]
push eax
mov esi, 0x422ea0
push esi
push 0x422e98
push 0x422e90
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x4320ee
push esi
push ebx
lea eax, [ebp + 0x13298]
push eax
call fcn.004113c0
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x78], eax
push 5
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x6c]
mov esi, 0x80
push eax
mov dword [ebp - 0x70], esi
call fcn.00417655
mov edi, eax
test edi, edi
jne 0x432155
mov eax, dword [ebp - 0x70]
cmp eax, esi
jbe 0x432264
add eax, 0x14
mov dword [ebp - 0x70], eax
imul eax, eax, 0x260
push eax
call fcn.00417bc2
test eax, eax
pop ecx
mov dword [ebp - 0x78], eax
je 0x432146
push 5
lea ecx, [ebp - 0x70]
push ecx
push eax
call fcn.00417655
mov edi, eax
jmp 0x43214d
mov dword [ebp - 0x74], 0x8007000e
test edi, edi
je 0x43224a
and dword [ebp - 0x80], 0
cmp dword [ebp - 0x70], 0
jbe 0x43224a
mov esi, dword [ebp - 0x78]
xor eax, eax
cmp dword [ebp - 0x74], eax
jge 0x43224a
lea ecx, [ebp + 0x12f94]
push ecx
lea ecx, [ebp + 0x13094]
push ecx
push eax
push eax
mov dword [ebp - 0x7c], eax
lea eax, [esi + 0x15c]
push eax
call fcn.0043b9ff
add esp, 0x14
lea eax, [ebp + 0x13094]
push eax
push ebx
lea eax, [ebp + 0x13194]
push eax
call fcn.004113c0
lea eax, [ebp + 0x12f94]
push eax
push ebx
lea eax, [ebp + 0x13194]
push eax
call fcn.0040a5b7
lea eax, [ebp + 0x13298]
push eax
lea eax, [ebp + 0x13194]
push eax
call fcn.004078ee
test eax, eax
pop ecx
pop ecx
jne 0x432235
push dword [esi]
push eax
push 0x440
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
je 0x432235
lea eax, [ebp - 0x7c]
push eax
push 0xe
push edi
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x43222e
push dword [ebp + 0x133ac]
push dword [ebp - 0x7c]
call dword [ebp + 0x133a8]
test eax, eax
jne 0x432225
push dword [ebp + 0x133b0]
push 2
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_DuplicateToken]
test eax, eax
je 0x432225
and dword [ebp - 0x74], 0
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
add esi, 0x260
cmp eax, dword [ebp - 0x70]
jb 0x432166
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x78], eax
je 0x432264
push dword [ebp - 0x78]
call fcn.00417b09
pop ecx
jmp 0x432264
mov dword [ebp - 0x74], 0x80070057
mov ecx, dword [ebp + 0x1339c]
mov eax, dword [ebp - 0x74]
pop edi
pop esi
pop ebx
call fcn.00417bd0
add ebp, 0x133a0
leave
ret 0xc