joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000b0b0
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, ecx
push edi
test ebx, ebx
je 0x1000b252
mov eax, dword [0x10161bc8]
test eax, eax
jne 0x1000b134
push 0x1015d020
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x10161bc8], 0
jne 0x1000b124
push 0x10
call fcn.10067a5e
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x1000b119
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x1000b11b
xor ecx, ecx
xchg dword [ebp - 4], eax
mov dword [0x10161bc8], ecx
push 0x1015d020
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x10161bc8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1000b252
mov eax, dword [ecx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x1000b252
mov edx, dword [edi]
mov ecx, edi
push 0
push 0x1011b0d4
call dword [edx + 0x30]
mov eax, dword [edi]
mov ecx, edi
push 0
push str.gzip
call dword [eax + 0x30]
test edi, edi
je 0x1000b252
push dword [ebp + 0x10]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push edi
mov dword [ebp - 8], 0
call fcn.1000a460
mov eax, dword [ebp - 0xc]
mov dword [esi + 4], eax
mov edi, dword [esi + 8]
mov eax, dword [ebp - 8]
mov dword [esi + 8], eax
test edi, edi
je 0x1000b1c2
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x1000b1bf
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x1000b1bf
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
push esi
mov eax, dword [ecx]
call dword [eax]
mov edi, dword [ebp + 0xc]
push dword [edi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000b1ed
push dword [edi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [edi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1000b252
mov ecx, dword [esi + 4]
push dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [esi + 4]
push dword [ebp + 8]
push 0
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x1000b252
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1000b252
mov ecx, dword [ebp + 0x14]
push ebx
test ecx, ecx
je 0x1000b23b
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push 0
push eax
push 2
mov dword [ebp - 8], ecx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
jne 0x1000b252
mov eax, dword [esi + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1000b252
mov eax, dword [esi + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x1000e690
Capabilities:
Get token membership

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0xc], 0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
lea eax, [ebp - 0xc]
mov word [ebp - 8], 0x500
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x1000e6f9
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push 0
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
push dword [ebp - 0x14]
neg eax
sbb eax, eax
and dword [ebp - 0x10], eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret

Function at 0x1000eca0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jne 0x1000ecb7
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp + 0x10], 0
je 0x1000ed6d
push edi
push 0x1004
call fcn.10067a5e
mov edi, eax
add esp, 4
test edi, edi
je 0x1000ecfd
mov ecx, dword [ebp + 8]
push esi
push 0x1000
lea esi, [edi + 4]
mov dword [edi], ecx
push 0
push esi
call fcn.100dd9d0
push 0x800
push ebx
push esi
call fcn.100ed0b8
add esp, 0x18
pop esi
jmp 0x1000ecff
xor edi, edi
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20], vtable.CSimpleThread.0
push eax
push 0
push edi
push 0x1000ed80
push 0
push 0
mov dword [ebp - 8], 0x1000ed80
mov dword [ebp - 4], edi
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
call fcn.100e4c00
add esp, 0x18
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], vtable.CSimpleThread.0
pop edi
test eax, eax
je 0x1000ed61
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 8]
push ebx
call fcn.10010120
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x10010350
Capabilities:
Read http header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10110496
mov eax, dword fs:[0]
push eax
sub esp, 0x80c
mov eax, dword [0x1015e404]
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 + 0xc]
lea eax, [ebp - 0x810]
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x18]
push 0x800
push 0
push eax
mov dword [ebp - 0x814], esi
call fcn.100dd9d0
add esp, 0xc
mov dword [ebp - 0x818], 0x800
lea eax, [ebp - 0x818]
push 0
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push dword [ebp + 0x14]
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
je 0x10010433
call fcn.10002000
mov ecx, eax
test ecx, ecx
je 0x10010531
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x810]
mov dword [ebp - 4], 0
push eax
mov ecx, esi
call fcn.10002420
test al, al
jne 0x10010511
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10010410
sub ecx, edx
lea eax, [ebp - 0x810]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001c80
jmp 0x10010511
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x100104fc
mov eax, dword [ebp - 0x818]
lea ecx, [ebp - 0x814]
shr eax, 1
dec eax
push eax
push 0
call fcn.1000e790
mov eax, dword [ebp - 0x814]
mov dword [ebp - 4], 1
cmp dword [eax - 4], 1
jle 0x10010480
push dword [eax - 0xc]
lea ecx, [ebp - 0x814]
call fcn.10001ac0
mov eax, dword [ebp - 0x814]
push 0
lea ecx, [ebp - 0x818]
push ecx
push eax
push ebx
push dword [ebp + 0x14]
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
je 0x100104d7
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
push eax
call fcn.10001a00
mov edx, dword [ebp - 0x814]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10010511
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10010511
mov edx, dword [ebp - 0x814]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100104fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.10002000
mov ecx, eax
test ecx, ecx
je 0x1001053b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], 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.10067a9c
mov esp, ebp
pop ebp
ret 0x14
push 0x80004005
call fcn.100017c0
push 0x80004005
call fcn.100017c0
int3
Function at 0x10010550
Capabilities:
Receive http response

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x201c
call fcn.10068050
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x201c], ebx
mov dword [ebp - 0x2018], edi
test edi, edi
je 0x100105bf
test ecx, ecx
jl 0x100105bf
jg 0x10010593
test edx, edx
jb 0x100105bf
mov eax, dword [edi]
push ecx
push edx
push edi
call dword [eax + 0x18]
mov edi, eax
test edi, edi
jns 0x100105b9
test esi, esi
je 0x10010747
mov ecx, dword [esi]
push edi
push str.WinHttpSetResponseStreamSize
push esi
call dword [ecx]
jmp 0x10010745
mov edi, dword [ebp - 0x2018]
push 0x2000
lea eax, [ebp - 0x2004]
xorps xmm0, xmm0
push 0
push eax
movlpd qword [ebp - 0x2014], xmm0
call fcn.100dd9d0
add esp, 0xc
mov dword [ebp - 0x2008], 0
lea eax, [ebp - 0x2008]
push eax
push 0x2000
lea eax, [ebp - 0x2004]
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
mov ebx, dword [ebp - 0x2010]
test eax, eax
je 0x100106e5
mov edx, dword [ebp - 0x2014]
mov dword [ebp - 0x200c], edx
nop
mov ecx, dword [ebp - 0x2008]
test ecx, ecx
je 0x100106e1
test edi, edi
je 0x10010675
mov eax, dword [edi]
lea edx, [ebp - 0x2010]
push edx
push ecx
lea ecx, [ebp - 0x2004]
mov dword [ebp - 0x2010], 0
push ecx
push edi
call dword [eax + 0x10]
mov edi, eax
test edi, edi
js 0x100106ce
mov ecx, dword [ebp - 0x2010]
cmp ecx, dword [ebp - 0x2008]
jne 0x1001072d
mov edx, dword [ebp - 0x200c]
mov edi, dword [ebp - 0x2018]
add edx, ecx
mov dword [ebp - 0x200c], edx
adc ebx, 0
test esi, esi
je 0x10010696
push dword [ebp + 0x18]
mov eax, dword [esi]
push dword [ebp + 0x14]
push ebx
push edx
push esi
call dword [eax + 0xc]
test eax, eax
je 0x100106da
lea eax, [ebp - 0x2008]
mov dword [ebp - 0x2008], 0
push eax
push 0x2000
lea eax, [ebp - 0x2004]
push eax
push dword [ebp - 0x201c]
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
je 0x100106f1
mov edx, dword [ebp - 0x200c]
jmp 0x10010620
test esi, esi
je 0x10010707
push edi
push str.WinHttpWriteResponseStream
jmp 0x10010702
mov edi, 0x80004004
jmp 0x10010745
xor edi, edi
jmp 0x10010711
mov eax, dword [ebp - 0x2014]
mov dword [ebp - 0x200c], eax
call fcn.10004e80
mov edi, eax
test esi, esi
je 0x10010707
push edi
push 0x1011b504
mov eax, dword [esi]
push esi
call dword [eax]
test edi, edi
js 0x10010745
mov edx, dword [ebp - 0x200c]
mov eax, dword [ebp + 0x18]
test eax, eax
jl 0x10010745
mov ecx, dword [ebp + 0x14]
jg 0x10010721
test ecx, ecx
jb 0x10010745
cmp edx, ecx
jne 0x1001072d
cmp ebx, eax
jne 0x1001072d
xor edi, edi
jmp 0x10010745
test esi, esi
je 0x10010740
mov eax, dword [esi]
push 0x80004005
push str.WinHttpWriteResponseStream
push esi
call dword [eax]
mov edi, 0x80004005
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067a9c
mov esp, ebp
pop ebp
ret 0x18
Function at 0x100115e0
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x10151650
push 0x100ddbd0
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x1015e404]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x28], 0
xor edi, edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], edi
mov dword [eax], edi
mov dword [ecx], edi
lea eax, [ebp - 0x28]
push eax
push edi
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
test eax, eax
je 0x1001165a
cmp dword [ebp - 0x28], edi
je 0x1001165a
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x10011692
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x3f0
jne 0x10011774
lea eax, [ebp - 0x28]
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x10011774
cmp dword [ebp - 0x28], 0
je 0x10011774
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x2c]
push eax
push 0
push 0
push 2
push dword [ebp - 0x28]
mov ebx, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
call ebx
test eax, eax
jne 0x10011774
cmp dword [ebp - 0x2c], eax
jbe 0x10011774
call esi
cmp eax, 0x7a
jne 0x10011774
push dword [ebp - 0x2c]
call fcn.100e0f4b
add esp, 4
mov edi, eax
mov dword [ebp - 0x38], edi
test edi, edi
je 0x10011774
mov dword [ebp - 0x34], 0
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x2c]
push edi
push 2
push dword [ebp - 0x28]
call ebx
test eax, eax
je 0x10011774
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x2c]
jne 0x10011774
mov dword [ebp - 0x24], 0
mov word [ebp - 0x20], 0x500
lea eax, [ebp - 0x30]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x10011774
cmp dword [ebp - 0x30], 0
je 0x10011774
xor esi, esi
mov dword [ebp - 0x3c], esi
cmp esi, dword [edi]
jae 0x10011774
lea ebx, [edi + esi*8]
push dword [ebp - 0x30]
push dword [ebx + 4]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
jne 0x1001175d
inc esi
jmp 0x10011740
mov eax, dword [ebp - 0x40]
mov dword [eax], 1
mov eax, dword [ebx + 8]
shr eax, 2
and eax, 1
mov ecx, dword [ebp - 0x44]
mov dword [ecx], eax
mov dword [ebp - 4], 0xfffffffe
call fcn.100117a1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret 8
Function at 0x10011800
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x208
xor esi, esi
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.100dd9d0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1001185e
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10011867
sub ecx, edx
sar ecx, 1
je 0x10011891
lea eax, [ebp - 0x20c]
push eax
call fcn.1005c340
mov esi, eax
add esp, 4
test esi, esi
jne 0x10011899
push 0xffffffffffffff9a
jmp 0x10011893
push 0xffffffffffffff9b
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
Function at 0x10011950
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10110556
mov eax, dword fs:[0]
push eax
sub esp, 0x134
push esi
push edi
mov eax, dword [0x1015e404]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
test esi, esi
je 0x10011b94
xor eax, eax
cmp ax, word [esi]
je 0x10011b94
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x10011b94
cmp dword [ebp + 0x10], eax
je 0x100119b7
push esi
call fcn.1005c340
add esp, 4
test eax, eax
jne 0x100119b7
push str.file_sign_error
jmp 0x10011b99
cmp dword [ebp + 0x20], 0
je 0x10011a50
call fcn.100117d0
test eax, eax
je 0x10011a50
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push eax
push edi
push esi
call fcn.10011bc0
add esp, 0xc
test eax, eax
je 0x10011a50
call fcn.1005b270
test eax, eax
je 0x10011a3a
call fcn.1005b270
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 4]
call eax
test al, al
je 0x10011a3a
call fcn.1005b270
lea ecx, [ebp - 0xa8]
mov edi, eax
call fcn.10003680
mov esi, dword [edi]
mov ecx, eax
push str.svc_lau
mov dword [ebp - 4], 0
call fcn.10010f60
push eax
mov ecx, edi
call dword [esi + 0x14]
lea ecx, [ebp - 0xa8]
call fcn.10004340
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
lea eax, [ebp - 0x10]
mov dword [ebp + 8], 0
push eax
lea eax, [ebp + 8]
mov dword [ebp - 0x10], 0
push eax
call fcn.100115e0
cmp dword [ebp + 8], 0
jne 0x10011a7b
push str.isnot_admin_user
jmp 0x10011b99
cmp dword [ebp - 0x10], 0
je 0x10011ab1
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 5
push edi
push esi
call fcn.100148d0
add esp, 0x20
neg eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x20], 0
jne 0x10011b52
call fcn.100117d0
test eax, eax
je 0x10011b52
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push edi
push esi
call fcn.10011bc0
add esp, 0xc
test eax, eax
je 0x10011b52
call fcn.1005b270
test eax, eax
je 0x10011a3a
call fcn.1005b270
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 4]
call eax
test al, al
je 0x10011a3a
call fcn.1005b270
lea ecx, [ebp - 0x140]
mov edi, eax
call fcn.10003680
mov esi, dword [edi]
mov ecx, eax
push str.svc_lau
mov dword [ebp - 4], 1
call fcn.10010f60
push eax
mov ecx, edi
call dword [esi + 0x14]
lea ecx, [ebp - 0x140]
call fcn.10004340
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
push 1
push 0
push edi
push esi
push 0x1011b37c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, 0x20
cmp ecx, eax
sbb esi, esi
neg esi
cmp eax, ecx
ja 0x10011b81
push str.shell_exec_direct_error
call fcn.1001d9a0
add esp, 4
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
push str.invalid_param
call fcn.1001d9a0
add esp, 4
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
Function at 0x100124d0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c8
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c4], ecx
mov dword [ebp - 0x4c0], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
test ecx, ecx
je 0x100125b1
test eax, eax
je 0x100125b1
lea eax, [ebp - 0x4bc]
push eax
push 0x3e8
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x100125b1
mov ax, word [ebp - 0x4bc]
xor esi, esi
test ax, ax
je 0x100125b1
xor ecx, ecx
movzx edx, ax
nop dword [eax + eax]
mov ax, word [ebp + ecx - 0x4ba]
mov word [ebp - 0xa], ax
xor eax, eax
mov word [ebp - 8], ax
lea eax, [ebp - 0xd4]
push 0x64
push eax
lea eax, [ebp - 0xc]
mov word [ebp - 0xc], dx
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x1001259c
lea eax, [ebp - 0xd4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea eax, [ebp - 0xd4]
push ebx
push eax
push dword [ebp - 0x4c4]
mov dword [ebp - 0x4c8], ebx
call fcn.100ed5e9
add esp, 0xc
test eax, eax
je 0x100125c4
add esi, 4
lea ecx, [esi + esi]
movzx eax, word [ebp + ecx - 0x4bc]
mov edx, eax
test ax, ax
jne 0x10012540
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x10012612
cmp edi, 0x7fffffff
ja 0x10012612
mov ecx, dword [ebp - 0x4c0]
lea ebx, [ebp - 0xc]
mov esi, Ordinal_1
mov edx, edi
sub esi, edi
sub ebx, ecx
lea eax, [esi + edx]
test eax, eax
je 0x100125ff
movzx eax, word [ebx + ecx]
test ax, ax
je 0x100125ff
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x100125e4
mov ebx, dword [ebp - 0x4c8]
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
xor ecx, ecx
test edi, edi
je 0x10012620
cmp edi, 0x7fffffff
jbe 0x10012625
mov ecx, 0x80070057
test ecx, ecx
js 0x1001265b
mov eax, dword [ebp - 0x4c0]
mov esi, edi
test edi, edi
je 0x10012643
cmp word [eax], 0
je 0x10012643
add eax, 2
sub esi, 1
jne 0x10012635
xor eax, eax
mov ecx, 0x80070057
test esi, esi
cmovne ecx, eax
mov eax, edi
sub eax, esi
neg esi
sbb esi, esi
and esi, eax
jmp 0x1001265d
xor esi, esi
test ecx, ecx
js 0x100126ae
mov eax, dword [ebp - 0x4c0]
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x100126a1
mov eax, edx
sub eax, edi
mov edi, dword [ebp - 0x4c4]
add eax, 0x7fffffff
add esi, eax
lea eax, [ebx + ebx]
sub eax, ecx
add edi, eax
test esi, esi
je 0x100126a1
movzx eax, word [edi + ecx]
test ax, ax
je 0x100126a1
mov word [ecx], ax
dec esi
add ecx, 2
sub edx, 1
jne 0x10012688
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
Function at 0x100126f0
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x18]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x10012768
push esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], 1
push eax
push str.SeDebugPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
push 0
push 0
push 0x10
lea eax, [ebp - 0x14]
mov dword [ebp - 8], 2
push eax
push 0
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push dword [ebp - 0x18]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret

Function at 0x10012c80
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4010
call fcn.10068050
mov eax, dword [0x1015e404]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x4004]
push edi
mov edi, dword [ebp + 0xc]
push 0x4000
push 0
push eax
call fcn.100dd9d0
add esp, 0xc
mov dword [ebp - 0x4008], 0
test esi, esi
je 0x10012d77
test edi, edi
je 0x10012d77
lea eax, [ebp - 0x4008]
push eax
push esi
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x10012d77
cmp eax, 0x3fff
ja 0x10012d77
lea ecx, [ebp - 0x4004]
push ecx
push eax
push 0
push esi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x10012d77
lea eax, [ebp - 0x4010]
push eax
lea eax, [ebp - 0x400c]
push eax
push 0x1011affc
lea eax, [ebp - 0x4004]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x10012d77
mov esi, dword [ebp + 0x10]
lea eax, [esi + esi]
push eax
push 0
push edi
call fcn.100dd9d0
mov ecx, dword [ebp - 0x400c]
movzx eax, word [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xe]
push eax
movzx eax, word [ecx + 8]
push eax
movzx eax, word [ecx + 0xa]
push eax
push str._d._d._d._d
push esi
lea eax, [esi - 1]
push eax
push edi
call fcn.100163b0
add esp, 0x2c
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067a9c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.10067a9c
mov esp, ebp
pop ebp
ret