joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44e430
Capabilities:
Check os version

Disassembly:
sub esp, 0x118
mov eax, dword [0x4a9098]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
mov esi, ecx
mov dword [esp + 4], 0x114
push 0x110
lea eax, [esp + 0xc]
push 0
push eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov byte [esi], 0
call fcn.00457d80
add esp, 0xc
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov eax, esi
je 0x44e4c7
cmp dword [esp + 8], 6
jb 0x44e4c7
mov byte [esi], 1
mov ecx, dword [esp + 0x118]
pop esi
xor ecx, esp
call fcn.00455828
add esp, 0x118
ret

Function at 0x44e4e0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x484050
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x4a9098]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push str.wintrust.dll
lea ecx, [ebp - 0x28]
call fcn.00405470
mov dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
call fcn.00419bf0
mov ecx, eax
call fcn.00419cb0
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00405390
push str.crypt32.dll
lea ecx, [ebp - 0x40]
call fcn.00405470
mov dword [ebp - 4], 1
lea eax, [ebp - 0x40]
push eax
call fcn.00419bf0
mov ecx, eax
call fcn.00419cb0
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00405390
test ebx, ebx
je 0x44e5f5
test esi, esi
je 0x44e5f5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptCATAdminCalcHashFromFileHandle
push ebx
call esi
push str.CryptCATAdminAcquireContext
push ebx
mov dword [edi + 4], eax
call esi
push str.CryptCATAdminEnumCatalogFromHash
push ebx
mov dword [edi + 8], eax
call esi
push str.CryptCATCatalogInfoFromContext
push ebx
mov dword [edi + 0xc], eax
call esi
push str.CryptCATAdminReleaseCatalogContext
push ebx
mov dword [edi + 0x10], eax
call esi
push str.CryptCATAdminReleaseContext
push ebx
mov dword [edi + 0x14], eax
call esi
push str.WTHelperProvDataFromStateData
push ebx
mov dword [edi + 0x18], eax
call esi
push str.WTHelperGetProvSignerFromChain
push ebx
mov dword [edi + 0x1c], eax
call esi
push str.WinVerifyTrust
push ebx
mov dword [edi + 0x20], eax
call esi
push str.CertNameToStrW
push dword [ebp - 0x10]
mov dword [edi + 0x24], eax
call esi
mov dword [edi + 0x28], eax
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 0x44f500
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x80
push esi
mov dword [esp + 4], 0x10d040e
xor esi, esi
mov dword [esp + 8], 0x80b0f02
mov dword [esp + 0xc], 0xc060a03
mov dword [esp + 0x10], 0x7000905
mov dword [esp + 0x14], 0xe08010f
mov dword [esp + 0x18], 0x4030b06
mov dword [esp + 0x1c], 0xd020709
mov dword [esp + 0x20], 0xa05000c
mov dword [esp + 0x24], 0xe09000a
mov dword [esp + 0x28], 0x50f0306
mov dword [esp + 0x2c], 0x70c0d01
mov dword [esp + 0x30], 0x802040b
mov dword [esp + 0x34], 0x30e0d07
mov dword [esp + 0x38], 0xa090600
mov dword [esp + 0x3c], 0x5080201
mov dword [esp + 0x40], 0xf040c0b
mov dword [esp + 0x44], 0x1040c02
mov dword [esp + 0x48], 0x60b0a07
mov dword [esp + 0x4c], 0xf030508
mov dword [esp + 0x50], 0x90e000d
mov dword [esp + 0x54], 0xf0a010c
mov dword [esp + 0x58], 0x8060209
mov dword [esp + 0x5c], 0x4030d00
mov dword [esp + 0x60], 0xb05070e
mov dword [esp + 0x64], 0xe020b04
mov dword [esp + 0x68], 0xd08000f
mov dword [esp + 0x6c], 0x7090c03
mov dword [esp + 0x70], 0x1060a05
mov dword [esp + 0x74], 0x408020d
mov dword [esp + 0x78], 0x10b0f06
mov dword [esp + 0x7c], 0xe03090a
mov dword [esp + 0x80], 0x70c0005
nop dword [eax]
mov ecx, esi
mov edx, esi
sar ecx, 4
and edx, 0xf
movzx eax, byte [esp + ecx + 4]
shl al, 4
or al, byte [esp + edx + 0x14]
mov byte [esi + 0x4abb90], al
movzx eax, byte [esp + ecx + 0x24]
shl al, 4
or al, byte [esp + edx + 0x34]
mov byte [esi + 0x4ab890], al
movzx eax, byte [esp + ecx + 0x44]
shl al, 4
or al, byte [esp + edx + 0x54]
mov byte [esi + 0x4aba90], al
movzx eax, byte [esp + ecx + 0x64]
shl al, 4
or al, byte [esp + edx + 0x74]
mov byte [esi + 0x4ab990], al
inc esi
cmp esi, 0x100
jl 0x44f610
pop esi
add esp, 0x80
ret
Function at 0x46c356
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0046c1d5

