joyce8/EMBER2024-capa huggingface dataset:
Function at 0x577e7e
Capabilities:
Execute anti-debugging instructions

Disassembly:
pushal
lea esp, [esp + 0x2c]
je 0x5bfb90
inc dx
mov ah, ah
xchg dx, ax
movzx edx, word [edi]
pushal
bswap ax
push edi
inc ah
movzx eax, word [edi + 2]
jmp 0x5bfb6e
inc ebx
pushfd
push dword [esp]
test cl, 0x7e
add edx, eax
clc
mov byte [esp + 4], 0x6b
cmp ebx, edx
pushfd
push 0xf30e0e01
lea esp, [esp + 0x34]
jl 0x5b0f3d

Function at 0x5da3ca
Capabilities:
Execute anti-debugging instructions

Disassembly:
inc ebx
cmc
add edx, eax
bt bp, cx
cmp ebx, edx
pushal
mov dword [ebp - 4], ebx
push dword [esp]
jmp 0x636bb3
pushfd
mov word [esp + 4], 0x657e
lea esp, [esp + 0x3c]
jl 0x539f30
xchg si, ax
pop edi
push eax
not si
movsx dx, bl
mov esi, dword [esp + 4]
bswap ebx
mov ebx, dword [esp + 8]
rdtsc
rdtsc
xchg ch, dl
mov ecx, dword [ebp + 0x14]
bswap ax
mov edx, dword [ebp + 0x10]
mov byte [esp + 8], ch
pushal
cwde
call fcn.0061ffbc

Function at 0x61c6eb
Capabilities:
Execute anti-debugging instructions

Disassembly:
movzx edx, word [edi + 2]
cmp dh, al
add ecx, edx
bt bx, 5
clc
cmp bl, 0xa5
xor ebx, ebx
pushfd
pushfd
cmp ch, 0x6e
bt di, 5
test ecx, ecx
jmp 0x5b0f31
lea esp, [esp + 0x18]
jl 0x5d3a8d
bsf edx, esi
xor cx, cx
rcr cx, 8
movzx ecx, word [edi]
jmp 0x5e1e53
Function at 0x418060
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 8
push esi
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x4180d8
lea eax, [esp + 8]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
call fcn.00418010
push str.WavePad_Internal
call dword [sym.imp.USER32.dll_RegisterClipboardFormatW]
test esi, esi
mov dword [esp + 4], eax
je 0x4180b6
mov ecx, dword [0x4c8abc]
push 0x4c87ac
push ecx
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
lea edx, [esp + 4]
push 1
push edx
call dword [sym.imp.USER32.dll_GetPriorityClipboardFormat]
mov ecx, eax
pop esi
inc ecx
neg ecx
sbb ecx, ecx
and ecx, eax
xor eax, eax
test ecx, ecx
setne al
add esp, 8
ret
xor ecx, ecx
xor eax, eax
test ecx, ecx
setne al
pop esi
add esp, 8
ret

Function at 0x4393ee
Capabilities:
Encode data using xor

Disassembly:
or al, byte [ebp + 0x7b]
add ebp, dword [edi + 0x52]
daa
adc al, 0x6b
fiadd dword [ebx + 0x106334c6]
and bl, al
mov ch, 0xe6
inc edx
dec ebx
xchg ecx, eax
imul esi, dword [ebx + 0x14], 0x7c
outsb dx, byte [esi]
jl 0x439470
salc
or ah, cl
and dword [edx + 0x2b], ecx
adc cl, byte [ebx]
fistp word [edx]
push edx
loope 0x43943c
loope 0x439427
dec edx
sub edx, dword [edx]
or ebx, edi
sbb dl, byte [edx - 0x1f]
sub eax, 0x7fae0643
inc esp
inc ebx
push es
scasb al, byte es:[edi]
jg 0x439458
dec edi
mov ah, 0x2f
xlatb
inc edx
sal dword [edx + 0x225c9af8], 1
aas
imul ecx
adc al, 0xbb
jno 0x439404
fdivr qword [ebx - 0x3c]
jnp 0x4393ed
push 0xffffffffffffff82
push esi
sbb al, 0xcd
or dword [edi - 0x1e], esi
out 0xeb, al
int3
in al, dx
mov eax, 0xba95ce22
or ah, byte [edi - 0x33]
arpl di, cx
sbb dword [edx], eax
sub ah, byte [esi - 0x40]
dec edi
out dx, eax
test eax, 0x26cbca05
jae 0x4393e7
jmp 0x439400
and byte [0x6743432c], ch
aaa
aaa
or bl, byte [ebx]
mov dl, 0xcb
push edx
scasb al, byte es:[edi]
xor edi, dword [ebx + 0x4d225450]
je 0x43945d
xchg bh, ch
shr esp, 0xe6
cmpsb byte [esi], byte es:[edi]
invalid

Function at 0x4502bb
Capabilities:
Encode data using xor

Disassembly:
arpl bp, dx
pop eax
and dl, bh
pop esp
js 0x4502c1
aam 0x2d
dec byte [esi]
sar dword [esi], cl
invalid
Function at 0x47e2ae
Capabilities:
Encode data using xor

Disassembly:
sbb eax, 0xef460756
in eax, dx
in eax, 0xaf
test byte [edi], ch
inc ecx
invalid

Function at 0x47e30e
Capabilities:
Encode data using xor

Disassembly:
jl 0x47e373
cmp al, 0x4f
pop ebx
cmp byte [ecx - 0x26], 0x99
xlatb
retf
popal
xchg edx, eax
fst dword [eax + 0x52a39773]
invalid

Function at 0x47e863
Capabilities:
Encode data using xor

Disassembly:
dec edi
test byte [ebp - 0x59312248], cl
pop edi
xchg edx, eax
cwde
lea ecx, [edi + 0x6c67cc8f]
call 0x3fc9db84
dec esp
mov bh, 0xa6
sar bh, 1
jns 0x47e8ec
pop esi
dec ebp
sub byte [edi], al
lea edi, [ebp + 0x74]
inc edi
cmc
jno 0x47e81b
jecxz 0x47e81f
jl 0x47e8c0
or ah, byte [edi + 0x275f627f]
out dx, eax
sar byte [edi + 0x3f], 1
iretd
retf

Function at 0x4abc6e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46f490
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48cc80]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov eax, dword [0x48f4f0]
push eax
lea ecx, [esp + 0x34]
call 0x4cf3be
lea esi, [esp + 0x34]
mov dword [esp + 0x6c], 0
call int.004adf5e
push 0x47ba28
push eax
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x78], 1
call fcn.004a484e
add esp, 0xc
mov byte [esp + 0x6c], 3
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4abcf2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
call 0x4e04d4
mov ebx, dword [esp + 0x74]
lea eax, [ebx + 0x2d8]
push 0x47ba48
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x78], 4
call fcn.004a484e
add esp, 0xc
lea edx, [esp + 0x50]
mov byte [esp + 0x6c], 5
mov eax, dword [eax]
push edx
push eax
lea ecx, [esp + 0x38]
call 0x4cf2ee
mov byte [esp + 0x6c], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4abd58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor esi, esi
cmp dword [esp + 0x58], esi
jle 0x4ac24b

Function at 0x4ac184
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov byte [esp + 0x6c], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c], 0xa
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c], 9
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
push eax
xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
Function at 0x4ac1df
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov byte [esp + 0x6c], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c], 0xa
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c], 9
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
push eax
xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac1f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
Function at 0x4b485e
Capabilities:
Encode data using xor

Disassembly:
xor al, byte [edx]
xor al, 0xc9
invalid
mov al, byte [0x89b212c2]
xchg esi, eax
fidivr dword [ebp - 0x737b7702]
call 0x8445925
popal
push ds
loop 0x4b479d
xor al, byte [ebp + 0xb2c38ad]
sbb byte [esi - 0x44d537c0], 0x23
dec ecx
xchg esi, eax
xor byte [edi - 0x206c4be3], bl
in eax, dx
out dx, al
or dword [edi - 2], edi
pop edx
xchg esp, eax
int3
or dword [ebp - 0x5531a77e], ebp
stosb byte es:[edi], al
and al, 0x3a
test al, 0x1f
dec ebx
aam 0x68
mov dword [0xdded2293], eax
ja 0x4b48b5
push 0xed2293a3
fnsave dword [edi + 0x5b]
inc esi
insb byte es:[edi], dx
cwde
mov byte [0x36be497b], al
jnp 0x4b48a9
invalid
lodsd eax, dword ss:[esi]
jnp 0x4b48a9
mov esi, 0x88fbad36
fsubrp st(1)
jecxz 0x4b47ee
lodsd eax, dword ss:[esi]
sti
mov dh, bl
loope 0x4b484b
test dword [edi], esi
aaa
jno 0x4b488e
test byte [ecx - 0x56e4c4ca], ch
stosd dword es:[edi], eax
movsd dword es:[edi], dword [esi]
js 0x4b4846
test dword [0xd0b10d50], edi
outsd dx, dword [esi]
inc esp
ja 0x4b48a2
mov ecx, 0xf1227b2e
push es
hlt
pop dword [ebx - 0x43]
cli
inc ecx
add eax, 0x2390c34c
add ebp, ebx
cmp eax, 0xd17dd5dd
lea ebp, [0x455e4438]
dec esp
ret
cmp byte [esi + ebx*2 + 0x45], al
test dword [ebx], ecx
jg 0x4b48ca
and byte [eax + 0x4163bf03], cl
xchg edx, eax
mov byte [ebx], al
mov edi, 0x8a924163
xchg edi, eax
pop edx
inc ebp
arpl word [ecx - 0x6e], ax
mov dl, byte [edi + 0x4526675a]
inc ebp
insd dword es:[edi], dx
pushfd
mov ecx, dword [edx]
call 0xd309ed3c
mov word [0x94523b05], es
jge 0x4b4861
mov esi, 0x5058cd2
cmp edx, dword [edx - 0x6c]
aaa
shr esp, cl
jne 0x4b4852
cwde
and al, 9
dec ecx
sbb cl, dl
js 0x4b4894
not dl
nop
mov byte [0x8dbe228a], al
xchg dword [esi], ecx
sub bh, byte [ecx + ebp*2 - 0x35]
mov cl, 0xd0
in eax, dx
dec edi
lcall 0x39a0, 0xb637a20d
sub bl, byte [ecx]
add eax, 0xa340d38b
cmp byte [edi - 0x30d7e787], dl
cmpsb byte [esi], byte es:[edi]
cmpsb byte [esi], byte es:[edi]
in eax, 0xdd
nop
lahf
add eax, 0x6597a509
and ebx, dword [edx - 3]
jecxz 0x4b4935
lea eax, [edi + 0x697c2a0e]
retf
inc ecx
mov edi, dword [eax + 0x76cd8f2a]
jo 0x4b48bb
xor edx, ebx
xor dl, ch
adc al, 0xf9
stosd dword es:[edi], eax
add byte [esp + eax*8], al
cmpsb byte [esi], byte es:[edi]
js 0x4b48d9
dec edi
jg 0x4b48c6
loop 0x4b48ad
mov ch, 0xba
mov ecx, 0x3391d853
mov dh, 0x1e
mov ch, 0x3c
sub dword [esi + 0x29], 0xeda5d485
ret 0x7cb3
Function at 0x4bca21
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4c5370
cmp edx, dword [eax]
je 0x4bca43
add eax, 8
inc ecx
cmp eax, 0x4c5400
jl 0x4bca34
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4c5370]
jne 0x4bcb71
mov eax, dword [0x4c9cfc]
cmp eax, 1
je 0x4bcb4b
test eax, eax
jne 0x4bca74
cmp dword [0x4c529c], 1
je 0x4bcb4b
cmp edx, 0xfc
je 0x4bcb71
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4bcaab
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004bd400
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004bd890
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4bcaee
lea eax, [ebp - 0x1a4]
push eax
call fcn.004bd890
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4c1c0c
push edi
call fcn.004bf760
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004bd400
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004bd410
lea eax, [ebp - 0xa0]
push 0x4c1bec
push eax
call fcn.004bd410
push dword [esi + 0x4c5374]
lea eax, [ebp - 0xa0]
push eax
call fcn.004bd410
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004bf6d4
add esp, 0x2c
pop edi
jmp 0x4bcb71
lea eax, [ebp + 8]
lea esi, [esi + 0x4c5374]
push 0
push eax
push dword [esi]
call fcn.004bd890
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x401240
Capabilities:
Encode data using xor

Disassembly:
vmovdqa xmm0, xmmword [0x4e52c0]
vmovdqa xmm1, xmmword [0x4e5300]
vprotb xmm2, xmm0, xmm1
vprotd xmm0, xmm2, 7
vpperm xmm0, xmm1, xmm0, xmm2
vmovdqa xmm2, xmmword [0x4e5490]
vpcomeqb xmm1, xmm0, xmm2
vpmovmskb eax, xmm1
cmp eax, 0xfbff
sete al
ret

Function at 0x4016c0
Capabilities:
Encode data using xor

Disassembly:
vmovdqa32 zmm0, zmmword [0x4e52c0]
vmovdqa32 zmm1, zmmword [0x4e5300]
vpermb zmm2, zmm0, zmm1
vpermi2b zmm2, zmm0, zmm1
vmovdqa32 zmm3, zmmword [0x4e5400]
vpcmpeqd k1, zmm2, zmm3
kmovw eax, k1
vzeroupper
cmp eax, 0xfffb
sete al
ret

Function at 0x415d30
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
xor bl, bl
push esi
mov edi, 0xa
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x415d7a
mov eax, edi
dec edi
test eax, eax
je 0x415d7a
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x415d80
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x415d48
pop edi
pop esi
mov al, bl
pop ebx
ret
pop edi
pop esi
mov al, 1
pop ebx
ret

Function at 0x415d90
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, 0x80
cmp eax, 0xffffffff
je 0x415dbb
and eax, 0x3126
cmove eax, ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x415dd7
and eax, 0x3126
cmove eax, ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp + 8]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
neg eax
pop edi
sbb eax, eax
pop esi
neg eax
pop ebx
pop ebp
ret
Function at 0x41a230
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d57a6
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x520078]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebx], vtable.ProgressCallback.0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebp - 4], 0
lea esi, [ebx + 0x34]
mov dword [ebp - 0x18], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0041b2f0
mov dword [esi], eax
lea edi, [ebx + 4]
mov byte [ebp - 4], 1
push edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, dword [ebx + 0x1c]
xorps xmm0, xmm0
mov dword [ebx + 0x20], eax
mov ecx, esi
lea eax, [ebp - 0x14]
mov dword [ebx + 0x30], 0
push eax
lea eax, [ebp - 0x24]
mov byte [ebx + 0x2c], 0
push eax
movlpd qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x44], 0x64
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x4c], 1
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x14], 0
call fcn.0041b360
mov eax, dword [ebp - 0x24]
mov ecx, esi
movups xmm0, xmmword [ebp - 0x4c]
mov dword [ebp - 0x18], 1
movups xmmword [eax + 0x18], xmm0
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [eax + 0x28], xmm0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041b360
mov eax, dword [ebp - 0x2c]
movups xmm0, xmmword [ebp - 0x4c]
push edi
movups xmmword [eax + 0x18], xmm0
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [eax + 0x28], xmm0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [ebx + 0x28], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x41bd50
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d58b8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x520078]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push dword [ebp + 0xc]
mov edx, str.SoftwareMicrosoftWindowsCurrentVersionSharedDLLs
push dword [ebp + 8]
call fcn.00479850
add esp, 0xc
test al, al
jne 0x41bdf3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x41bde2
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.004315c0
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 8
jb 0x41bdb2
mov eax, dword [eax]
push eax
push dword [ebp + 8]
mov edx, str.GetValueImpl:_cannot_get_value__s_s__code__s
mov ecx, 0x526c38
push str.SoftwareMicrosoftWindowsCurrentVersionSharedDLLs
call fcn.00418320
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp eax, 8
jb 0x41bde2
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004155f0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4209c0
Capabilities:
Create directory
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x520078]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x412
lea eax, [ebp - 0x418]
mov esi, ecx
push 0
push eax
call fcn.004ad200
add esp, 0xc
lea eax, [ebp - 0x418]
push 0x209
push eax
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x420a3b
push 0x209
lea eax, [ebp - 0x418]
push eax
push 0x4f5388
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x420a3b
push 0x208
lea eax, [ebp - 0x418]
push str.C:TEMP
push eax
call fcn.004b8445
add esp, 0xc
push ebx
push 0
push 0x2000000
push 3
push 0
push 7
push 0x100000
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
setne bl
cmp eax, 0xffffffff
je 0x420a6d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
pop ebx
jne 0x420a8b
push 0x208
lea eax, [ebp - 0x418]
push str.C:TEMP
push eax
call fcn.004b8445
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
call fcn.004b8488
add esp, 4
cmp word [ebp - 0x418], 0
je 0x420ae3
lea ecx, [ebp - 0x418]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420ab0
sub ecx, edx
sar ecx, 1
cmp word [ebp + ecx*2 - 0x41a], 0x5c
je 0x420ae3
push 0x208
lea eax, [ebp - 0x418]
push 0x4f407c
push eax
call fcn.004b84b2
add esp, 0xc
push 0x208
lea eax, [ebp - 0x418]
push str._av_iup.tm
push eax
call fcn.004b84b2
push 0x208
lea eax, [ebp - 0x418]
push str.XXXXXX
push eax
call fcn.004b84b2
lea eax, [ebp - 0x418]
push eax
call fcn.004b85f9
add esp, 0x1c
cmp byte [ebp + 8], 0
je 0x420b81
push 0
lea eax, [ebp - 0x41c]
push eax
push 1
push str.S:_ML__NW___HI_
call dword [sym.imp.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW]
test eax, eax
je 0x420b81
mov eax, dword [ebp - 0x41c]
xorps xmm0, xmm0
movq qword [ebp - 0x424], xmm0
mov dword [ebp - 0x424], eax
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x418]
mov dword [ebp - 0x428], 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push dword [ebp - 0x41c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x420b90
lea eax, [ebp - 0x418]
push eax
call fcn.004b8488
add esp, 4
cmp word [ebp - 0x418], 0
jne 0x420b9e
xor ecx, ecx
jmp 0x420bb6
lea ecx, [ebp - 0x418]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420ba7
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x418]
mov ecx, esi
push eax
call fcn.00415460
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0049384c
mov esp, ebp
pop ebp
ret
Function at 0x421080
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x520078]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov edx, str.Reboot:_Restarting_windows...
mov ecx, 0x526c64
call fcn.0041fef0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
push 0
push 0x28
xor bl, bl
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
test eax, eax
jne 0x4210dd
lea eax, [ebp - 0x20]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x42117f
lea eax, [ebp - 0xc]
push eax
push str.SeShutdownPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x42113b
mov eax, dword [ebp - 0xc]
push 0
push 0
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
push 0x10
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
push eax
push 0
push dword [ebp - 0x20]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x10], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x42113b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x514
movzx ebx, bl
mov ecx, 1
cmovne ebx, ecx
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
je 0x42117f
push 0x80040002
push 1
push 0
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_InitiateSystemShutdownExW]
test eax, eax
jne 0x421184
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0041fc80
add esp, 4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049384c
mov esp, ebp
pop ebp
ret
call fcn.00422930
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0049384c
mov esp, ebp
pop ebp
ret
Function at 0x421220
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x638
mov eax, dword [0x520078]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x624], 7
mov dword [ebp - 0x628], 0
mov word [ebp - 0x638], ax
cmp word [0x5277f0], ax
jne 0x42125d
xor ecx, ecx
jmp 0x421274
mov ecx, 0x5277f0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421265
sub ecx, edx
sar ecx, 1
push ecx
push 0x5277f0
lea ecx, [ebp - 0x638]
call fcn.00415460
cmp dword [ebp - 0x624], 8
lea ecx, [ebp - 0x620]
push 0x104
push ecx
push 0x104
lea ecx, [ebp - 0x418]
push ecx
push 0
push 0
push 0
lea eax, [ebp - 0x638]
cmovae eax, dword [ebp - 0x638]
push 0
push eax
call fcn.004b8875
add esp, 0x24
test eax, eax
jne 0x42135f
push eax
push 0x19
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x42135f
push 0x4f407c
lea eax, [ebp - 0x210]
push 0x104
push eax
call fcn.004b9da9
add esp, 0xc
test eax, eax
jne 0x42135f
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x210]
push 0x104
push eax
call fcn.004b9da9
add esp, 0xc
test eax, eax
jne 0x42135f
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x210]
push 0x104
push eax
call fcn.004b9da9
add esp, 0xc
test eax, eax
jne 0x42135f
cmp dword [ebp - 0x624], 8
lea eax, [ebp - 0x638]
push 0
cmovae eax, dword [ebp - 0x638]
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov eax, dword [ebp - 0x624]
cmp eax, 8
jb 0x42137d
inc eax
lea ecx, [ebp - 0x638]
push eax
push dword [ebp - 0x638]
call fcn.004155f0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049384c
mov esp, ebp
pop ebp
ret