joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4391b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c4d55
mov eax, dword fs:[0]
push eax
sub esp, 0x24c
mov eax, dword [0x52a0b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, ecx
mov dword [ebp - 0x254], esi
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x258], esi
push 0
push eax
mov dword [ebp - 0x250], 0
call fcn.004a34a0
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x439272
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x439272
push 0
lea eax, [ebp - 0x249]
mov dword [esi], 0x4e81b4
push eax
push 0x4e23a8
mov ecx, esi
mov dword [esi + 0x28], 0x4e8f38
call fcn.00404190
mov dword [ebp - 4], 0
mov dword [ebp - 0x250], 1
jmp 0x4392ef
push 0
lea eax, [ebp - 0x249]
mov dword [ebp - 0x248], 0x4e81b4
push eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x220], 0x4e8f38
push eax
lea ecx, [ebp - 0x248]
call fcn.00404190
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x248]
push 0x4e82a8
call fcn.00409f30
push 0
push eax
mov ecx, esi
mov dword [esi], 0x4e81b4
mov dword [esi + 0x28], 0x4e8f38
call fcn.00406fd0
mov byte [ebp - 4], 3
mov dword [ebp - 0x250], 1
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x248]
call fcn.00404c20
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a14ba
mov esp, ebp
pop ebp
ret

