joyce8/EMBER2024-capa huggingface dataset:
Function at 0x407e50
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x407fa3
push str.SoftwareMicrosoftNET_Framework_SetupNDP_v4Full
lea ecx, [ebp + 8]
call fcn.00405b90
mov ecx, dword [ebp + 8]
lea eax, [ebp - 4]
push eax
push 1
push 0
push ecx
push 0x80000002
mov dword [ebp - 4], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407f84
mov eax, dword [ebp - 4]
test eax, eax
je 0x407f84
push esi
lea edx, [ebp - 0xc]
push edx
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x10]
push edx
push 0
push str.Release
push eax
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 4
mov dword [ebp - 0x10], 0
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x407f5b
cmp dword [ebp - 8], esi
je 0x407f5b
mov ecx, dword [0x5d2cd0]
test ecx, ecx
je 0x407f31
mov eax, dword [edi + 0x220]
shl eax, 8
or eax, dword [edi + 0x224]
shl eax, 0x10
or eax, dword [edi + 0x228]
xor edx, edx
lea esp, [esp]
cmp eax, ecx
jne 0x407f1f
mov ecx, dword [ebp - 8]
cmp ecx, dword [edx + 0x5d2cd4]
jae 0x407f46
inc esi
lea edx, [esi*8]
mov ecx, dword [edx + 0x5d2cd0]
test ecx, ecx
jne 0x407f10
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x407f6e
lea ecx, [ebp + 8]
call fcn.00402e70
pop esi
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f7a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop esi
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407fa3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 4
Function at 0x4081e0
Capabilities:
Check if file exists
Check internet connectivity via wininet
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
test edi, edi
jne 0x4081f9
pop edi
mov eax, 9
pop esi
pop ebp
ret 0xc
mov eax, dword [edi + 0x220]
shl eax, 8
or eax, dword [edi + 0x224]
shl eax, 0x10
or eax, dword [edi + 0x228]
cmp eax, 0x4050002
je 0x40821f
cmp eax, 0x4060000
jne 0x4081ee
push ebx
push edi
lea ebx, [esi + 8]
push 0x104
push ebx
call fcn.00532f33
mov ax, word [edi + 0x21c]
add esp, 0xc
lea ecx, [edi + 0x208]
push ecx
mov ecx, esi
mov word [esi + 0x214], ax
call fcn.00407aa0
mov dword [esi + 0x210], eax
test eax, eax
jne 0x408370
test ebx, ebx
je 0x408370
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x408370
push edi
mov ecx, esi
call fcn.00407e50
test eax, eax
je 0x408288
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
xor ebx, ebx
push ebx
lea edx, [ebp + 8]
push edx
mov dword [ebp + 8], ebx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
jne 0x4082a6
lea eax, [ebx + 2]
pop ebx
pop edi
pop esi
pop ebp
ret 0xc
push ebx
push ebx
push ebx
lea edi, [esi + 0x3a4]
push edi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 0x3b8], eax
cmp eax, ebx
je 0x408370
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
lea edx, [esi + 0x3b0]
push edx
push ebx
push esi
push 0x4081c0
push ebx
push edi
mov dword [esi + 0x39c], eax
mov dword [esi + 0x3a0], ecx
mov dword [edi], 0xc
mov dword [esi + 0x3a8], ebx
mov dword [esi + 0x3ac], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x3b4], eax
cmp eax, ebx
je 0x408370
mov eax, dword [esi + 0x3b8]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
push eax
call edi
test eax, eax
je 0x40833b
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 1
call ebx
mov ecx, dword [esi + 0x3b8]
push 0
push ecx
call edi
test eax, eax
jne 0x408326
xor ebx, ebx
mov eax, dword [esi + 0x3b8]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x408354
push eax
call edi
mov dword [esi + 0x3b8], ebx
mov eax, dword [esi + 0x3b4]
cmp eax, ebx
je 0x408367
push eax
call edi
mov dword [esi + 0x3b4], ebx
mov eax, dword [esi]
pop ebx
pop edi
pop esi
pop ebp
ret 0xc
pop ebx
pop edi
mov eax, 9
pop esi
pop ebp
ret 0xc
Function at 0x409b70
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54afdb
mov eax, dword fs:[0]
push eax
sub esp, 0xc54
mov eax, dword [0x60c9c8]
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 ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0xc38], esi
mov dword [ebp - 0xc40], esi
cmp ebx, esi
je 0x409c20
mov edx, dword [ecx + 0x264]
lea edi, [ebp - 0xc40]
push edi
lea edi, [ebp - 0xc38]
push edi
add ecx, 0x264
push str.SMEXUpdate
push eax
mov eax, dword [edx + 0x10]
call eax
cmp eax, esi
je 0x409c20
mov eax, dword [ebp - 0xc38]
cmp dword [eax], esi
jle 0x409c20
cmp dword [eax + 0x210], 1
jne 0x409c20
lea ecx, [ebp - 0xc34]
push ecx
push 0x20019
push esi
push str.SOFTWARECanonSolution_Menu_EX
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x409c40
mov edx, dword [ebp - 0xc34]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
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.00531f97
mov esp, ebp
pop ebp
ret 8
push 0x206
lea ecx, [ebp - 0x216]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x218], ax
call fcn.00531fb0
add esp, 0xc
lea edx, [ebp - 0xc3c]
push edx
mov edx, dword [ebp - 0xc34]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0xc44]
push ecx
push esi
push str.AppPath
push edx
mov dword [ebp - 0xc44], esi
mov dword [ebp - 0xc3c], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov eax, dword [ebp - 0xc34]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp edi, esi
jne 0x409c20
lea ecx, [ebp - 0xc60]
call fcn.0043f9a5
push esi
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0xc60]
mov dword [ebp - 4], esi
call fcn.0043fa4c
lea ecx, [ebp - 0xc60]
mov edi, eax
call fcn.0043f52f
cmp edi, esi
jne 0x409cf6
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc60]
call fcn.0043f9d7
jmp 0x409c20
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0xc30]
push 0x104
push eax
call fcn.00532f33
push str._update
lea ecx, [ebp - 0xa28]
push 0x400
push ecx
call fcn.00532f33
add esp, 0x18
push 0xa18
push 8
mov dword [ebp - 0x228], 0x8001
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], 1
mov dword [ebp - 0x21c], esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], 0xffffffff
cmp eax, esi
je 0x409ce6
mov edi, eax
mov ecx, 0x286
lea esi, [ebp - 0xc30]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xc60]
mov dword [ebx], eax
call fcn.0043f9d7
mov eax, 1
jmp 0x409c22
Function at 0x409d90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54afdb
mov eax, dword fs:[0]
push eax
sub esp, 0xc54
mov eax, dword [0x60c9c8]
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 ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0xc38], esi
mov dword [ebp - 0xc40], esi
cmp ebx, esi
je 0x409e40
mov edx, dword [ecx + 0x264]
lea edi, [ebp - 0xc40]
push edi
lea edi, [ebp - 0xc38]
push edi
add ecx, 0x264
push str.QMUpdate
push eax
mov eax, dword [edx + 0x10]
call eax
cmp eax, esi
je 0x409e40
mov eax, dword [ebp - 0xc38]
cmp dword [eax], esi
jle 0x409e40
cmp dword [eax + 0x210], 1
jne 0x409e40
lea ecx, [ebp - 0xc34]
push ecx
push 0x20019
push esi
push str.SOFTWARECanonQuick_Menu
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x409e60
mov edx, dword [ebp - 0xc34]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
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.00531f97
mov esp, ebp
pop ebp
ret 8
push 0x206
lea ecx, [ebp - 0x216]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x218], ax
call fcn.00531fb0
add esp, 0xc
lea edx, [ebp - 0xc3c]
push edx
mov edx, dword [ebp - 0xc34]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0xc44]
push ecx
push esi
push str.AppPath
push edx
mov dword [ebp - 0xc44], esi
mov dword [ebp - 0xc3c], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov eax, dword [ebp - 0xc34]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp edi, esi
jne 0x409e40
lea ecx, [ebp - 0xc60]
call fcn.0043f9a5
push esi
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0xc60]
mov dword [ebp - 4], esi
call fcn.0043fa4c
lea ecx, [ebp - 0xc60]
mov edi, eax
call fcn.0043f52f
cmp edi, esi
jne 0x409f16
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc60]
call fcn.0043f9d7
jmp 0x409e40
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0xc30]
push 0x104
push eax
call fcn.00532f33
push str._update
lea ecx, [ebp - 0xa28]
push 0x400
push ecx
call fcn.00532f33
add esp, 0x18
push 0xa18
push 8
mov dword [ebp - 0x228], 0x8001
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], 1
mov dword [ebp - 0x21c], esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], 0xffffffff
cmp eax, esi
je 0x409f06
mov edi, eax
mov ecx, 0x286
lea esi, [ebp - 0xc30]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xc60]
mov dword [ebx], eax
call fcn.0043f9d7
mov eax, 1
jmp 0x409e42
Function at 0x40a070
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x60c9c8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
xor eax, eax
test esi, esi
je 0x40a118
push 0x206
push eax
lea ecx, [ebp - 0x20a]
push ecx
mov word [ebp - 0x20c], ax
call fcn.00531fb0
add esp, 0xc
lea edx, [ebp - 0x20c]
push edx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x40a0d9
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531f97
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov edx, dword [ebp + 0xc]
push str.SYSTEM
push str.UserProfile
push str.CanonIJSMEX
lea ecx, [ebp - 0x20c]
push ecx
push str._s_s_s_s
push edx
push esi
call fcn.00533b0b
xor ecx, ecx
add esp, 0x1c
cmp eax, 0xffffffff
setne cl
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00531f97
mov esp, ebp
pop ebp
ret 8