Function at 0x47431e
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00473fde
Function at 0x401f10
Capabilities:
Get disk information
Inspect load icon resource
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x148
push ebx
push esi
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0xc]
call fcn.00401000
lea ecx, [esp + 0x50]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
push edx
call fcn.004012b0
test eax, eax
je 0x402021
lea eax, [esp + 0x50]
push 0x404030
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x402084
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x10]
call fcn.00401290
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
sub eax, 8
push 0
push eax
push esi
call edi
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 1
lea edx, [esp + 0x24]
push 8
push edx
call ebx
mov eax, dword [esp + 0x2c]
push 0
push eax
push esi
call edi
push esi
push 1
lea ecx, [esp + 0x48]
push 0x38
push ecx
call ebx
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
mov eax, dword [esp + 0x10]
push edx
push eax
jne 0x401ffe
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401800
jmp 0x402084
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401a90
jmp 0x402084
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
mov esi, 1
xor ebx, ebx
test edi, esi
je 0x40206a
mov dl, bl
lea ecx, [esp + 0x10]
add dl, 0x41
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x40412c
lea ecx, [esp + 0x14]
call fcn.004020e2
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x10]
push eax
push 0
call fcn.00401cf0
add esi, esi
inc ebx
cmp ebx, 0x1a
jl 0x402039
lea ecx, [esp + 0xc]
call fcn.00401040
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
call fcn.00401030
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
nop
nop
pop eax
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
cmp ebx, ecx
nop
nop
nop
jl 0x42e030
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
jne 0x42e01e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp fcn.00401219
Function at 0x401080
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push edi
mov edi, dword [esp + 0x10]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x401099
pop edi
pop ebx
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x4010d4
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [esp + 0x18]
add eax, esi
and ecx, 0xf
jbe 0x4010d0
lea ebx, [ebx]
cmp esi, eax
jae 0x4010d4
sub ecx, 1
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x4010c0
cmp esi, eax
jb 0x4010da
pop esi
pop edi
xor eax, eax
pop ebx
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebx
ret

Function at 0x406370
Capabilities:
Check os version

Disassembly:
sub esp, 0xa0
mov eax, dword [0x4606e0]
xor eax, esp
mov dword [esp + 0x9c], eax
push esi
push 0x9c
xor esi, esi
lea eax, [esp + 8]
push esi
push eax
call fcn.00431770
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov dword [esp + 8], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x4063e8
cmp dword [esp + 0x14], 2
jne 0x4063e8
mov eax, dword [esp + 8]
cmp eax, 6
jae 0x4063cd
cmp eax, 5
jne 0x4063e8
cmp dword [esp + 0xc], 1
jb 0x4063e8
mov eax, 1
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.00431760
add esp, 0xa0
ret
mov ecx, dword [esp + 0xa0]
mov eax, esi
pop esi
xor ecx, esp
call fcn.00431760
add esp, 0xa0
ret
Function at 0x4100b0
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
sub esp, 8
push esi
lea eax, [esp + 4]
push eax
push 0x20019
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
test esi, esi
jne 0x410107
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 8]
push ecx
mov ecx, dword [esp + 8]
push edx
push esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
push esi
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 4]
push edx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
sete al
pop esi
add esp, 8
ret

Function at 0x410120
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov esi, eax
test esi, esi
jne 0x410180
mov esi, dword [esp + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 4]
inc eax
push eax
push esi
push 1
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
sete al
pop esi
add esp, 8
ret

