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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c02e8
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push esi
push edi
mov eax, dword [0x5210b0]
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 0x43ee88
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.0043ecc0
test eax, eax
je 0x43edaf
mov ecx, dword [ebp + 8]
cmp dword [eax + 0xc], ecx
jne 0x43edaf
mov edx, dword [eax + 0x14]
mov eax, edx
mov edi, dword [edi + 0xac]
mov dword [ebp + 8], edx
mov dword [ebp - 0x10], edi
jmp 0x43ee16
mov edx, edi
mov ecx, 0x4e7bf8
call fcn.0043ecc0
mov ecx, eax
test ecx, ecx
jne 0x43edd7
mov edx, edi
mov ecx, str..text
call fcn.0043ecc0
mov ecx, eax
test ecx, ecx
je 0x43ee88
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 0x43ee88
mov eax, dword [ecx + 0x10]
add eax, dword [ecx + 0xc]
mov edx, dword [ebp + 8]
cmp edx, eax
ja 0x43ee88
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 0x43ee69
cmp dword [ebp - 0x14], 0
je 0x43ee69
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 0x43ee88
mov esi, ecx
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x18], esi
test edi, edi
je 0x43ee8a
add ecx, 0x10
mov eax, dword [ecx + 8]
mov edx, dword [ecx]
add eax, edx
cmp eax, dword [ebp + 0xc]
jbe 0x43ee7e
add ebx, edx
add ecx, 0x1c
sub edi, 1
jne 0x43ee70
jmp 0x43ee8a
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43eea8
mov eax, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
je 0x43eea8
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 0x43eec0
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 0x43ef13
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 0x43ef01
movzx ecx, word [ebx + 6]
cmp dword [ebp - 4], ecx
ja 0x43ef1b
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.0043ed20
add esp, 8
add esi, eax
cmp byte [ebp + 0xc], 0
jne 0x43ef3e
add esi, dword [ebx + 0x9c]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x43fd70
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [ebp + 0x14], 0
jne 0x43fd8c
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.0049e210
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 0x43fe4b
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x30]
test dl, 6
je 0x43fe3f
shr edx, 2
test dl, 1
je 0x43fe3f
call fcn.00440580
mov ebx, eax
mov dword [ebp - 4], eax
lea eax, [ebx + 1]
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x43fde0
sub ebx, eax
xor edi, edi
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
jbe 0x43fe4b
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 0x43fe1d
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.004081a0
add edi, esi
add esp, 8
mov esi, dword [ebp + 0x10]
cmp edi, dword [esi]
mov esi, dword [ebp + 0x14]
jb 0x43fdf2
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x43fe4b
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 0x43fe66
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 0x456c70
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.00456e20
test al, al
je 0x456cc6
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.0040b370
mov eax, dword [esi]
add esp, 0xc
mov ecx, edi
mov dword [edi + 0x38], eax
call fcn.004574a0
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.00456e20
test al, al
je 0x456d0d
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.0040b370
add esp, 0xc
mov dword [edi + 0x38], esi
mov ecx, edi
call fcn.004574a0
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.00456e20
test al, al
je 0x456d5a
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.0040b370
add esp, 0xc
mov ecx, edi
call fcn.004574a0
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.00456e20
test al, al
je 0x456da4
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.0040b370
add esp, 0xc
mov ecx, edi
call fcn.004574a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.00493445
movzx eax, ax
mov ecx, edi
push esi
mov dword [esi], eax
call fcn.00456e20
test al, al
mov dword [esp + 8], str.LanguageSupport.cpp
lea eax, [esp + 8]
je 0x456ded
push dword [esi]
mov dword [esp + 0x10], 0x5c
push str.Using_system_default_UI_language__d
push eax
call fcn.0040b370
add esp, 0xc
mov ecx, edi
call fcn.004574a0
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.0040b370
mov eax, dword [edi + 0x34]
add esp, 0xc
mov ecx, edi
mov dword [esi], eax
call fcn.004574a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x462ae0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c8a18
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5210b0]
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 0x462c20
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c8a83
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5210b0]
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 0x462fa0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c8b41
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5210b0]
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 0x464000
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c952a
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
mov eax, dword [0x5210b0]
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.00404be0
mov byte [ebp - 4], 0xe
lea ecx, [esi + 0x2b0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xe
call fcn.00404be0
mov byte [ebp - 4], 0xd
lea ecx, [esi + 0x280]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xd
call fcn.00404be0
mov byte [ebp - 4], 0xc
lea ecx, [esi + 0x250]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xc
call fcn.00404be0
mov byte [ebp - 4], 0xb
lea ecx, [esi + 0x220]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xb
call fcn.00404be0
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x1f0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0xa
call fcn.00404be0
mov byte [ebp - 4], 9
lea ecx, [esi + 0x1c0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 9
call fcn.00404be0
mov byte [ebp - 4], 8
lea ecx, [esi + 0x190]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 8
call fcn.00404be0
mov byte [ebp - 4], 7
lea ecx, [esi + 0x160]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 7
call fcn.00404be0
mov byte [ebp - 4], 6
lea ecx, [esi + 0x130]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 6
call fcn.00404be0
mov byte [ebp - 4], 5
lea ecx, [esi + 0x100]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 5
call fcn.00404be0
mov byte [ebp - 4], 4
lea ecx, [esi + 0xd0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 4
call fcn.00404be0
mov byte [ebp - 4], 3
lea ecx, [esi + 0xa0]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 3
call fcn.00404be0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x70]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 2
call fcn.00404be0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x40]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 1
call fcn.00404be0
mov byte [ebp - 4], 0
lea ecx, [esi + 0x10]
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 0
call fcn.00404be0
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.0045cf50
mov dword [ebp - 4], 0xffffffff
push dword [esi]
call fcn.0049c225
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 0x46bf40
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0
jne 0x46bf55
mov eax, 0x57
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x18], 8
push esi
lea esi, [ecx + 4]
jb 0x46bf63
mov eax, dword [esi]
jmp 0x46bf65
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46bf7a
mov eax, 2
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
jb 0x46bf89
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 0x46bfbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
test eax, eax
je 0x46bff2
mov ecx, dword [ebp - 8]
cmp ecx, 1
je 0x46bfd0
cmp ecx, 5
jne 0x46bff2
push ecx
lea edx, [ebp - 0xc]
lea ecx, [ebp - 4]
call fcn.0046bed0
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 0x4746e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x5210b0]
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 0x474726
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x4747b1
jmp 0x474728
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 0x474750
push 1
push ecx
call fcn.0049c240
mov eax, dword [ebp - 0xc]
add esp, 8
mov dword [edi + 0x1c], 0
test eax, eax
je 0x4747b1
push eax
call fcn.0049c24e
add esp, 4
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x474779
mov eax, 0xc0000017
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049c22a
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 0x4747af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049c22a
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.0049c22a
mov esp, ebp
pop ebp
ret
Function at 0x477c90
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd3a3
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x5210b0]
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.00478600
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 0x477df0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd3a3
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x5210b0]
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.00478600
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 0x478020
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x5210b0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp byte [esi + 0x2c], 0
je 0x4780a2
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 0x47807b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x30]
mov byte [esi + 0x2c], 0
test eax, eax
je 0x4780a2
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.0049c22a
mov esp, ebp
pop ebp
ret
Function at 0x478ea0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0
jne 0x478eb5
mov eax, 0x57
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x18], 8
push esi
lea esi, [ecx + 4]
jb 0x478ec3
mov eax, dword [esi]
jmp 0x478ec5
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x478eda
mov eax, 2
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
jb 0x478ee9
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 0x478f1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 4], 0
je 0x478f9e
mov eax, dword [ebp - 0xc]
cmp eax, 1
je 0x478f2f
cmp eax, 5
jne 0x478f9e
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 0x478f64
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 0x478f4c
push 0
push esi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
test eax, eax
je 0x478f4c
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
Function at 0x47a280
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cdba8
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x5210b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0x4e1680
mov dword [ebp - 0x34], 0x4e1670
call edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
mov byte [ebp - 4], 1
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 4]
push dword [ebp + eax - 0x34]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call fcn.00403ed0
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [esi + 8]
push 1
push 0x64
push dword [ebp + 0xc]
add ecx, 0x14
push dword [eax]
call fcn.0045c540
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00404be0
movzx ecx, word [ebp - 0x60]
lea eax, [ebp - 0x64]
push 0
push eax
xor edx, edx
mov dword [ebp - 0x14], 0
cmp byte [ebp + 0x10], dl
lea eax, [ebp - 0x2c]
push 0x10
push eax
push dword [ebx + 0x20]
cmovne edx, ecx
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x18], dx
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x2c], 0xde55adff
mov dword [ebp - 0x20], 0x55adffde
mov dword [ebp - 0x28], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x24], 0xc
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x47a3ae
call edi
test eax, eax
jne 0x47a3c9
push 0
lea eax, [ebp - 0x64]
push eax
push 0xc
lea eax, [ebp - 0x1c]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x47a3c9
call edi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049c22a
mov esp, ebp
pop ebp
ret 0xc