Function at 0x439d70
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b8180
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 0xc
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
push 0
push esi
mov dword [ecx], 0x4e81b4
mov dword [ecx + 0x28], 0x4e8f38
call fcn.00406fd0
mov dword [ebp - 4], 1
mov dword [ebp - 4], 0xffffffff
call fcn.004969e5
add esp, 0x34
test al, al
je 0x439dec
cmp byte [ebp + 8], 0
je 0x439dec
cmp dword [esi + 0x18], 8
lea eax, [esi + 4]
jb 0x439de5
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x43b160
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c58a8
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x52a0b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov dword [ebp - 0x40], 0x4e81b4
mov dword [ebp - 0x18], 0x4e8f38
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x2c], 0
mov word [ebp - 0x3c], ax
mov byte [ebp - 4], 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push dword [ebp + eax - 0x18]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 4], 5
lea eax, [ebp - 0x40]
push 0x656
push 0x8004071a
push str.0x_08x:_x_n
push eax
call fcn.0040eb60
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
lea ecx, [ebp - 0x70]
push eax
call fcn.0043a050
add esp, 4
mov byte [ebp - 4], 6
lea edx, [eax + 4]
cmp dword [edx + 0x14], 8
jb 0x43b234
mov edx, dword [edx]
cmp word [edx], 0
jne 0x43b23e
xor eax, eax
jmp 0x43b252
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43b243
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x3c]
call fcn.00409e00
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x70]
call fcn.00404850
cmp dword [edi + 0x18], 8
lea ecx, [edi + 4]
jb 0x43b273
mov ecx, dword [ecx]
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
push 0x10
cmovae eax, dword [ebp - 0x3c]
push ecx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00404c20
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a14ba
mov esp, ebp
pop ebp
ret
Function at 0x43b500
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c59b8
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x52a0b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push ecx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x4e81b4
mov dword [ebp - 0x18], 0x4e8f38
call fcn.00406fd0
mov dword [ebp - 4], 1
xor ecx, ecx
cmp word [str._MSI5166._IS], cx
mov eax, 0xc
cmove eax, ecx
lea ecx, [ebp - 0x3c]
push eax
push str._MSI5166._IS
call fcn.00409e00
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
push 0
cmovae eax, dword [ebp - 0x3c]
push 0x80
push 2
push 0
push 0
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x43b5ae
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov bl, 1
jmp 0x43b5b0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00404c20
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a14ba
mov esp, ebp
pop ebp
ret
Function at 0x4431b0
Capabilities:
Get system information on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c77e8
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push esi
push edi
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], ecx
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], esi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xa8]
mov dword [ebp + 8], eax
test eax, eax
je 0x443318
push 0x1c
lea eax, [ebp - 0x3c]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
mov edx, edi
mov eax, esi
mov ecx, str..debug
cmovne eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
call fcn.00443150
test eax, eax
je 0x44323f
mov ecx, dword [ebp + 8]
cmp dword [eax + 0xc], ecx
jne 0x44323f
mov edx, dword [eax + 0x14]
mov eax, edx
mov edi, dword [edi + 0xac]
mov dword [ebp + 8], edx
mov dword [ebp - 0x10], edi
jmp 0x4432a6
mov edx, edi
mov ecx, 0x4efe28
call fcn.00443150
mov ecx, eax
test ecx, ecx
jne 0x443267
mov edx, edi
mov ecx, str..text
call fcn.00443150
mov ecx, eax
test ecx, ecx
je 0x443318
mov eax, dword [edi + 0xac]
mov edi, eax
mov dword [ebp - 0x10], eax
mov eax, 0x24924925
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
test edi, edi
je 0x443318
mov eax, dword [ecx + 0x10]
add eax, dword [ecx + 0xc]
mov edx, dword [ebp + 8]
cmp edx, eax
ja 0x443318
sub edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x14]
add eax, edx
mov dword [ebp + 8], eax
mov edx, dword [ebp - 0x1c]
lea ecx, [eax + edx]
mov eax, ecx
sub eax, edx
cmp eax, dword [ebp - 0x20]
jbe 0x4432f9
cmp dword [ebp - 0x14], 0
je 0x4432f9
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, ecx
div dword [ebp - 0x44]
mov eax, dword [ebp - 0x10]
add eax, edx
sub ecx, edx
push eax
push ecx
push 0
push 4
push dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
test ecx, ecx
je 0x443318
mov esi, ecx
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x18], esi
test edi, edi
je 0x44331a
add ecx, 0x10
mov eax, dword [ecx + 8]
mov edx, dword [ecx]
add eax, edx
cmp eax, dword [ebp + 0xc]
jbe 0x44330e
add ebx, edx
add ecx, 0x1c
sub edi, 1
jne 0x443300
jmp 0x44331a
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x443338
mov eax, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
je 0x443338
push esi
call eax
mov dword [ebp - 0x18], 0
mov eax, ebx
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 0x443350
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
push esi
mov dword [ebp - 0xc], ecx
push edi
movzx eax, word [ebx + 0x14]
xor edi, edi
movzx ecx, word [ebx + 6]
add eax, 0x18
mov esi, dword [ebx + 0x54]
add eax, ebx
mov dword [ebp - 8], edx
xor edx, edx
mov dword [ebp - 4], 1
cmp ecx, 2
jb 0x4433a3
shr ecx, 1
lea ebx, [ecx*2 + 1]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 8]
add edi, dword [eax + 0x10]
add edx, dword [eax + 0x38]
add eax, 0x50
sub ecx, 1
jne 0x443391
movzx ecx, word [ebx + 6]
cmp dword [ebp - 4], ecx
ja 0x4433ab
add esi, dword [eax + 0x10]
mov ecx, dword [ebp - 0xc]
lea eax, [edx + edi]
mov edx, dword [ebp - 8]
add esi, eax
push esi
push ebx
call fcn.004431b0
add esp, 8
add esi, eax
cmp byte [ebp + 0xc], 0
jne 0x4433ce
add esi, dword [ebx + 0x9c]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x443d80
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], 0
cmp dword [edi + 0x38], 0
je 0x443e01
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x18], 8
lea esi, [ebx + 4]
jb 0x443da8
mov eax, dword [esi]
jmp 0x443daa
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x443dd1
test al, 0x10
jne 0x443dd1
test al, 1
je 0x443dd1
cmp dword [esi + 0x14], 8
jb 0x443dc6
mov esi, dword [esi]
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 4]
mov ecx, edi
push eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.00443cf0
test al, al
je 0x443e01
push dword [ebp + 0x10]
mov ecx, edi
push ebx
push dword [ebp - 4]
push dword [ebp + 0xc]
call fcn.00443e10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x444240
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [ebp + 0x14], 0
jne 0x44425c
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
push esi
push 0
push ebx
call fcn.004a34a0
mov edx, dword [ebp + 0x10]
add esp, 0xc
push 0
push edx
push esi
mov esi, dword [ebp + 0x14]
push ebx
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 8], eax
test eax, eax
je 0x44431b
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x30]
test dl, 6
je 0x44430f
shr edx, 2
test dl, 1
je 0x44430f
call fcn.00444a50
mov ebx, eax
mov dword [ebp - 4], eax
lea eax, [ebx + 1]
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x4442b0
sub ebx, eax
xor edi, edi
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
jbe 0x44431b
mov ecx, dword [esi + 0x10]
xor edx, edx
add ecx, edi
mov esi, 0x400
and ecx, 0x3ff
mov eax, ecx
sub esi, ecx
div ebx
lea eax, [esi + edi]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx]
cmp eax, ecx
jbe 0x4442ed
mov esi, ecx
sub esi, edi
mov ecx, dword [ebp + 8]
mov edx, esi
push dword [ebp + 0xc]
push dword [ebp - 4]
lea ecx, [edi + ecx]
call fcn.004081e0
add edi, esi
add esp, 8
mov esi, dword [ebp + 0x10]
cmp edi, dword [esi]
mov esi, dword [ebp + 0x14]
jb 0x4442c2
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x44431b
add dword [esi + 0x10], eax
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov edi, dword [eax + 0x38]
cmp edx, edi
cmova edx, edi
test ecx, ecx
je 0x444336
mov eax, dword [ecx]
push edi
push edx
call dword [eax]
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x45bc30
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 8
push esi
push edi
mov edi, ecx
lea esi, [edi + 0x3c]
push esi
call fcn.0045bde0
test al, al
je 0x45bc86
push dword [esi]
lea eax, [esp + 0xc]
mov dword [esp + 0xc], str.LanguageSupport.cpp
push str.Using_command_line_language__d
push eax
mov dword [esp + 0x18], 0x34
call fcn.0040b3b0
mov eax, dword [esi]
add esp, 0xc
mov ecx, edi
mov dword [edi + 0x38], eax
call fcn.0045c460
mov byte [edi + 0x40], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp + 8]
mov ecx, edi
push eax
call fcn.0045bde0
test al, al
je 0x45bccd
mov esi, dword [ebp + 8]
lea eax, [esp + 8]
push esi
push str.Using_installed_language__d
push eax
mov dword [esp + 0x14], str.LanguageSupport.cpp
mov dword [esp + 0x18], 0x43
call fcn.0040b3b0
add esp, 0xc
mov dword [edi + 0x38], esi
mov ecx, edi
call fcn.0045c460
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
lea esi, [edi + 0x38]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov ecx, edi
push esi
mov dword [esi], eax
call fcn.0045bde0
test al, al
je 0x45bd1a
push dword [esi]
lea eax, [esp + 0xc]
mov dword [esp + 0xc], str.LanguageSupport.cpp
push str.Using_user_default_language__d
push eax
mov dword [esp + 0x18], 0x4c
call fcn.0040b3b0
add esp, 0xc
mov ecx, edi
call fcn.0045c460
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov ecx, edi
push esi
mov dword [esi], eax
call fcn.0045bde0
test al, al
je 0x45bd64
push dword [esi]
lea eax, [esp + 0xc]
mov dword [esp + 0xc], str.LanguageSupport.cpp
push str.Using_system_default_language__d
push eax
mov dword [esp + 0x18], 0x54
call fcn.0040b3b0
add esp, 0xc
mov ecx, edi
call fcn.0045c460
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.0049876f
movzx eax, ax
mov ecx, edi
push esi
mov dword [esi], eax
call fcn.0045bde0
test al, al
mov dword [esp + 8], str.LanguageSupport.cpp
lea eax, [esp + 8]
je 0x45bdad
push dword [esi]
mov dword [esp + 0x10], 0x5c
push str.Using_system_default_UI_language__d
push eax
call fcn.0040b3b0
add esp, 0xc
mov ecx, edi
call fcn.0045c460
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push dword [edi + 0x34]
mov dword [esp + 0x10], 0x61
push str.Using_default_language__d
push eax
call fcn.0040b3b0
mov eax, dword [edi + 0x34]
add esp, 0xc
mov ecx, edi
mov dword [esi], eax
call fcn.0045c460
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x467b60
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d02f8
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov dword [ecx], vtable.CParcelHandler.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], 1
mov dword [ebp - 4], 0
mov dword [ecx + 0x14], vtable.CRebootHandler.0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov byte [ecx + 0x30], 0
mov dword [ecx + 0x34], vtable.CProxyExeCallbackWrapper.0
mov dword [ecx], vtable.CExeParcelHandler.2.0
mov dword [ecx + 0x14], vtable.CExeParcelHandler.1.0
mov dword [ecx + 0x34], vtable.CExeParcelHandler.0
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4