Function at 0x410190
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov esi, eax
test esi, esi
jne 0x4101e8
mov edx, dword [esp + 0x18]
push 4
lea ecx, [esp + 0x20]
push ecx
push 4
push eax
mov eax, dword [esp + 0x14]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 4]
push ecx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
sete al
pop esi
add esp, 8
ret

Function at 0x4102c0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
push edi
mov edi, dword [esp + 0x14]
test edi, edi
mov dword [esp + 8], 0
je 0x410325
cmp dword [esp + 0x18], 0x21
jb 0x410325
mov eax, dword [esp + 0x10]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x410325
push 0
lea ecx, [esp + 0xc]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, 1
pop esi
pop ecx
ret
pop edi
xor eax, eax
pop esi
pop ecx
ret
Function at 0x410380
Capabilities:
Read file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0x10]
test ebx, ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], 0
je 0x4103fb
mov ebp, dword [esp + 0x20]
cmp ebp, 0x21
jb 0x4103fb
mov edx, dword [esp + 0x18]
test edx, edx
je 0x4103fb
push 0
push 0x80
mov ecx, ebp
mov esi, ecx
shr ecx, 2
push 3
xor eax, eax
push 0
mov edi, ebx
rep stosd dword es:[edi], eax
push 1
mov ecx, esi
push SysReAllocString
and ecx, 3
push edx
rep stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x4103fb
push 0
lea eax, [esp + 0x14]
push eax
push ebp
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret

Function at 0x410410
Capabilities:
Create directory
Set file attributes

Disassembly:
sub esp, 0x10
push esi
xor eax, eax
push edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
push eax
lea ecx, [esp + 0xc]
push ecx
push 1
xor esi, esi
push str.D:_A_OICI_GA___BU__A_OICI_GA___AU__A_OICI_GA___BA__A_OICI_GA___SY_
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], eax
call dword [sym.imp.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorA]
test eax, eax
je 0x410458
mov edx, dword [esp + 8]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], 0xc
mov dword [esp + 0x10], edx
lea esi, [esp + 0xc]
push esi
mov esi, dword [esp + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edi, eax
mov eax, dword [esp + 8]
test eax, eax
je 0x410475
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 2
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, edi
pop edi
pop esi
add esp, 0x10
ret
Function at 0x410490
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0x18]
push esi
xor esi, esi
cmp ebp, esi
je 0x4104bf
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea eax, [esp + 8]
push eax
push 0x20019
push esi
push ecx
push edx
mov dword [ebp], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x4104c5
pop esi
xor eax, eax
pop ebp
pop ecx
ret
mov ecx, dword [esp + 8]
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push edi
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x24]
push eax
push esi
push esi
push esi
push edi
push ecx
mov dword [esp + 0x3c], esi
call ebx
test eax, eax
jne 0x410539
mov eax, dword [esp + 0x24]
test eax, eax
je 0x410539
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x410539
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
push esi
push 0
push 0
push edi
push eax
call ebx
test eax, eax
je 0x410532
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [esp + 0x10]
push edx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
pop ecx
ret
mov ecx, dword [esp + 0x24]
mov dword [ebp], ecx
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
pop ecx
ret

Function at 0x410550
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov esi, eax
test esi, esi
jne 0x4105ab
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 8]
push edx
push 3
push eax
mov eax, dword [esp + 0x28]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 4]
push edx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
sete al
pop esi
add esp, 8
ret
Function at 0x410640
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Terminate process

Disassembly:
sub esp, 0x24
mov eax, dword [0x4606e0]
xor eax, dword [esp + 0x24]
push ebx
push ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x28], eax
xor eax, eax
cmp ebp, eax
push esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0x10
je 0x410772
mov esi, dword [esp + 0x3c]
cmp esi, eax
je 0x410772
mov ebx, dword [esp + 0x40]
cmp ebx, 0x20
jb 0x410774
push edi
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0xf0000000
xor eax, eax
push 1
mov dword [esp + 0x28], eax
xor edi, edi
push edi
mov dword [esp + 0x30], eax
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], eax
push ecx
mov dword [esp + 0x40], eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x4106d3
mov dword [esp + 0x14], edi
jmp 0x41073b
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push edi
push edi
push 0x8003
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x4106f4
mov dword [esp + 0x10], edi
jmp 0x41074a
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
push edi
push ecx
push ebp
push edx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x41073b
mov edx, dword [esp + 0x10]
push edi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
push 2
push edx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x41073b
push ebx
push esi
lea eax, [esp + 0x28]
push 0x10
push eax
call fcn.0040ff30
add esp, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x41074a
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x41075a
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, dword [esp + 0x24]
add esp, 0x24
jmp fcn.00431760
xor eax, eax
mov ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x30]
pop esi
pop ebp
pop ebx
add esp, 0x24
jmp fcn.00431760
Function at 0x410830
Capabilities:
Get common file path
Get disk information
Get hostname
Get session user name

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2124
call fcn.00431c20
mov eax, dword [0x4606e0]
xor eax, dword [ebp + 4]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x2128], eax
xor eax, eax
test esi, esi
push edi
je 0x410a29
mov ecx, 0x54
mov edi, esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x10]
push eax
push esi
mov dword [esp + 0x18], 0x101
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
jne 0x410894
push 0x101
push str.unknown
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea ecx, [esp + 0x10]
push ecx
lea edi, [esi + 0x101]
push edi
mov dword [esp + 0x18], 0x10
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
test eax, eax
jne 0x4108c0
push 0x10
push str.unknown
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push esi
push edi
lea edx, [esp + 0x130]
push str._s__s
push edx
call ebx
add esp, 0x10
push 0x21
lea edi, [esi + 0x111]
push edi
lea eax, [esp + 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea ecx, [esp + 0x134]
push ecx
call fcn.00410640
add esp, 0x10
test eax, eax
jne 0x410912
push 0x44d698
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x1000
lea edx, [esp + 0x12c]
push edx
push str.ProductId
xor eax, eax
push str.SoftwareMicrosoftWindows_NTCurrentVersion
mov ecx, 0x400
lea edi, [esp + 0x138]
push reloc.OLEAUT32.dll_SysReAllocString
rep stosd dword es:[edi], eax
call fcn.004100b0
add esp, 0x14
test eax, eax
jne 0x410962
push 0x1000
push str.unknown
lea eax, [esp + 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
xor edi, edi
push 0x105
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x4109cd
push edi
push edi
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
push edi
push edi
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x43], 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x4109cd
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
push str.SN_08X
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x1130]
push str._s__s
push ecx
call ebx
add esp, 0x10
push 0x21
add esi, 0x132
push esi
lea edx, [esp + 0x1130]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0x1134]
push eax
call fcn.00410640
add esp, 0x10
test eax, eax
jne 0x410a24
push 0x44d698
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 1
mov ecx, dword [esp + 0x212c]
xor ecx, dword [ebp + 4]
call fcn.00431760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x410df0
Capabilities:
Terminate process

Disassembly:
mov eax, 0x1004
call fcn.00431c20
mov eax, dword [0x4606e0]
xor eax, dword [esp + 0x1004]
mov ecx, dword [esp + 0x100c]
mov dword [esp + 0x1000], eax
mov eax, dword [esp + 0x1008]
push eax
push ecx
lea edx, [esp + 8]
push str.cnt_s_d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x1024]
mov ecx, dword [esp + 0x1020]
add esp, 0x10
push eax
push ecx
lea edx, [esp + 8]
push edx
mov byte [esp + 0x100b], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0xc]
push eax
call fcn.00410640
mov ecx, dword [esp + 0x1010]
xor ecx, dword [esp + 0x1014]
add esp, 0x1014
jmp fcn.00431760

Function at 0x410e80
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
mov eax, dword [0x4606e0]
xor eax, dword [ebp + 4]
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
push esi
mov dword [esp + 0x118], eax
push edi
je 0x410f56
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x410f56
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x410f56
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
push 0
stosb byte es:[edi], al
push 0x23
lea eax, [esp + 0x18]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x410f56
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
push str.CanonIJSIP
lea ecx, [esp + 0x14]
push ecx
call edi
test eax, eax
je 0x410f56
lea edx, [esp + 0x10]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
push esi
call edi
test eax, eax
je 0x410f56
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410f3b
lea ecx, [esp + 0x10]
push ecx
call fcn.00410410
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x11c]
xor ecx, dword [ebp + 4]
call fcn.00431760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x11c]
xor ecx, dword [ebp + 4]
xor eax, eax
call fcn.00431760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret