joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4d6abc
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404bac
lea esi, [ebp - 0x148]
xor eax, eax
push ebp
push 0x4d6c6e
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
lea eax, [ebp - 0x14c]
mov ecx, 0x4d6c84
mov edx, dword [ebp - 4]
call fcn.00404a08
mov eax, dword [ebp - 0x14c]
call fcn.00404bbc
push eax
call sub.kernel32.dll_FindFirstFileA_1
mov ebx, eax
cmp ebx, 0xffffffff
setne al
jmp 0x4d6c35
mov eax, dword [0x4eb718]
cmp byte [eax], 2
je 0x4d6c3d
mov eax, dword [0x4eba00]
mov eax, dword [eax]
call fcn.004809e8
lea eax, [ebp - 8]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.0040496c
mov eax, dword [esi]
cmp eax, 0x10
je 0x4d6b8b
cmp eax, 2
je 0x4d6b8b
cmp eax, 4
je 0x4d6b8b
cmp eax, 0x80
je 0x4d6b8b
cmp eax, 0x100
je 0x4d6b8b
cmp eax, 0x13
je 0x4d6b8b
cmp eax, 0x20
je 0x4d6b8b
cmp eax, 0x16
jne 0x4d6c28
mov eax, dword [ebp - 8]
mov edx, 0x4d6c94
call fcn.00404b08
je 0x4d6c28
mov eax, dword [ebp - 8]
mov edx, 0x4d6ca0
call fcn.00404b08
je 0x4d6c28
push dword [ebp - 4]
push 0x4d6cac
push dword [ebp - 8]
lea eax, [ebp - 0x150]
mov edx, 3
call fcn.00404a7c
mov eax, dword [ebp - 0x150]
call fcn.004093f8
test al, al
je 0x4d6c28
mov eax, dword [ebp - 8]
mov edx, 0x4d6cb8
call fcn.00404b08
jne 0x4d6c02
push dword [ebp - 4]
push 0x4d6cac
push dword [ebp - 8]
mov eax, 0x4ed274
mov edx, 3
call fcn.00404a7c
jmp 0x4d6c43
push dword [ebp - 4]
push 0x4d6cac
push dword [ebp - 8]
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.00404a7c
mov eax, dword [ebp - 0x154]
call fcn.004d6abc
push esi
push ebx
call sub.kernel32.dll_FindNextFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x4d6b2f
push ebx
call sub.kernel32.dll_FindClose_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d6c75
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.00404720
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404720
ret
Function at 0x4d7194
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d725e
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x43c1b8]
call fcn.0043c2b8
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4d7222
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000001
mov eax, dword [ebp - 0x10]
call fcn.0043c358
xor ecx, ecx
mov edx, 0x4d7274
mov eax, dword [ebp - 0x10]
call fcn.0043c3c0
test al, al
je 0x4d720c
lea ecx, [ebp - 0x14]
mov edx, 0x4d72c0
mov eax, dword [ebp - 0x10]
call fcn.0043c93c
mov eax, dword [ebp - 0x14]
call fcn.004d6abc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d7229
mov eax, dword [ebp - 0x10]
call fcn.004038e8
ret

Function at 0x4d7adc
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d7ba6
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x43c1b8]
call fcn.0043c2b8
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4d7b6a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000001
mov eax, dword [ebp - 0x10]
call fcn.0043c358
xor ecx, ecx
mov edx, 0x4d7bbc
mov eax, dword [ebp - 0x10]
call fcn.0043c3c0
test al, al
je 0x4d7b54
lea ecx, [ebp - 0x14]
mov edx, 0x4d7c08
mov eax, dword [ebp - 0x10]
call fcn.0043c93c
mov eax, dword [ebp - 0x14]
call fcn.004d6abc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d7b71
mov eax, dword [ebp - 0x10]
call fcn.004038e8
ret

Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
mov ebx, 0x408ecc
nop
nop
mov ecx, 0x6a1a50bc
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
nop
jne 0x430024
nop
mov eax, section..rsrc
nop
mov ebx, 0x42e1d0
nop
nop
mov ecx, 0x24f23a50
nop
test eax, eax
nop
nop
nop
nop
je 0x430084
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x1000f188
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
pushal
call 0x1000f197
pop dword [ebp - 0x24]
mov eax, 0x1000f197
sub dword [ebp - 0x24], eax
push 0x40
push 0x1000
push 0x3c299
push 0
mov eax, 0x76ec3bdb
add eax, 0x99150489
add eax, dword [ebp - 0x24]
call dword [eax]
mov ecx, 0x42b327d9
add ecx, 0xbd4d2c7b
mov ebx, eax
mov edx, 0x43b71092
sub edx, 0x33b58a92
add edx, dword [ebp - 0x24]
mov edi, 0x23563518
mov esi, dword [edx]
xor dword [ebp - 0x10], 0xfda94b2b
xor esi, edi
xor dword [ebp - 0x1c], edi
mov dword [ebx], esi
add dword [ebp - 0x10], esi
add ebx, 4
add edx, 4
loop 0x1000f1eb
add eax, 0x77a8ab45
sub eax, 0x77a76722
mov ebx, eax
add eax, 5
mov ecx, 0x523f5205
add ecx, 0xbdc0adfb
add ecx, dword [ebp - 0x24]
call ebx
leave
ret
Function at 0x100022b4
Capabilities:
Connect pipe
Read pipe
Write pipe

Disassembly:
push 0x48
mov eax, 0x1000c708
call fcn.1000b995
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x4c], eax
lea eax, [esi + 0x18]
push eax
mov dword [ebp - 0x54], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
lea eax, [ebp - 0x48]
xor ebx, ebx
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.10002239
cmp dword [ebp - 0x38], ebx
jne 0x10002315
push 9
pop esi
push ebx
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], bl
call fcn.10008852
push dword [ebp - 0x54]
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, esi
call fcn.1000ba18
ret 0xc
cmp dword [edi + 0xc], 0x400
jbe 0x10002322
push 8
jmp 0x100022ef
xor eax, eax
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
cmp dword [esi + 0x14], 2
push 0xffffffffffffffff
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
push ebx
lea eax, [esi + 0x68]
je 0x10002348
lea eax, [esi + 0x4c]
push eax
call fcn.10008852
cmp dword [esi + 8], ebx
jne 0x10002384
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x1000235f
lea eax, [ebp - 0x2c]
push eax
push 1
push ebx
call dword [sym.imp.kernel32.dll_CreateMutexW]
mov dword [esi + 8], eax
cmp eax, ebx
jne 0x10002384
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.10008852
jmp 0x100022ed
mov eax, dword [ebp - 0x48]
push 8
pop esi
mov dword [ebp - 0x50], ebx
cmp dword [ebp - 0x34], esi
jae 0x10002395
lea eax, [ebp - 0x48]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x50]
push ecx
push 0x40c
push dword [ebp - 0x4c]
push 0x410
push edi
push eax
call dword [sym.imp.kernel32.dll_CallNamedPipeW]
cmp eax, ebx
jne 0x100023e2
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
push 1
cmp eax, 0x5b4
jne 0x100023d8
call fcn.10008852
push 0xa
jmp 0x100022ef
call fcn.10008852
jmp 0x100022f0
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.10008852
xor esi, esi
jmp 0x100022f0
Function at 0x10002faf
Capabilities:
Check if file exists
Check mutex on windows

Disassembly:
push str.GlobalARM_Update_Mutex
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenMutexW]
test eax, eax
je 0x10002fd0
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
xor eax, eax
inc eax
ret
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
jne 0x10002fcc
xor eax, eax
ret

Function at 0x10002fde
Capabilities:
Check if file exists
Check mutex on windows

Disassembly:
push str.GlobalAcro_Update_Mutex
push 0
push 0x100000
call dword [sym.imp.kernel32.dll_OpenMutexW]
test eax, eax
je 0x10002fff
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
xor eax, eax
inc eax
ret
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
jne 0x10002ffb
xor eax, eax
ret

Function at 0x100068d4
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x424
mov eax, 0x1000cb1e
call fcn.1000b9cb
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
xor esi, esi
mov dword [ebp - 0x428], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x430], esi
mov dword [ebp - 0x418], esi
push 2
push esi
push eax
mov byte [ebp - 4], 1
call fcn.10004616
mov dword [ebp - 0x41c], eax
cmp eax, esi
jne 0x1000692c
call fcn.100036d3
mov esi, eax
jmp 0x10006a02
push ebx
push edi
push eax
call dword [sym.imp.kernel32.dll_FindResourceW]
mov edi, eax
cmp edi, esi
jne 0x10006945
call fcn.100036d3
jmp 0x100069f4
push edi
push dword [ebp - 0x41c]
call dword [sym.imp.kernel32.dll_LoadResource]
mov dword [ebp - 0x420], eax
cmp eax, esi
je 0x1000693b
push edi
push dword [ebp - 0x41c]
call dword [sym.imp.kernel32.dll_SizeofResource]
mov edi, eax
lea eax, [edi + 1]
mov dword [ebp - 0x424], edi
cmp eax, edi
jae 0x1000697f
mov esi, 0x8007000e
jmp 0x100069f6
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.10008852
mov dword [ebp - 4], 1
jmp 0x100069ad
cmp dword [ebp - 0x418], esi
je 0x10006978
push edi
push dword [ebp - 0x418]
push edi
push dword [ebp - 0x420]
push esi
push 3
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
cmp eax, esi
je 0x1000693b
mov edx, dword [ebp - 0x418]
push dword [ebp + 0x14]
xor ecx, ecx
mov word [edx + eax*2], cx
push dword [ebp - 0x418]
lea ecx, [ebp - 0x430]
call fcn.10008852
mov esi, eax
push dword [ebp - 0x41c]
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x10006a1b
lea ecx, [ebp - 0x418]
call fcn.10004030
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x428]
call fcn.10003fb2
mov eax, esi
call fcn.1000ba27
ret 0x10
Function at 0x10009b34
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x14
mov eax, 0x1000cdf8
call fcn.1000b95f
mov eax, dword [ebp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor ebx, ebx
mov dword [eax], ebx
lea eax, [ebp - 0x14]
push eax
push ebx
lea eax, [ebp - 0x18]
push eax
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
push dword [ebp + 8]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
call esi
test eax, eax
jne 0x10009c78
cmp dword [ebp - 0x18], 1
jne 0x10009c78
mov edi, dword [ebp - 0x14]
shr edi, 1
inc edi
xor ecx, ecx
push 2
pop edx
mov eax, edi
mul edx
seto cl
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], ebx
neg ecx
or ecx, eax
push ecx
call fcn.10008852
mov edi, eax
pop ecx
mov dword [ebp - 0x1c], edi
cmp edi, ebx
je 0x10009c6a
push dword [ebp - 0x14]
push ebx
push edi
call fcn.10008852
mov eax, dword [ebp - 0x14]
add esp, 0xc
lea eax, [eax + eax - 2]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push edi
lea eax, [ebp - 0x18]
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call esi
cmp eax, ebx
jne 0x10009c6a
cmp dword [ebp - 0x18], 1
jne 0x10009c6a
shr dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10008852
mov esi, dword [ebp + 0x10]
pop ecx
mov dword [esi], eax
cmp eax, ebx
je 0x10009c6a
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push ebx
push eax
call fcn.10008852
lea eax, [ebp - 0x20]
push eax
push 0x100102f4
push edi
call dword [sym.imp.MSVCR100.dll_wcstok_s]
mov edi, eax
add esp, 0x18
cmp edi, ebx
je 0x10009c50
push edi
call fcn.10008852
pop ecx
cmp al, bl
je 0x10009c50
mov eax, dword [ebp - 0x14]
push edi
inc eax
push eax
push dword [esi]
call dword [sym.imp.MSVCR100.dll_wcscpy_s]
add esp, 0xc
jmp 0x10009c6a
push dword [esi]
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
pop ecx
mov dword [esi], ebx
jmp 0x10009c6a
cmp dword [ebp - 0x1c], ebx
je 0x10009c78
push dword [ebp - 0x1c]
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
pop ecx
call fcn.1000ba04
ret
Function at 0x10009c7e
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x438
mov eax, 0x1000ce13
call fcn.1000b9cb
mov eax, dword [ebp + 8]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x43c], eax
xor eax, eax
mov edi, 0x206
push edi
mov word [ebp - 0x424], ax
xor esi, esi
lea eax, [ebp - 0x422]
push esi
push eax
call sub.MSVCR100.dll_memset
xor eax, eax
push edi
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push esi
push eax
call sub.MSVCR100.dll_memset
fldz
add esp, 0x18
fstp qword [ebp - 0x444]
lea eax, [ebp - 0x42c]
push eax
push 0x20019
push esi
push str.SoftwareMicrosoftSoftGrid
mov ebx, 0x104
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x438], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10009ecd
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x21c]
push eax
mov dword [ebp - 0x428], esi
push esi
jmp 0x10009d98
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.MSVCR100.dll__wtof]
fldz
fcomp st(1)
pop ecx
fnstsw ax
test ah, 5
jp 0x10009d78
fld qword [ebp - 0x444]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x10009d78
lea eax, [ebp - 0x21c]
fstp qword [ebp - 0x444]
push eax
lea eax, [ebp - 0x424]
push ebx
push eax
call dword [sym.imp.MSVCR100.dll_wcscpy_s]
add esp, 0xc
jmp 0x10009d7a
fstp st(0)
inc dword [ebp - 0x428]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
call edi
mov dword [ebp - 0x430], eax
cmp eax, esi
je 0x10009d30
push dword [ebp - 0x42c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x430], 0x103
jne 0x10009ecd
mov edi, dword [sym.imp.MSVCR100.dll_wcslen]
push str.ClientUserInterface
call edi
mov ebx, str.SoftwareMicrosoftSoftGrid_
push ebx
mov dword [ebp - 0x430], eax
call edi
mov ecx, dword [ebp - 0x430]
lea edi, [ecx + eax + 0x105]
xor ecx, ecx
push 2
pop edx
mov eax, edi
mul edx
seto cl
mov dword [ebp - 0x428], esi
mov dword [ebp - 4], esi
neg ecx
or ecx, eax
push ecx
call fcn.10008852
add esp, 0xc
mov dword [ebp - 0x428], eax
cmp eax, esi
je 0x10009ecd
push edi
push esi
push eax
call fcn.10008852
push ebx
push edi
push dword [ebp - 0x428]
call dword [sym.imp.MSVCR100.dll_wcscpy_s]
mov ebx, dword [sym.imp.MSVCR100.dll_wcscat_s]
add esp, 0x18
lea eax, [ebp - 0x424]
push eax
push edi
push dword [ebp - 0x428]
call ebx
add esp, 0xc
push str.ClientUserInterface
push edi
push dword [ebp - 0x428]
call ebx
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
push 0x20019
push esi
push dword [ebp - 0x428]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x10009ec1
push dword [ebp - 0x434]
push str.LaunchCommand
push dword [ebp - 0x42c]
call fcn.10009b34
add esp, 0xc
push dword [ebp - 0x43c]
push 0x100102f8
push dword [ebp - 0x42c]
call fcn.10009b34
add esp, 0xc
push dword [ebp - 0x42c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x428]
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
pop ecx
call fcn.1000ba27
ret
Function at 0x1000a817
Capabilities:
Create process on windows
Get common file path
Set current directory

Disassembly:
push 0x89c
mov eax, 0x1000cea5
call fcn.1000b995
mov eax, dword [ebp + 8]
push 0x44
pop esi
xor ebx, ebx
push esi
mov dword [ebp - 0x854], eax
lea eax, [ebp - 0x8a8]
push ebx
push eax
mov dword [ebp - 0x850], ecx
mov byte [ebp - 0x849], bl
call sub.MSVCR100.dll_memset
xor eax, eax
push 0x10
mov word [ebp - 0x878], ax
lea eax, [ebp - 0x864]
push ebx
push eax
mov dword [ebp - 0x8a8], esi
mov dword [ebp - 0x87c], 1
call sub.MSVCR100.dll_memset
add esp, 0x18
push 7
pop edi
xor eax, eax
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x838], ebx
mov word [ebp - 0x848], ax
push ebx
mov esi, 0x105
push esi
lea ecx, [ebp - 0x848]
mov dword [ebp - 4], ebx
call fcn.10008852
cmp dword [ebp - 0x834], 8
mov eax, dword [ebp - 0x848]
jae 0x1000a8bb
lea eax, [ebp - 0x848]
push eax
push dword [ebp - 0x838]
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
cmp eax, ebx
je 0x1000aa62
cmp eax, dword [ebp - 0x838]
ja 0x1000aa62
xor eax, eax
mov dword [ebp - 0x818], edi
mov dword [ebp - 0x81c], ebx
mov word [ebp - 0x82c], ax
push ebx
push esi
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], 1
call fcn.10008852
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a917
lea eax, [ebp - 0x82c]
push dword [ebp - 0x81c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
cmp eax, ebx
je 0x1000aa51
cmp eax, dword [ebp - 0x81c]
ja 0x1000aa51
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a94d
lea eax, [ebp - 0x82c]
mov esi, dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
push eax
call esi
test eax, eax
je 0x1000aa51
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a973
lea eax, [ebp - 0x82c]
lea ecx, [ebp - 0x864]
push ecx
lea ecx, [ebp - 0x8a8]
push ecx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x854]
push ebx
call dword [sym.imp.kernel32.dll_CreateProcessW]
cmp dword [ebp - 0x834], 8
mov edi, eax
mov eax, dword [ebp - 0x848]
jae 0x1000a9ab
lea eax, [ebp - 0x848]
push eax
call esi
cmp edi, ebx
je 0x1000a9df
push 0x186a0
push dword [ebp - 0x864]
call dword [sym.imp.USER32.dll_WaitForInputIdle]
test eax, eax
jne 0x1000aa17
mov eax, dword [ebp - 0x864]
mov ecx, dword [ebp - 0x850]
mov dword [ecx + 0x24], eax
mov byte [ebp - 0x849], 1
jmp 0x1000aa17
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0x810]
push ebx
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
push 0x400
lea eax, [ebp - 0x810]
push eax
push ebx
push esi
push ebx
push 0x1000
call dword [sym.imp.kernel32.dll_FormatMessageW]
mov eax, dword [ebp - 0x85c]
mov ecx, dword [ebp - 0x850]
push ebx
mov dword [ecx + 0x28], eax
push 1
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], bl
call fcn.10008852
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x848]
call fcn.10008852
mov al, byte [ebp - 0x849]
jmp 0x1000aa76
push ebx
push 1
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], bl
call fcn.10008852
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x848]
call fcn.10008852
xor al, al
call fcn.1000ba18
ret 4
Function at 0x1000aa7e
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x258
mov eax, 0x1000cef0
call fcn.1000b995
mov edi, ecx
xor esi, esi
mov byte [ebp - 0x251], 0
cmp dword [edi + 0x20], esi
jne 0x1000acb5
mov eax, dword [edi]
xor ebx, ebx
inc ebx
sub eax, esi
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x260], ebx
je 0x1000aacd
dec eax
jne 0x1000acb5
lea eax, [ebp - 0x25c]
push eax
push ebx
push esi
push str.softwareMicrosoftWindowsCurrentVersionApp_PathsAcrobat.exe
jmp 0x1000aadb
lea eax, [ebp - 0x25c]
push eax
push ebx
push esi
push str.softwareMicrosoftWindowsCurrentVersionApp_PathsAcroRd32.exe
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp dword [ebp - 0x25c], esi
je 0x1000acb5
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
push esi
push 0x1000f51c
push dword [ebp - 0x25c]
mov dword [ebp - 0x264], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, esi
jne 0x1000aca9
cmp dword [ebp - 0x260], ebx
je 0x1000ab40
cmp dword [ebp - 0x260], 2
jne 0x1000aca9
push 0x1c
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x258], eax
mov dword [ebp - 4], esi
cmp eax, esi
je 0x1000ab65
lea ecx, [ebp - 0x218]
push ecx
mov ecx, eax
call fcn.10008852
jmp 0x1000ab67
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [edi + 0x20], eax
cmp byte [0x10015902], 0
je 0x1000aca2
mov edx, dword [eax + 0x14]
push 8
pop esi
cmp edx, esi
jb 0x1000ab8f
mov ecx, dword [eax]
mov dword [ebp - 0x258], ecx
jmp 0x1000ab95
mov dword [ebp - 0x258], eax
cmp edx, esi
jb 0x1000ab9d
mov ecx, dword [eax]
jmp 0x1000ab9f
mov ecx, eax
mov ebx, dword [eax + 0x10]
lea ecx, [ecx + ebx*2]
cmp edx, esi
jb 0x1000abab
mov eax, dword [eax]
push dword [sym.imp.MSVCR100.dll_towlower]
push dword [ebp - 0x258]
push ecx
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.10008852
add esp, 0x14
push str.acrobat.exe
lea ecx, [ebp - 0x234]
call fcn.10008852
push str.acrodbg.exe
lea ecx, [ebp - 0x250]
mov dword [ebp - 4], 1
call fcn.10008852
mov eax, dword [ebp - 0x234]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x220], esi
jae 0x1000ac07
lea eax, [ebp - 0x234]
mov esi, dword [ebp - 0x224]
mov edi, dword [edi + 0x20]
push esi
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.10008852
mov ebx, eax
test ebx, ebx
je 0x1000ac2e
mov dword [ebp - 0x258], esi
mov esi, str.acrord32.exe
jmp 0x1000ac64
cmp dword [ebp - 0x23c], 8
mov eax, dword [ebp - 0x250]
jae 0x1000ac43
lea eax, [ebp - 0x250]
push dword [ebp - 0x240]
mov ecx, edi
push 0xffffffffffffffff
push eax
call fcn.10008852
mov ebx, eax
test ebx, ebx
je 0x1000ac7c
mov dword [ebp - 0x258], esi
mov esi, str.acrd32_d.exe
push esi
call dword [sym.imp.MSVCR100.dll_wcslen]
pop ecx
push eax
push esi
push dword [ebp - 0x258]
mov ecx, edi
push ebx
call fcn.10008852
push 0
push 1
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 1
call fcn.10008852
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x234]
call fcn.10008852
mov byte [ebp - 0x251], 1
push dword [ebp - 0x25c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x251]
call fcn.1000ba18
ret