Function at 0x467ca0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0363
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov dword [ecx], vtable.CParcelHandler.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], 1
mov dword [ebp - 4], 0
mov dword [ecx + 0x14], vtable.CMsiUIHandlerProxy.0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x24], 1
mov word [ecx + 0x28], 0x100
mov byte [ebp - 4], 1
mov al, byte [ebp + 0xc]
mov dword [ecx + 0x2c], vtable.CRebootHandler.0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x44], 0
mov byte [ecx + 0x48], 0
mov dword [ecx], vtable.CMsiParcelHandler.2.0
mov dword [ecx + 0x14], vtable.CMsiParcelHandler.1.0
mov dword [ecx + 0x2c], vtable.CMsiParcelHandler.0
mov byte [ecx + 0x4c], al
mov word [ecx + 0x4d], 0
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x468020
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0421
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov dword [ecx], vtable.CParcelHandler.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], 1
mov dword [ebp - 4], 0
mov dword [ecx + 0x14], vtable.CRebootHandler.0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov byte [ecx + 0x30], 0
mov dword [ecx + 0x34], vtable.CIspProxyUIHandler.0
mov byte [ebp - 4], 1
lea eax, [ecx + 0x38]
mov dword [ecx], vtable.CIspParcelHandler.2.0
mov dword [ecx + 0x14], vtable.CIspParcelHandler.1.0
mov dword [ecx + 0x34], vtable.CIspParcelHandler.0
mov dword [ebp + 8], eax
mov dword [eax], 0
mov byte [ebp - 4], 3
lea eax, [ecx + 0x44]
mov byte [ecx + 0x3c], 0
mov dword [ecx + 0x40], 0
mov dword [ebp + 8], eax
mov dword [eax], 0
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x469080
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0e0a
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xf
lea ecx, [esi + 0x2e0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xf
call fcn.00404c20
mov byte [ebp - 4], 0xe
lea ecx, [esi + 0x2b0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xe
call fcn.00404c20
mov byte [ebp - 4], 0xd
lea ecx, [esi + 0x280]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xd
call fcn.00404c20
mov byte [ebp - 4], 0xc
lea ecx, [esi + 0x250]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xc
call fcn.00404c20
mov byte [ebp - 4], 0xb
lea ecx, [esi + 0x220]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xb
call fcn.00404c20
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x1f0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xa
call fcn.00404c20
mov byte [ebp - 4], 9
lea ecx, [esi + 0x1c0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 9
call fcn.00404c20
mov byte [ebp - 4], 8
lea ecx, [esi + 0x190]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 8
call fcn.00404c20
mov byte [ebp - 4], 7
lea ecx, [esi + 0x160]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 7
call fcn.00404c20
mov byte [ebp - 4], 6
lea ecx, [esi + 0x130]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 6
call fcn.00404c20
mov byte [ebp - 4], 5
lea ecx, [esi + 0x100]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 5
call fcn.00404c20
mov byte [ebp - 4], 4
lea ecx, [esi + 0xd0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 4
call fcn.00404c20
mov byte [ebp - 4], 3
lea ecx, [esi + 0xa0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 3
call fcn.00404c20
mov byte [ebp - 4], 2
lea ecx, [esi + 0x70]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 2
call fcn.00404c20
mov byte [ebp - 4], 1
lea ecx, [esi + 0x40]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 1
call fcn.00404c20
mov byte [ebp - 4], 0
lea ecx, [esi + 0x10]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0
call fcn.00404c20
mov dword [ebp - 4], 0xffffffff
mov dword [esi], vtable.CProperties.0
mov dword [ebp - 4], 0xffffffff
add esi, 4
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0x23
mov ecx, esi
mov eax, dword [esi]
push eax
push dword [eax]
lea eax, [ebp - 0x10]
push eax
call fcn.00461f00
mov dword [ebp - 4], 0xffffffff
push dword [esi]
call fcn.004a14b5
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4710b0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0
jne 0x4710c5
mov eax, 0x57
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x18], 8
push esi
lea esi, [ecx + 4]
jb 0x4710d3
mov eax, dword [esi]
jmp 0x4710d5
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4710ea
mov eax, 2
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
jb 0x4710f9
mov esi, dword [esi]
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0xe
push 0x3ffe
push esi
push 1
call dword [sym.imp.CRYPT32.dll_CryptQueryObject]
test eax, eax
jne 0x47112c
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
test eax, eax
je 0x471162
mov ecx, dword [ebp - 8]
cmp ecx, 1
je 0x471140
cmp ecx, 5
jne 0x471162
push ecx
lea edx, [ebp - 0xc]
lea ecx, [ebp - 4]
call fcn.00471040
add esp, 4
mov esi, eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
push eax
mov esi, 0x32
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x479820
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x52a0b0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
mov edi, ecx
lea eax, [ebp - 0x14]
push 0x10
push eax
push dword [edi + 0x20]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x479866
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x4798f1
jmp 0x479868
xor esi, esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [edi + 8], eax
test ecx, ecx
je 0x479890
push 1
push ecx
call fcn.004a1ba5
mov eax, dword [ebp - 0xc]
add esp, 8
mov dword [edi + 0x1c], 0
test eax, eax
je 0x4798f1
push eax
call fcn.004a14d0
add esp, 4
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x4798b9
mov eax, 0xc0000017
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a14ba
mov esp, ebp
pop ebp
ret
push 0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push ecx
push dword [ebp - 0xc]
push eax
push dword [edi + 0x20]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4798ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a14ba
mov esp, ebp
pop ebp
ret
xor esi, esi
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
xor ecx, ebp
pop esi
call fcn.004a14ba
mov esp, ebp
pop ebp
ret