Function at 0x40a130
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x60c9c8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
xor eax, eax
test esi, esi
je 0x40a1c0
push 0x206
push eax
lea ecx, [ebp - 0x20a]
push ecx
mov word [ebp - 0x20c], ax
call fcn.00531fb0
add esp, 0xc
lea edx, [ebp - 0x20c]
push edx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x40a195
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531f97
mov esp, ebp
pop ebp
ret 8
push str.CanonIJWSpt
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x20c]
push ecx
push edx
push esi
call fcn.00532f33
add esp, 0xc
neg eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00531f97
mov esp, ebp
pop ebp
ret 8
Function at 0x40a600
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x60c9c8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
push 0x228
lea eax, [ebp - 0x22c]
push 0
push eax
call fcn.00531fb0
add esp, 0xc
push 0
push 2
mov dword [ebp - 0x230], 0x22c
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
lea ecx, [ebp - 0x230]
mov esi, eax
push ecx
push esi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
jne 0x40a66f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531f97
mov esp, ebp
pop ebp
ret 4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push edi
lea edx, [ebp - 0x20c]
push edx
call ebx
test eax, eax
je 0x40a6d0
lea eax, [ebp - 0x230]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
je 0x40a6b4
push edi
lea ecx, [ebp - 0x20c]
push ecx
call ebx
test eax, eax
je 0x40a6d0
lea edx, [ebp - 0x230]
push edx
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x40a695
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531f97
mov esp, ebp
pop ebp
ret 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
mov eax, 1
pop esi
call fcn.00531f97
mov esp, ebp
pop ebp
ret 4

Function at 0x40a860
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xor eax, eax
push esi
mov esi, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov eax, dword [esi + 0xd740]
mov dword [ebp - 0x24], 0
cmp eax, 5
ja 0x40a8a4
jne 0x40a8a0
cmp dword [esi + 0xd744], 1
jae 0x40a8a4
xor ecx, ecx
jmp 0x40a8b2
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov cx, word [ebp - 0x24]
movzx eax, cx
test eax, eax
je 0x40a8d6
cmp eax, 6
je 0x40a8d6
cmp eax, 9
je 0x40a8d6
mov ecx, 0xffff
mov word [esi + 0xd850], cx
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov word [esi + 0xd850], cx
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x410300
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b48b
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x60c9c8]
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 edi, ecx
mov esi, dword [ebp + 8]
xor ebx, ebx
push 0x206
lea ecx, [ebp - 0x216]
xor eax, eax
push ebx
mov dword [ebp - 0x224], ebx
push ecx
mov word [ebp - 0x218], ax
call fcn.00531fb0
add esp, 0xc
push 0x55c8ac
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x22c], 0x208
mov dword [ebp - 0x228], 1
mov dword [ebp - 0x220], ebx
call fcn.00405b90
movzx eax, word [edi + 0xd850]
mov dword [ebp - 4], ebx
cmp eax, 9
je 0x4103aa
cmp eax, 6
je 0x4103aa
cmp ax, bx
jne 0x4103db
mov eax, dword [ebp - 0x228]
jmp 0x4103b9
mov eax, 0x101
mov edi, str.ProgramFilesDir__x86_
cmp dword [ebp + 0xc], ebx
jne 0x4103be
mov edi, str.ProgramFilesDir
lea ecx, [ebp - 0x220]
push ecx
push eax
push ebx
push str.SoftwareMicrosoftWindowsCurrentVersion
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x410414
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
push eax
call fcn.00402f60
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4104a8
lea ecx, [ebp - 0x22c]
push ecx
mov ecx, dword [ebp - 0x220]
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x224]
push eax
push ebx
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x410467
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x410445
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x21c]
call fcn.00403290
mov eax, dword [ebp - 0x220]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
push eax
call fcn.00402f60
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4104b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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.00531f97
mov esp, ebp
pop ebp
ret 8
Function at 0x4112f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b5d8
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x60c9c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0x55c8ac
lea ecx, [ebp - 0x10]
call fcn.00405b90
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
test esi, esi
je case.0x411342.3
mov eax, dword [ebp + 8]
cmp eax, 0xc
ja case.0x411342.3
jmp dword [eax*4 + 0x411514]
mov ecx, dword [ebp + 0x10]
add edi, 0x30
push edi
push ecx
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x41149e
lea ecx, [ebp - 0x10]
call fcn.00402e70
jmp 0x4114fe
mov edi, dword [edi + 0x254]
mov edx, dword [ebp + 0x10]
push edi
push edx
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
mov eax, dword [ebp + 0x10]
push 2
add edi, 0x30
push edi
push eax
push esi
call fcn.00533b6b
add esp, 0x10
jmp 0x41149e
mov edi, dword [edi + 0x250]
mov ecx, dword [ebp + 0x10]
push edi
push ecx
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
mov edx, dword [ebp + 0x10]
push edx
push esi
mov ecx, edi
call fcn.0040a070
lea ecx, [ebp - 0x10]
mov esi, eax
call fcn.00402e70
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [edi + 0x260]
mov eax, dword [ebp + 0x10]
push edi
push eax
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
push 0
lea ecx, [ebp + 0xc]
push ecx
mov ecx, edi
call fcn.00410300
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.004034d0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0
call fcn.00402e70
lea ecx, [ebp - 0x10]
call fcn.00405390
mov edx, dword [ebp + 0x10]
push eax
push edx
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
push 1
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.00410300
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.004034d0
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call fcn.00402e70
lea ecx, [ebp - 0x10]
call fcn.00405390
mov ecx, dword [ebp + 0x10]
push eax
push ecx
push esi
call fcn.00532f33
add esp, 0xc
jmp 0x41149e
lea ecx, [edi + 0x24c]
jmp 0x411437
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4114c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [ebp - 4], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4114fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x411770
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b68b
mov eax, dword fs:[0]
push eax
sub esp, 0x418
mov eax, dword [0x60c9c8]
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, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov ebx, ecx
mov dword [ebp - 0x424], eax
test esi, esi
je 0x411840
test edi, edi
je 0x411840
push 0
push 0x55c8ac
mov ecx, esi
call fcn.00403290
xor ecx, ecx
mov word [edi], cx
call fcn.0043e2f8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4117ec
push 0x80004005
call fcn.00402a80
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x414], eax
lea ecx, [ebp - 0x414]
push ecx
mov ecx, ebx
mov dword [ebp - 4], 0
call fcn.0040ff40
test eax, eax
jne 0x411860
mov eax, dword [ebp - 0x414]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411840
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
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.00531f97
mov esp, ebp
pop ebp
ret 0x10
mov ebx, dword [ebp - 0x414]
mov edx, dword [ebp - 0x424]
lea ecx, [ebp - 0x418]
push ecx
push 1
push 0
push ebx
push edx
mov dword [ebp - 0x418], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4118a6
lea eax, [ebx - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x411834
xor ecx, ecx
push 0x3fe
push ecx
lea edx, [ebp - 0x40e]
push edx
mov word [ebp - 0x410], cx
call fcn.00531fb0
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
add esp, 0xc
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0x418]
lea ecx, [ebp - 0x410]
push ecx
lea edx, [ebp - 0x420]
push edx
push 0
push str.InstallID
push eax
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0x400
call ebx
test eax, eax
jne 0x411915
lea ecx, [ebp - 0x410]
push ecx
mov ecx, esi
call fcn.00403770
push 0x400
lea edx, [ebp - 0x410]
push 0
push edx
mov dword [ebp - 0x420], 0
call fcn.00531fb0
add esp, 0xc
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0x418]
lea ecx, [ebp - 0x410]
push ecx
lea edx, [ebp - 0x420]
push edx
push 0
push str.Language
push eax
mov dword [ebp - 0x41c], 0x400
call ebx
test eax, eax
jne 0x41197d
push 0x10
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00532401
add esp, 0xc
mov word [edi], ax
mov edx, dword [ebp - 0x418]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x414]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4119b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x411842