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

Disassembly:
sub esp, 0x98
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x9c]
push ebx
mov ebx, dword [esp + 0xb0]
push ebp
push esi
mov esi, dword [esp + 0xb4]
lea eax, [esp + 0xc]
push edi
mov edi, dword [esp + 0xb0]
push eax
push ebx
push esi
push ecx
push edi
push edx
mov dword [esp + 0x28], 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryA
mov ebp, eax
test ebp, ebp
jne 0x100104fc
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jbe 0x100104f4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x24], 2
jne 0x100104fc
test edi, edi
je 0x100104c2
push 0x1001d6a0
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x100104c2
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, eax
mov edi, str.spooldriversWin40
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
cmp eax, ebx
ja 0x100104c2
push str.spooldriversWin40
push esi
call fcn.100053d0
mov ebp, 1
jmp 0x100104fc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, eax
mov edi, str.spooldriversw32x86
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
cmp eax, ebx
ja 0x100104f4
push str.spooldriversw32x86
push esi
call fcn.100053d0
mov ebp, 1
jmp 0x100104fc
push 0x7a
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x10023668], eax
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x10010518
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x98
ret

Function at 0x10010d00
Capabilities:
Start service

Disassembly:
sub esp, 0x1c
push ebx
push edi
xor edi, edi
push 0xf003f
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
je 0x10010d98
mov eax, dword [esp + 0x28]
push ebp
push esi
push 0xf01ff
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov ebp, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov esi, eax
test esi, esi
je 0x10010d8b
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10010d5c
push edi
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
push esi
mov edi, eax
call ebp
push ebx
call ebp
pop esi
mov eax, edi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10010d83
lea ecx, [esp + 0x10]
push ecx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_ControlService]
push esi
mov edi, eax
call ebp
push ebx
call ebp
pop esi
mov eax, edi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret
push esi
mov edi, 1
call ebp
push ebx
call ebp
pop esi
mov eax, edi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret
mov eax, edi
pop edi
pop ebx
add esp, 0x1c
ret
Function at 0x10010e20
Capabilities:
Check os version

Disassembly:
sub esp, 0x2a4
lea eax, [esp + 8]
push esi
push eax
xor esi, esi
mov dword [esp + 0x10], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x1c], 2
jne 0x10010ed8
lea ecx, [esp + 4]
lea edx, [esp + 0xa0]
push ecx
push edx
mov dword [esp + 0xc], 0x104
call fcn.10010ae0
mov esi, eax
add esp, 8
test esi, esi
jne 0x10010ecb
cmp dword [esp + 0x10], 5
jae 0x10010ec4
lea eax, [esp + 0xa0]
push 0x104
push eax
push 0x10020aa0
push str.device
push str.windows
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
test eax, eax
je 0x10010ec4
lea ecx, [esp + 0x1a4]
push 0x104
push ecx
lea edx, [esp + 0xa8]
push 1
push edx
call fcn.10004f30
test eax, eax
je 0x10010ec2
mov al, byte [esp + 0x1a4]
test al, al
jne 0x10010ecb
xor esi, esi
mov eax, 0x46
jmp 0x10010edd
mov eax, 1
pop esi
add esp, 0x2a4
ret
mov eax, 2
mov edx, dword [esp + 0x2ac]
lea ecx, [esp + 8]
push edi
push ecx
push 2
push edx
push eax
call fcn.10010830
mov edi, eax
add esp, 0x10
test edi, edi
je 0x10010f2e
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edx, dword [esp + 0xc]
xor ecx, ecx
add eax, 0x34
cmp ecx, edx
jae 0x10010f20
mov esi, dword [eax]
add eax, 0x54
shr esi, 2
and esi, 1
inc ecx
test esi, esi
je 0x10010f0c
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, esi
pop edi
pop esi
add esp, 0x2a4
ret
Function at 0x10010f40
Capabilities:
Get common file path

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x118
lea eax, [esp + 4]
push eax
push 0
push str.DestinationDirs
push ecx
call fcn.100017b0
add esp, 0x10
test eax, eax
je 0x1001115e
push ebx
push ebp
mov ebp, dword [esp + 0x128]
push esi
push edi
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push 0x104
push eax
lea ecx, [esp + 0x20]
push 1
push ecx
call fcn.10001840
add esp, 0x14
test eax, eax
je 0x10011140
lea edx, [esp + 0x24]
push edx
call fcn.100054a0
mov ebx, eax
cmp ebx, 0x101d2
jg 0x10010fff
je 0x10010fe8
cmp ebx, 0x17
je 0x100110cc
cmp ebx, 0x101d1
jne 0x1001100f
mov edx, dword [esp + 0x134]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x28]
push 0x104
push ecx
push 1
push edx
push ebp
call fcn.10010530
add esp, 0x18
mov esi, eax
jmp 0x1001110a
lea eax, [esp + 0x24]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov esi, eax
jmp 0x1001110a
mov eax, ebx
sub eax, 0x101d3
je 0x100110cc
dec eax
je 0x1001106f
mov eax, dword [esp + 0x134]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x28]
push 0x104
push edx
push 1
push eax
push ebp
call fcn.10010400
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x1001110c
lea ecx, [esp + 0x24]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea edx, [esp + 0x24]
push 0x1001d88c
push edx
call fcn.100053d0
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
jmp 0x1001110a
lea eax, [esp + 0x24]
push 0x104
push eax
call fcn.100105f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x1001109b
lea ecx, [esp + 0x24]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov esi, eax
test esi, esi
jbe 0x10011140
lea edx, [esp + 0x24]
push str.WebPrinters
push edx
call fcn.100053d0
mov eax, dword [esp + 0x138]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.100053d0
mov edx, dword [esp + 0x13c]
push edx
jmp 0x10011100
lea ecx, [esp + 0x24]
push 0x104
push ecx
push ebp
call fcn.10010580
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001110c
lea edx, [esp + 0x24]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov esi, eax
test esi, esi
jbe 0x10011140
push str.spooldriverscolor
lea eax, [esp + 0x28]
push eax
call fcn.100053d0
test esi, esi
jbe 0x10011140
mov eax, dword [esp + 0x140]
test eax, eax
je 0x1001112a
cmp byte [eax], 0
je 0x1001112a
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esp + 0x12c]
lea edx, [esp + 0x24]
push edx
push ebx
push eax
call fcn.10001fb0
add esp, 0xc
lea ecx, [esp + 0x14]
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.10001800
add esp, 8
test eax, eax
jne 0x10010f72
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
Function at 0x10012a50
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1001c3ab
push eax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], esp
sub esp, 0x330
push ebp
mov ebp, dword [esp + 0x348]
push esi
mov esi, dword [esp + 0x348]
push edi
push ecx
mov eax, dword [esi]
push ebp
mov ecx, esi
xor edi, edi
call dword [eax + 0xc]
mov edx, dword [esi]
test eax, eax
je 0x10012ac3
mov eax, dword [esp + 0x35c]
push edi
mov edi, dword [esp + 0x35c]
push eax
push edi
push 1
mov ecx, esi
call dword [edx + 0x38]
test eax, eax
je 0x10012abc
cmp byte [edi], 0
je 0x10012abc
mov eax, 1
jmp 0x10012c55
xor eax, eax
jmp 0x10012c55
push str.Include
push ebp
mov ecx, esi
call dword [edx + 0xc]
test eax, eax
je 0x10012c53
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x3c]
mov edx, dword [esi]
push str.Needs
push ebp
mov ecx, esi
call dword [edx + 0xc]
mov edi, eax
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x3c]
test edi, edi
je 0x10012c53
xor edi, edi
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0xc]
mov edx, dword [esi]
push 0
lea eax, [esp + 0x138]
push 0x104
push eax
push ecx
mov ecx, esi
call dword [edx + 0x38]
test eax, eax
je 0x10012c53
mov al, byte [esp + 0x134]
test al, al
je 0x10012c53
lea ecx, [esp + 0x10]
call fcn.10003b50
mov edx, dword [esi]
push 1
mov ecx, esi
mov dword [esp + 0x348], 0
call dword [edx + 0x3c]
lea eax, [esp + 0x30]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x30]
push 0x1001d88c
push ecx
call fcn.100053d0
lea edx, [esp + 0x134]
lea eax, [esp + 0x30]
push edx
push eax
call fcn.100053d0
lea ecx, [esp + 0x30]
push 0
push ecx
lea ecx, [esp + 0x18]
call fcn.10003c20
test eax, eax
je 0x10012c25
mov edx, dword [esi]
push str.Needs
push ebp
mov ecx, esi
call dword [edx + 0xc]
test eax, eax
je 0x10012c1c
test edi, edi
mov ebp, 1
jne 0x10012c15
mov eax, dword [esi]
push 0
lea ecx, [esp + 0x23c]
push 0x104
push ecx
push ebp
mov ecx, esi
call dword [eax + 0x38]
test eax, eax
je 0x10012c15
mov al, byte [esp + 0x238]
test al, al
je 0x10012c15
mov edx, dword [esp + 0x35c]
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push edx
push eax
lea edx, [esp + 0x240]
push ecx
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.10012a50
add esp, 0x14
mov edi, eax
inc ebp
test edi, edi
je 0x10012bbb
mov ebp, dword [esp + 0x350]
lea ecx, [esp + 0x10]
call fcn.10003c60
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
lea ecx, [esp + 0x10]
mov dword [esp + 0x344], 0xffffffff
call fcn.100049b0
mov ecx, dword [esp + 0xc]
inc ecx
test edi, edi
mov dword [esp + 0xc], ecx
je 0x10012b09
mov eax, edi
mov ecx, dword [esp + 0x33c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x33c
ret
Function at 0x10012d20
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x1001c3cb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x334
push ebx
mov ebx, dword [esp + 0x354]
push ebp
push esi
mov esi, dword [esp + 0x358]
push edi
xor ebp, ebp
push str.Include
mov eax, dword [esi]
push ebx
mov ecx, esi
mov dword [esp + 0x18], ebp
call dword [eax + 0xc]
test eax, eax
je 0x10012f3a
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x3c]
mov eax, dword [esi]
push str.Needs
push ebx
mov ecx, esi
call dword [eax + 0xc]
mov edx, dword [esi]
push ebp
mov ecx, esi
mov edi, eax
call dword [edx + 0x3c]
test edi, edi
je 0x10012f3a
mov eax, dword [esi]
push ebp
lea ecx, [esp + 0x244]
push 0x104
push ecx
push 1
mov ecx, esi
mov dword [esp + 0x24], 1
call dword [eax + 0x38]
test eax, eax
je 0x10012f3a
mov ebp, dword [esp + 0x370]
mov edi, dword [esp + 0x36c]
mov al, byte [esp + 0x240]
test al, al
je 0x10012f34
lea ecx, [esp + 0x18]
call fcn.10003b50
mov edx, dword [esi]
push 1
mov ecx, esi
mov dword [esp + 0x350], 0
call dword [edx + 0x3c]
lea eax, [esp + 0x13c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x13c]
push 0x1001d88c
push ecx
call fcn.100053d0
lea edx, [esp + 0x240]
lea eax, [esp + 0x13c]
push edx
push eax
call fcn.100053d0
lea ecx, [esp + 0x13c]
push 0
push ecx
lea ecx, [esp + 0x20]
call fcn.10003c20
test eax, eax
je 0x10012eef
mov edx, dword [esi]
push str.Needs
push ebx
mov ecx, esi
call dword [edx + 0xc]
test eax, eax
je 0x10012ee6
mov eax, dword [esi]
push 0
lea ecx, [esp + 0x3c]
mov ebx, 1
push 0x104
push ecx
push ebx
mov ecx, esi
call dword [eax + 0x38]
test eax, eax
je 0x10012edf
mov al, byte [esp + 0x38]
test al, al
je 0x10012edf
mov edx, dword [esp + 0x368]
mov eax, dword [esp + 0x364]
push ebp
push edi
push edx
lea ecx, [esp + 0x44]
push eax
mov eax, dword [esp + 0x368]
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x368]
push edx
push eax
push ecx
call fcn.10012f60
add esp, 0x20
test eax, eax
jbe 0x10012ec6
mov ecx, dword [esp + 0x10]
add edi, eax
sub ebp, eax
add ecx, eax
mov dword [esp + 0x10], ecx
mov edx, dword [esi]
push 0
lea eax, [esp + 0x3c]
inc ebx
push 0x104
push eax
push ebx
mov ecx, esi
call dword [edx + 0x38]
test eax, eax
jne 0x10012e78
mov ebx, dword [esp + 0x360]
lea ecx, [esp + 0x18]
call fcn.10003c60
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
lea ecx, [esp + 0x18]
mov dword [esp + 0x34c], 0xffffffff
call fcn.100049b0
mov eax, dword [esp + 0x14]
mov edx, dword [esi]
push 0
lea ecx, [esp + 0x244]
inc eax
push 0x104
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x24], eax
call dword [edx + 0x38]
test eax, eax
jne 0x10012dc5
mov eax, dword [esp + 0x10]
jmp 0x10012f3c
mov eax, ebp
mov ecx, dword [esp + 0x344]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x340
ret
Function at 0x10013420
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x24]
push edi
xor edi, edi
cmp ebp, 0x101d2
jg 0x100134be
cmp ebp, 0x101d2
je 0x100134ac
mov eax, ebp
sub eax, 0x17
je 0x10013507
sub eax, 0x101b9
je 0x10013487
dec eax
jne 0x10013527
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x14]
push eax
push ebx
push esi
push 1
push ecx
push edx
call fcn.10010530
add esp, 0x18
test eax, eax
je 0x1001355c
jmp 0x1001351a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x14]
push eax
push ebx
push esi
push 1
push ecx
push edx
call fcn.10010400
add esp, 0x18
test eax, eax
je 0x1001355c
jmp 0x1001351a
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jbe 0x1001355c
jmp 0x1001351a
mov eax, ebp
sub eax, 0x101d3
je 0x10013507
dec eax
jne 0x10013527
push ebx
push esi
call fcn.100105f0
add esp, 8
test eax, eax
jne 0x100134e4
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x1001355c
push str.WebPrinters
push esi
call fcn.100053d0
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.100053d0
mov ecx, dword [esp + 0x24]
push ecx
push esi
call fcn.100053d0
jmp 0x1001351a
mov edx, dword [esp + 0x14]
push ebx
push esi
push edx
call fcn.10010580
add esp, 0xc
test eax, eax
je 0x10013527
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
test edi, edi
jne 0x1001355c
cmp ebp, 0x101d0
jl 0x10013537
cmp ebp, 0x101d4
jle 0x1001355c
cmp ebp, 0xb
jne 0x10013548
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x10013550
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x10013910
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x1001c3eb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c4
lea eax, [esp + 0x28]
push esi
push eax
xor esi, esi
mov dword [esp + 0x30], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x3c]
cmp eax, esi
jne 0x10013964
mov eax, 1
pop esi
mov ecx, dword [esp + 0x2c4]
mov dword fs:[0], ecx
add esp, 0x2d0
ret
cmp eax, 1
push ebp
jne 0x10013982
mov eax, dword [esp + 0x34]
cmp eax, 4
ja 0x1001398e
jne 0x1001397c
cmp dword [esp + 0x38], 0xa
jae 0x1001398e
mov dword [esp + 0xc], esi
jmp 0x100139b2
cmp eax, 2
jne 0x1001397c
cmp dword [esp + 0x34], 5
jb 0x1001397c
push str.mscms.dll
mov dword [esp + 0x10], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
cmp ebp, esi
je 0x10013b1c
push str.InstallColorProfileA
jmp 0x100139cc
push str.gdi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
cmp ebp, esi
je 0x10013b1c
push str.UpdateICMRegKeyA
push ebp
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, esi
mov dword [esp + 8], eax
je 0x10013b15
lea ecx, [esp + 0x10]
call fcn.10003b50
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2d4], esi
push ecx
lea ecx, [esp + 0x14]
call fcn.10004980
mov edx, dword [esp + 0x2e0]
push esi
push esi
push esi
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.10010b60
add esp, 0x14
test eax, eax
je 0x10013af8
push ebx
mov ebx, dword [esp + 0x2ec]
push edi
mov edi, dword [esp + 0x2f8]
push 0
lea ecx, [esp + 0x1d4]
push 0x104
push ecx
push 1
lea ecx, [esp + 0x28]
call fcn.10004450
test eax, eax
je 0x10013ae5
mov eax, dword [esp + 0x2ec]
lea edx, [esp + 0x1d0]
push edx
lea ecx, [esp + 0xd0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push eax
call fcn.100053d0
lea edx, [esp + 0xcc]
push edi
push edx
push 0xf
call fcn.10005800
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x10013abe
lea eax, [esp + 0xcc]
push eax
push ebx
call dword [esp + 0x18]
mov esi, eax
test esi, esi
je 0x10013ad2
push str.AssociateColorProfileWithDeviceA
push ebp
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [esp + 0xcc]
push edi
push ecx
push ebx
call eax
jmp 0x10013ad0
lea edx, [esp + 0xcc]
push 1
push edx
push 0
push 0
call dword [esp + 0x20]
mov esi, eax
lea eax, [esp + 0xcc]
push edi
push eax
push 0x10
call fcn.10005800
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.10003d10
test eax, eax
jne 0x10013a30
pop edi
pop ebx
lea ecx, [esp + 0x10]
call fcn.100049a0
lea ecx, [esp + 0x10]
mov dword [esp + 0x2d4], 0xffffffff
call fcn.100049b0
push ebp
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x2cc]
mov eax, esi
pop ebp
pop esi
mov dword fs:[0], ecx
add esp, 0x2d0
ret
Function at 0x10013b40
Capabilities:
Check os version

Disassembly:
sub esp, 0xf8
lea eax, [esp + 0x64]
push esi
push eax
mov dword [esp + 0x6c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x78]
xor esi, esi
cmp eax, esi
je 0x10013b7b
cmp eax, 1
jne 0x10013b85
mov eax, dword [esp + 0x6c]
cmp eax, 4
ja 0x10013b91
jne 0x10013b7b
cmp dword [esp + 0x70], 0xa
jae 0x10013b91
xor eax, eax
pop esi
add esp, 0xf8
ret
cmp eax, 2
jne 0x10013b7b
cmp dword [esp + 0x6c], 5
jb 0x10013b7b
push str.mscms.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, eax
cmp edx, esi
mov dword [esp + 0xc], edx
je 0x10013b7b
push ebx
push ebp
push edi
mov ecx, 0x16
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x114]
push str.EnumColorProfilesA
push edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], 0x58
mov dword [esp + 0x28], 0x300
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esp + 0x10c]
lea edx, [esp + 0x10]
mov edi, eax
push esi
push edx
lea eax, [esp + 0x24]
push esi
push eax
push ebx
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebp
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x10013c6e
add eax, 0x10
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x10013c6e
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
push edx
push eax
lea eax, [esp + 0x28]
push eax
push ebx
mov dword [esp + 0x28], 0
call edi
mov edi, eax
call ebp
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
test edi, edi
je 0x10013c67
mov eax, dword [esp + 0x118]
test eax, eax
je 0x10013c6e
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x10013c6e
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop ebp
mov eax, esi
pop ebx
pop esi
add esp, 0xf8
ret
Function at 0x10013c90
Capabilities:
Check os version

Disassembly:
sub esp, 0x1b0
mov ecx, dword [esp + 0x1b4]
lea eax, [esp + 4]
push eax
push 5
push ecx
push 0x46
call fcn.10010830
add esp, 0x10
mov dword [esp + 8], eax
test eax, eax
je 0x10013e4b
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
push edi
push eax
call ebp
mov esi, eax
mov eax, dword [esp + 0x14]
xor edi, edi
test eax, eax
jbe 0x10013e2a
mov ebx, dword [esp + 0x1c8]
mov edx, dword [esi]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10013cf3
test byte [esi + 8], 4
je 0x10013d04
mov eax, dword [esp + 0x14]
add esi, 0x14
inc edi
cmp edi, eax
jb 0x10013cdf
jmp 0x10013e2a
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x10013d5c
mov ecx, dword [esi + 8]
mov eax, dword [esi]
or ecx, 4
lea edx, [esp + 0x1c]
mov dword [esi + 8], ecx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
push ecx
push esi
push 5
push edx
mov dword [esp + 0x34], ecx
push eax
mov dword [esp + 0x38], 0xf000c
call fcn.100109d0
add esp, 0x14
mov dword [esp + 0x10], eax
jmp 0x10013e2a
cmp eax, 2
jne 0x10013d76
cmp dword [esp + 0x2c], 5
jb 0x10013d76
push ebx
call fcn.10010b20
add esp, 4
jmp 0x10013e2a
mov ecx, dword [esi]
push 0
push 2
push ecx
call fcn.100108e0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10013e2a
push ebx
call ebp
mov esi, eax
lea eax, [esp + 0xbc]
mov edx, dword [esi + 4]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0xbc]
push 0x100205c4
push ecx
call edi
mov edx, dword [esi + 0x10]
lea eax, [esp + 0xbc]
push edx
push eax
call edi
lea ecx, [esp + 0xbc]
push 0x100205c4
push ecx
call edi
mov edx, dword [esi + 0xc]
lea eax, [esp + 0xbc]
push edx
push eax
call edi
lea ecx, [esp + 0xbc]
push ecx
push str.device
push str.windows
call dword [sym.imp.KERNEL32.dll_WriteProfileStringA]
push 0
push 0x3e8
push 0
push 0
push 0
push 0x1a
push 0xffff
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret
mov eax, dword [esp]
add esp, 0x1b0
ret
Function at 0x10014f30
Capabilities:
Get common file path

Disassembly:
sub esp, 0x424
lea eax, [esp + 4]
push ebx
mov ebx, dword [esp + 0x440]
push ebp
mov ebp, dword [esp + 0x430]
push esi
push edi
mov edi, dword [esp + 0x448]
push eax
push ebx
push edi
push ebp
call fcn.100017b0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10014fd9
lea ecx, [esp + 0x14]
push ecx
push str.DataSection
push edi
push ebp
call fcn.100017b0
add esp, 0x10
test eax, eax
je 0x1001510c
lea edx, [esp + 0x10]
lea eax, [esp + 0x22c]
push edx
push 0x104
push eax
lea ecx, [esp + 0x20]
push 1
push ecx
mov dword [esp + 0x24], esi
call fcn.10001840
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1001510a
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x10014fd1
lea edx, [esp + 0x14]
lea eax, [esp + 0x22c]
push edx
push ebx
push eax
push ebp
call fcn.100017b0
add esp, 0x10
mov esi, eax
test esi, esi
je 0x1001510a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x128]
push ecx
push 0x104
push edx
lea eax, [esp + 0x20]
push 1
push eax
mov dword [esp + 0x24], 0
call fcn.10001840
add esp, 0x14
test eax, eax
je 0x1001510a
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x1001510a
lea ecx, [esp + 0x330]
push 0x104
push ecx
lea edx, [esp + 0x130]
push 1
push edx
call fcn.10004f30
test eax, eax
je 0x1001510a
lea eax, [esp + 0x24]
push 0x104
push eax
lea ecx, [esp + 0x130]
push 2
push ecx
call fcn.10004f30
test eax, eax
je 0x1001510a
push 0x104
call fcn.100168e2
push 0x104
mov ebx, eax
call fcn.100168e2
mov ecx, dword [esp + 0x44c]
mov edi, eax
mov eax, dword [esp + 0x450]
lea edx, [esp + 0x2c]
push ebx
push edx
mov edx, dword [esp + 0x450]
push eax
push ecx
push edx
push ebp
call fcn.10011630
add esp, 0x20
test eax, eax
je 0x100150fb
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push edi
push ebx
call fcn.100052e0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100150fb
mov eax, dword [esp + 0x454]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.10005380
push eax
push edi
push 0
lea edx, [esp + 0x34]
push 0
push edx
call fcn.10005380
mov ecx, dword [esp + 0x450]
push eax
mov eax, dword [esp + 0x468]
push 0
push eax
push ecx
call fcn.10002500
add esp, 0x24
mov esi, eax
push ebx
call fcn.100168d7
push edi
call fcn.100168d7
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x424
ret