joyce8/EMBER2024-capa huggingface dataset:
Function at 0x442f50
Capabilities:
Get system information on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c71b8
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 0x4430b8
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.00442ef0
test eax, eax
je 0x442fdf
mov ecx, dword [ebp + 8]
cmp dword [eax + 0xc], ecx
jne 0x442fdf
mov edx, dword [eax + 0x14]
mov eax, edx
mov edi, dword [edi + 0xac]
mov dword [ebp + 8], edx
mov dword [ebp - 0x10], edi
jmp 0x443046
mov edx, edi
mov ecx, 0x4ef500
call fcn.00442ef0
mov ecx, eax
test ecx, ecx
jne 0x443007
mov edx, edi
mov ecx, str..text
call fcn.00442ef0
mov ecx, eax
test ecx, ecx
je 0x4430b8
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 0x4430b8
mov eax, dword [ecx + 0x10]
add eax, dword [ecx + 0xc]
mov edx, dword [ebp + 8]
cmp edx, eax
ja 0x4430b8
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 0x443099
cmp dword [ebp - 0x14], 0
je 0x443099
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 0x4430b8
mov esi, ecx
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x18], esi
test edi, edi
je 0x4430ba
add ecx, 0x10
mov eax, dword [ecx + 8]
mov edx, dword [ecx]
add eax, edx
cmp eax, dword [ebp + 0xc]
jbe 0x4430ae
add ebx, edx
add ecx, 0x1c
sub edi, 1
jne 0x4430a0
jmp 0x4430ba
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x4430d8
mov eax, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
je 0x4430d8
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 0x4430f0
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 0x443143
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 0x443131
movzx ecx, word [ebx + 6]
cmp dword [ebp - 4], ecx
ja 0x44314b
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.00442f50
add esp, 8
add esi, eax
cmp byte [ebp + 0xc], 0
jne 0x44316e
add esi, dword [ebx + 0x9c]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x443b20
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 0x443ba1
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x18], 8
lea esi, [ebx + 4]
jb 0x443b48
mov eax, dword [esi]
jmp 0x443b4a
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x443b71
test al, 0x10
jne 0x443b71
test al, 1
je 0x443b71
cmp dword [esi + 0x14], 8
jb 0x443b66
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.00443a90
test al, al
je 0x443ba1
push dword [ebp + 0x10]
mov ecx, edi
push ebx
push dword [ebp - 4]
push dword [ebp + 0xc]
call fcn.00443bb0
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 0x443fe0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [ebp + 0x14], 0
jne 0x443ffc
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.004a2ef0
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 0x4440bb
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x30]
test dl, 6
je 0x4440af
shr edx, 2
test dl, 1
je 0x4440af
call fcn.004447f0
mov ebx, eax
mov dword [ebp - 4], eax
lea eax, [ebx + 1]
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x444050
sub ebx, eax
xor edi, edi
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
jbe 0x4440bb
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 0x44408d
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 0x444062
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x4440bb
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 0x4440d6
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 0x45b9c0
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.0045bb70
test al, al
je 0x45ba16
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.0045c1f0
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.0045bb70
test al, al
je 0x45ba5d
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.0045c1f0
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.0045bb70
test al, al
je 0x45baaa
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.0045c1f0
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.0045bb70
test al, al
je 0x45baf4
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.0045c1f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.0049824f
movzx eax, ax
mov ecx, edi
push esi
mov dword [esi], eax
call fcn.0045bb70
test al, al
mov dword [esp + 8], str.LanguageSupport.cpp
lea eax, [esp + 8]
je 0x45bb3d
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.0045c1f0
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.0045c1f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x467890
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cfca8
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 0x4679d0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cfd13
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 0x467d50
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cfdd1
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 0x468db0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d07ba
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.00461c30
mov dword [ebp - 4], 0xffffffff
push dword [esi]
call fcn.004a0ec5
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 0x470de0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0
jne 0x470df5
mov eax, 0x57
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x18], 8
push esi
lea esi, [ecx + 4]
jb 0x470e03
mov eax, dword [esi]
jmp 0x470e05
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x470e1a
mov eax, 2
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
jb 0x470e29
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 0x470e5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
test eax, eax
je 0x470e92
mov ecx, dword [ebp - 8]
cmp ecx, 1
je 0x470e70
cmp ecx, 5
jne 0x470e92
push ecx
lea edx, [ebp - 0xc]
lea ecx, [ebp - 4]
call fcn.00470d70
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 0x479550
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 0x479596
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x479621
jmp 0x479598
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 0x4795c0
push 1
push ecx
call fcn.004a15b5
mov eax, dword [ebp - 0xc]
add esp, 8
mov dword [edi + 0x1c], 0
test eax, eax
je 0x479621
push eax
call fcn.004a0ee0
add esp, 4
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x4795e9
mov eax, 0xc0000017
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a0eca
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 0x47961f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a0eca
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.004a0eca
mov esp, ebp
pop ebp
ret
Function at 0x47cb00
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d4693
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
push 0
push 0
push 3
push 0
push 0
push 0xc0000000
push dword [ebp + 8]
mov dword [edi], vtable.CNamedPipeHandler.0
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], 0
mov dword [edi + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [edi + 0x20], eax
xor eax, eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [ebp - 4], eax
lea esi, [edi + 0x24]
mov dword [edi], vtable.CProxyHandler.0
mov dword [ebp + 8], esi
mov dword [esi], eax
mov dword [esi + 4], eax
call fcn.0047d470
mov dword [esi], eax
mov byte [ebp - 4], 3
mov byte [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8

Function at 0x47cc60
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d4693
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x52a0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 8]
mov dword [edi + 0x20], eax
xor eax, eax
mov dword [edi], vtable.CNamedPipeHandler.0
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [ebp - 4], eax
lea esi, [edi + 0x24]
mov dword [edi], vtable.CProxyHandler.0
mov dword [ebp + 8], esi
mov dword [esi], eax
mov dword [esi + 4], eax
call fcn.0047d470
mov dword [esi], eax
mov byte [ebp - 4], 3
mov eax, dword [ebp + 0xc]
mov byte [edi + 0x2c], 0
mov dword [edi + 0x30], eax
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8

Function at 0x47ce90
Capabilities:
Write 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
mov esi, ecx
cmp byte [esi + 0x2c], 0
je 0x47cf12
push 0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
push 0x10
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0xde55adff
push eax
push dword [esi + 0x20]
mov dword [ebp - 8], 0x55adffde
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x47ceeb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x30]
mov byte [esi + 0x2c], 0
test eax, eax
je 0x47cf12
push 0x3a98
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esi + 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x30], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004a0eca
mov esp, ebp
pop ebp
ret
Function at 0x47dd10
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0
jne 0x47dd25
mov eax, 0x57
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x18], 8
push esi
lea esi, [ecx + 4]
jb 0x47dd33
mov eax, dword [esi]
jmp 0x47dd35
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x47dd4a
mov eax, 2
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
jb 0x47dd59
mov esi, dword [esi]
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0xe
push 0x3ffe
push esi
push 1
call dword [sym.imp.CRYPT32.dll_CryptQueryObject]
test eax, eax
jne 0x47dd8c
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 4], 0
je 0x47de0e
mov eax, dword [ebp - 0xc]
cmp eax, 1
je 0x47dd9f
cmp eax, 5
jne 0x47de0e
push str.TrustedPeople
push 0x20000
push 0
push dword [ebp - 8]
push 0xa
call dword [sym.imp.CRYPT32.dll_CertOpenStore]
mov esi, eax
test esi, esi
jne 0x47ddd4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
push 0
push 3
push dword [eax + 8]
push dword [eax + 4]
push dword [ebp - 8]
push esi
call dword [sym.imp.CRYPT32.dll_CertAddEncodedCertificateToStore]
test eax, eax
je 0x47ddbc
push 0
push esi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
test eax, eax
je 0x47ddbc
push dword [ebp - 4]
xor esi, esi
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
mov esi, 0x32
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret