joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47e298
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0xeac804]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.004733d7
mov dword [ebp - 0x14], eax
cmp dword [0xebcb7c], esi
jne 0x47e38b
push 0x800
push esi
push 0xe931a8
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x47e318
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x47e46b
push esi
push esi
push 0xe931a8
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x47e46b
push 0xe931c0
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x47e46b
push eax
call ebx
push 0xe931cc
push edi
mov dword [0xebcb7c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0xe931dc
push edi
mov dword [0xebcb80], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0xe931f0
push edi
mov dword [0xebcb84], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0xebcb8c], eax
test eax, eax
je 0x47e388
push 0xe9320c
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0xebcb88], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x47e3b0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x47e3a3
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x47e3c5
push 4
pop eax
jmp 0x47e46d
cmp dword [ebp - 0x14], esi
je 0x47e3c5
push dword [0xebcb7c]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x47e3aa
mov eax, dword [0xebcb88]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x47e423
cmp dword [0xebcb8c], edi
je 0x47e423
push eax
call ebx
push dword [0xebcb8c]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x47e423
test eax, eax
je 0x47e423
call ecx
test eax, eax
je 0x47e418
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x47e418
test byte [ebp - 8], 1
jne 0x47e423
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x47e453
mov eax, dword [0xebcb80]
cmp eax, edi
je 0x47e450
push eax
call ebx
test eax, eax
je 0x47e450
call eax
mov esi, eax
test esi, esi
je 0x47e450
mov eax, dword [0xebcb84]
cmp eax, edi
je 0x47e450
push eax
call ebx
test eax, eax
je 0x47e450
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0xebcb7c]
call ebx
test eax, eax
je 0x47e46b
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x47e46d
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00476959
mov esp, ebp
pop ebp
ret
Function at 0x401030
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x40104b
pop edi
pop ebx
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x401082
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 0x10]
add eax, esi
and ecx, 0xf
jbe 0x40107e
jmp 0x401070
cmp esi, eax
jae 0x401082
dec ecx
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x401070
cmp esi, eax
jb 0x401089
pop esi
pop edi
xor eax, eax
pop ebx
pop ebp
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x4014f0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42f3bb
mov eax, dword fs:[0]
push eax
sub esp, 0x210
mov eax, dword [0x447854]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x21c]
mov esi, ecx
mov ecx, dword [ebp + 8]
push eax
xor bl, bl
call fcn.004029a0
mov eax, dword [esi + 4]
push 0x104
lea ecx, [ebp - 0x218]
push ecx
and eax, 0x3ff
push 0x59
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x40156c
mov eax, dword [ebp - 0x21c]
lea edx, [ebp - 0x218]
push edx
push eax
call fcn.004235aa
add esp, 8
test eax, eax
sete bl
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401595
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00423a19
mov esp, ebp
pop ebp
ret 4
Function at 0x401ea0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42f421
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x447854]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20], 0
or edi, 0xffffffff
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x10], edi
call fcn.0041d350
mov eax, dword [0x4486a0]
push 0x20019
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 1
call fcn.0041d370
mov esi, eax
test esi, esi
je 0x401f32
mov eax, dword [0x4486a4]
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x1c]
push edx
push 0
push 0
push eax
push esi
mov dword [ebp - 0x18], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x401f2b
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x1c]
push edx
mov ecx, esi
call fcn.00401910
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.0040dc20
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f73
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esi + 4], edi
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x20], 1
mov byte [ebp - 4], 0
call fcn.0041d360
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x403da0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x447854]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 4]
mov edx, dword [edi]
or ecx, 0x2001f
push ecx
xor esi, esi
push eax
push edx
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x210], esi
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x208], esi
call fcn.00403340
mov ebx, eax
cmp ebx, esi
je 0x403e1a
mov eax, dword [ebp - 0x210]
cmp eax, esi
je 0x403e05
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00423a19
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x220]
push eax
mov eax, dword [ebp - 0x210]
push esi
push esi
push esi
lea ecx, [ebp - 0x214]
push ecx
lea edx, [ebp - 0x204]
push edx
push esi
push eax
mov dword [ebp - 0x214], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x403e9c
mov edi, edi
lea ecx, [ebp - 0x204]
push ecx
lea ecx, [ebp - 0x210]
call fcn.00403da0
mov ebx, eax
cmp ebx, esi
jne 0x403df4
lea edx, [ebp - 0x220]
push edx
mov edx, dword [ebp - 0x210]
push esi
push esi
push esi
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp - 0x204]
push ecx
push esi
push edx
mov dword [ebp - 0x214], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x403e50
mov eax, dword [ebp - 0x210]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, esi
je 0x403eb5
push eax
call ebx
mov dword [ebp - 0x210], esi
mov eax, dword [ebp - 0x218]
push eax
mov ecx, edi
mov dword [ebp - 0x20c], esi
call fcn.004031f0
mov edi, eax
mov eax, dword [ebp - 0x210]
cmp eax, esi
je 0x403ed8
push eax
call ebx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00423a19
mov esp, ebp
pop ebp
ret 4
Function at 0x408a30
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42fc36
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x447854]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
xor edx, edx
mov dword [ebp - 0x430], edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], edx
mov dword [ebp - 0x418], edx
push 2
push edx
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
mov dword [ebp - 0x420], esi
test esi, esi
jne 0x408aad
call fcn.00402fd0
mov edi, eax
jmp 0x408b92
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x408ac6
call fcn.00402fd0
jmp 0x408b89
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x424], ebx
test ebx, ebx
jne 0x408ae4
call fcn.00402fd0
jmp 0x408b89
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
lea eax, [edi + 1]
mov dword [ebp - 0x41c], edi
cmp eax, edi
jae 0x408b05
mov edi, 0x8007000e
jmp 0x408b8b
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.00405110
mov dword [ebp - 4], 1
jmp 0x408b3d
mov eax, dword [ebp - 0x418]
test eax, eax
jne 0x408b4e
mov edi, 0x8007000e
jmp 0x408b8b
push edi
push eax
push edi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x408b67
call fcn.00402fd0
jmp 0x408b89
mov edx, dword [ebp - 0x418]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x418]
push eax
push ecx
lea ecx, [ebp - 0x42c]
call fcn.00407280
mov edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edx, [ebp - 0x414]
cmp dword [ebp - 0x418], edx
je 0x408bb0
lea ecx, [ebp - 0x418]
call fcn.00403bd0
jmp 0x408bb0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00423a19
mov esp, ebp
pop ebp
ret 0x10
Function at 0x40a560
Capabilities:
Access peb ldr_data
Get ntdll base address
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42ff21
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x447854]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
call edx
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
xor ebx, ebx
mov ecx, 0x447820
mov dword [ebp - 4], ebx
call edx
add eax, 0x10
mov dword [esi + 4], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 1
call edx
add eax, 0x10
mov dword [esi + 8], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 2
call edx
add eax, 0x10
mov dword [esi + 0x28], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 3
call edx
add eax, 0x10
mov dword [esi + 0x2c], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 4
call edx
add eax, 0x10
mov dword [esi + 0x34], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 5
call edx
add eax, 0x10
mov dword [esi + 0x38], eax
lea ecx, [esi + 0x44]
mov byte [ebp - 4], 6
call fcn.00402200
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 7
call edx
add eax, 0x10
mov dword [esi + 0x48], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 8
call edx
add eax, 0x10
mov dword [esi + 0x4c], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 9
call edx
add eax, 0x10
mov dword [esi + 0x54], eax
mov eax, dword [0x447820]
mov edx, dword [eax + 0xc]
mov ecx, 0x447820
mov byte [ebp - 4], 0xa
call edx
add eax, 0x10
mov dword [esi + 0x64], eax
push 0x4486f0
lea ecx, [esi + 4]
mov byte [ebp - 4], 0xb
mov dword [esi + 0xc], ebx
mov word [esi + 0x10], bx
mov byte [esi + 0x12], bl
mov byte [esi + 0x24], bl
mov word [esi + 0x30], bx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x20], 0x7530
call fcn.004017a0
push 0x4486f0
lea ecx, [esi + 8]
call fcn.004017a0
push ebx
push 0x4377c8
lea ecx, [esi + 0x64]
mov word [esi + 0x1e], bx
mov dword [esi + 0x3c], 1
mov byte [esi + 0x1c], bl
mov word [esi + 0x40], bx
mov byte [esi + 0x50], bl
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov word [esi + 0x60], bx
mov byte [esi + 0x62], bl
call fcn.004015c0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40b7b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
add eax, eax
lea edx, [ebp + 0x10]
push edx
mov edx, dword [ebp + 8]
push esi
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0xc]
push eax
push 0
mov dword [edi], 0
mov eax, dword [ecx]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40b822
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x40b7f1
cmp eax, 2
jne 0x40b80c
mov eax, dword [ebp + 0x10]
test esi, esi
je 0x40b81c
test eax, eax
je 0x40b817
test al, 1
jne 0x40b80c
mov ecx, eax
shr ecx, 1
cmp word [esi + ecx*2 - 2], 0
je 0x40b81c
pop edi
mov eax, 0xd
pop esi
pop ebp
ret 0xc
xor edx, edx
mov word [esi], dx
shr eax, 1
mov dword [edi], eax
xor eax, eax
pop edi
pop esi
pop ebp
ret 0xc

Function at 0x40bc80
Capabilities:
Access the windows event log

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x447854]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp + 0x10]
push eax
push ecx
push 0xff
lea edx, [ebp - 0x204]
push 0x100
push edx
call fcn.0042454e
xor eax, eax
add esp, 0x14
lea ecx, [ebp - 0x204]
mov word [ebp - 6], ax
mov dword [ebp - 0x208], ecx
cmp dword [esi + 0x260], eax
jne 0x40bcdd
mov edx, ecx
push edx
call fcn.004241f7
add esp, 4
add esi, 0x40
push esi
push 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov esi, eax
test esi, esi
je 0x40bd12
push 0
lea eax, [ebp - 0x208]
push eax
push 0
push 1
push 0
push 0
push 0
push 4
push esi
call dword [sym.imp.ADVAPI32.dll_ReportEventW]
push esi
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00423a19
mov esp, ebp
pop ebp
ret
Function at 0x40cfe0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push 0
push 0
push 0
push 0
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 0x30], eax
test eax, eax
jne 0x40d001
pop esi
mov esp, ebp
pop ebp
ret
push edi
lea eax, [ebp - 4]
push eax
push 0
push esi
push 0x40c260
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
test edi, edi
jne 0x40d028
mov ecx, dword [esi + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x40d680
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push edi
mov edi, ecx
call fcn.0040c450
test eax, eax
jne 0x40d69e
mov eax, 0x80004005
pop edi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4486b0]
push ebx
lea eax, [ebp - 0x1c]
push eax
push 1
push 0x65
xor ebx, ebx
push ecx
mov dword [ebp - 0x1c], str.APPID
mov dword [ebp - 0x18], 0x4390d8
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call fcn.00408ea0
cmp eax, ebx
jl 0x40d7d0
push esi
push 0x20006
push str.AppID
push SysReAllocStringLen
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call fcn.00403340
cmp eax, ebx
je 0x40d71a
push eax
call fcn.00402ff0
mov esi, eax
mov eax, dword [ebp - 0x18]
add esp, 4
cmp eax, ebx
je 0x40d70f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebp - 0x18]
push ebx
push ebx
push 0x2001f
push ebx
push ebx
push 0x4390d8
push esi
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.004032a0
cmp eax, ebx
je 0x40d770
push eax
call fcn.00402ff0
mov edi, eax
mov eax, dword [ebp - 0xc]
add esp, 4
cmp eax, ebx
je 0x40d75a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, ebx
je 0x40d765
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
mov eax, edi
pop edi
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebp - 0xc]
push str.LocalService
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea ecx, [ebp - 0xc]
cmp byte [ebp + 8], bl
je 0x40d7c0
push 1
lea eax, [edi + 0x40]
push eax
push str.LocalService
call fcn.00403410
mov ecx, edi
call fcn.0040c2a0
lea ecx, [ebp - 0xc]
test eax, eax
jne 0x40d7c0
call fcn.00403d80
lea ecx, [ebp - 0x18]
call fcn.00403d80
pop esi
pop ebx
mov eax, 0x80004005
pop edi
mov esp, ebp
pop ebp
ret 4
call fcn.00403d80
lea ecx, [ebp - 0x18]
call fcn.00403d80
xor eax, eax
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 4
Function at 0x40d7e0
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
call fcn.0040c450
test eax, eax
jne 0x40d7f8
mov eax, 0x80004005
mov esp, ebp
pop ebp
ret
push esi
push edi
push 0x20006
xor esi, esi
push str.AppID
push SysReAllocStringLen
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
call fcn.00403340
cmp eax, esi
je 0x40d841
push eax
call fcn.00402ff0
mov edi, eax
mov eax, dword [ebp - 0x10]
add esp, 4
cmp eax, esi
je 0x40d839
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [ebp - 0x10]
push 0x20006
push 0x4390d8
push ebx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
call fcn.00403340
cmp eax, esi
je 0x40d892
push eax
call fcn.00402ff0
mov edi, eax
mov eax, dword [ebp - 0x1c]
add esp, 4
cmp eax, esi
je 0x40d87e
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebx, esi
je 0x40d889
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebx
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x1c]
push str.LocalService
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ecx, dword [0x4486b0]
lea eax, [ebp - 0x20]
push eax
push esi
push 0x65
push ecx
mov dword [ebp - 0x20], str.APPID
mov dword [ebp - 0x1c], 0x4390d8
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
call fcn.00408ea0
mov dword [ebp - 4], eax
cmp edi, esi
je 0x40d8d6
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebx, esi
je 0x40d8e1
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 4]
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10002e80
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
call dword [eax + 0x20]
cmp eax, 0x2710
jne 0x10002ef9
mov eax, dword [esi + 0x14]
cmp eax, 1
jne 0x10002eed
mov byte [esi + 0xc], 0
push dword [edi + 0x3ac]
push 0
push 0x42b
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
je 0x10002ec7
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x98]
xor eax, eax
cmp byte [esi + 0xc], al
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 4
cmp eax, 4
jne 0x10002ef9
mov byte [esi + 0xc], 0
push eax
jmp 0x10002ed4
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
call dword [eax + 0x20]
cmp eax, 0x2710
jne 0x10002f4a
mov eax, dword [esi + 0x14]
cmp eax, 1
jne 0x10002f2b
mov ecx, edi
mov byte [esi + 0xc], 0
call fcn.1003492c
xor eax, eax
cmp byte [esi + 0xc], al
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 4
cmp eax, 2
jne 0x10002f4a
mov ecx, edi
mov byte [esi + 0xc], 0
call fcn.100348c6
xor eax, eax
cmp byte [esi + 0xc], al
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 4
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 4
Function at 0x10005140
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10131ac0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x101917cc]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], edx
mov si, cx
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
mov dword [ebp - 4], 1
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x10005229
push dword [ebp + 0xc]
movzx ecx, si
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test esi, esi
je 0x10005229
test edi, edi
je 0x10005229
test eax, eax
je 0x10005229
push 0
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push ecx
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
push 0
push 0
lea eax, [ebp - 0x14]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10002a10
test esi, esi
je 0x10005229
mov esi, 1
jmp 0x1000522b
xor esi, esi
mov byte [ebp - 4], 2
mov edi, dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add edi, 0xfffffff4
cmp edi, dword [section..data]
je 0x10005253
push edi
call ebx
test eax, eax
jg 0x10005253
push edi
call fcn.1001bc9f
add esp, 4
mov dword [ebp - 4], 3
mov edi, dword [ebp + 0xc]
add edi, 0xfffffff4
cmp edi, dword [section..data]
je 0x10005278
push edi
call ebx
test eax, eax
jg 0x10005278
push edi
call fcn.1001bc9f
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret