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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x1003b0ac]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push 0
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x20c]
push 0x1a
push eax
push 0
call fcn.1000a6c0
lea ecx, [ebp - 0x20c]
add esp, 0x10
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10009f90
sub ecx, edx
sar ecx, 1
je 0x1000a072
push edi
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x10009fb0
mov eax, dword [0x1002b454]
push esi
mov dword [edi], eax
mov esi, ebx
mov cx, word [ebx]
add ebx, 2
test cx, cx
jne 0x10009fc6
lea edi, [ebp - 0x20c]
sub ebx, esi
add edi, 0xfffffffe
nop dword [eax]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x10009fe0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
pop esi
mov cx, word [edi + 2]
lea edi, [edi + 2]
test cx, cx
jne 0x1000a004
mov dword [edi], eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
pop edi
test eax, eax
jne 0x1000a033
lea eax, [ebp - 0x20c]
push eax
call fcn.10009e80
add esp, 4
cmp word [ebp - 0x20c], 0
jne 0x1000a041
xor ecx, ecx
jmp 0x1000a05f
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000a050
sub ecx, edx
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0x210]
lea eax, [ebp - 0x20c]
push eax
call fcn.10002b40
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.100125ea
mov esp, ebp
pop ebp
ret

Function at 0x1000a210
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x1003b0ac]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x1003c078]
test al, al
jne 0x1000a2b3
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.10015420
add esp, 0xc
lea eax, [ebp - 0x20c]
push 1
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1000a2ae
lea eax, [ebp - 0x20c]
push eax
call fcn.10019cc5
lea eax, [ebp - 0x20c]
push str.config_systemprofile
push eax
call fcn.100156cd
add esp, 0xc
test eax, eax
jne 0x1000a299
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.100156cd
add esp, 8
test eax, eax
je 0x1000a2ae
mov al, 1
mov byte [0x1003c078], al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100125ea
mov esp, ebp
pop ebp
ret
mov al, byte [0x1003c078]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100125ea
mov esp, ebp
pop ebp
ret
Function at 0x1000a6c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
xor bl, bl
call fcn.1000a210
test al, al
je 0x1000a721
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
call fcn.1000a160
add esp, 4
test al, al
je 0x1000a721
push dword [ebp + 0xc]
push 1
push dword [ebp - 4]
push dword [ebp + 0x10]
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
movzx ebx, bl
mov eax, 1
cmove ebx, eax
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
je 0x1000a721
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
movzx ecx, bl
mov eax, 1
cmovne ecx, eax
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000aa40
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2068
call fcn.10012620
mov eax, dword [0x1003b0ac]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [ebp + 0x10], 0
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
je 0x1000ac4e
push 0x2000
lea eax, [ebp - 0x2004]
mov dword [ebp - 0x2010], 0
push 0
push eax
mov dword [ebp - 0x2008], 0
call fcn.10015420
push edi
push esi
lea eax, [ebp - 0x2004]
push str.__s___s
push eax
call fcn.10002d60
push str.EXPLORER.EXE
call fcn.1000af00
add esp, 0x20
push eax
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
je 0x1000ac0b
lea eax, [ebp - 0x2010]
push eax
push 0xf01ff
push edi
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x1000ac0b
lea eax, [ebp - 0x2008]
push eax
push 1
push 1
push 0
push 0xf01ff
push dword [ebp - 0x2010]
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x1000ac0b
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x1000ab58
push str.WTSGetActiveConsoleSessionId
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1000ab51
call eax
push 4
mov dword [ebp - 0x2014], eax
lea eax, [ebp - 0x2014]
push eax
push 0xc
push dword [ebp - 0x2008]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
je 0x1000ac0b
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x44
lea eax, [ebp - 0x2068]
push 0
push eax
call fcn.10015420
add esp, 0xc
mov dword [ebp - 0x2068], 0x44
mov eax, 5
mov dword [ebp - 0x2060], str.WinSta0Default
mov word [ebp - 0x2038], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x200c]
mov dword [ebp - 0x203c], 1
push 0
push dword [ebp - 0x2008]
movups xmmword [ebp - 0x2024], xmm0
push eax
mov dword [ebp - 0x200c], 0
call sub.USERENV.dll_CreateEnvironmentBlock
test eax, eax
je 0x1000ac0b
lea eax, [ebp - 0x2024]
push eax
lea eax, [ebp - 0x2068]
push eax
push 0
push dword [ebp - 0x200c]
lea eax, [ebp - 0x2004]
push 0x430
push 0
push 0
push 0
push eax
push 0
push dword [ebp - 0x2008]
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
je 0x1000ac0b
mov eax, dword [ebp - 0x200c]
test eax, eax
je 0x1000ac0b
push eax
call sub.USERENV.dll_DestroyEnvironmentBlock
mov eax, dword [ebp - 0x2008]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1000ac23
cmp eax, 0xffffffff
je 0x1000ac23
push eax
call esi
mov eax, dword [ebp - 0x2010]
test eax, eax
je 0x1000ac35
cmp eax, 0xffffffff
je 0x1000ac35
push eax
call esi
test edi, edi
jne 0x1000ac3c
push edi
call esi
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100125ea
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push edi
push esi
call fcn.1000a800
mov ecx, dword [ebp - 4]
add esp, 0x14
test eax, eax
setne al
xor ecx, ebp
pop edi
pop esi
call fcn.100125ea
mov esp, ebp
pop ebp
ret
Function at 0x1000af00
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10029fb0
mov eax, dword fs:[0]
push eax
sub esp, 0x260
mov eax, dword [0x1003b0ac]
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 eax, dword [ebp + 8]
test eax, eax
je 0x1000b06b
push eax
lea ecx, [ebp - 0x40]
call fcn.10002d90
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push eax
call fcn.1000cba0
push 0x22c
lea eax, [ebp - 0x26c]
push 0
push eax
call fcn.10015420
add esp, 0x10
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
je 0x1000b052
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0x22c
push eax
push edi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x1000b04b
nop dword [eax + eax]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp word [ebp - 0x248], ax
je 0x1000afd5
lea eax, [ebp - 0x248]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1000afc6
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x28]
call fcn.10002b40
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
call fcn.1000cba0
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x28]
mov esi, dword [ebp - 0x14]
cmp esi, 8
mov ebx, dword [ebp - 0x28]
push ecx
push dword [ebp - 0x18]
cmovae eax, ebx
push eax
call fcn.10002840
add esp, 0x14
test eax, eax
je 0x1000b087
mov byte [ebp - 4], 0
cmp esi, 8
jb 0x1000b036
lea eax, [esi + 1]
push eax
push ebx
lea ecx, [ebp - 0x28]
call fcn.10002c40
lea eax, [ebp - 0x26c]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x1000afa0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 8
jb 0x1000b069
inc ecx
push ecx
push dword [ebp - 0x40]
lea ecx, [ebp - 0x40]
call fcn.10002c40
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.100125ea
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x264]
lea ecx, [ebp - 0x28]
call fcn.10002560
jmp 0x1000b054
Function at 0x1000b1c0
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10029ff0
mov eax, dword fs:[0]
push eax
sub esp, 0x264
mov eax, dword [0x1003b0ac]
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 + 8]
lea eax, [ebp - 0x26c]
push 0x22c
xor ebx, ebx
push ebx
push eax
call fcn.10015420
xor eax, eax
mov dword [ebp - 0x2c], 7
add esp, 0xc
mov dword [ebp - 0x30], ebx
mov word [ebp - 0x40], ax
cmp word [esi], ax
jne 0x1000b221
xor ecx, ecx
jmp 0x1000b235
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b226
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.10002b40
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push eax
call fcn.1000cba0
add esp, 4
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x270], eax
cmp eax, 0xffffffff
jne 0x1000b26d
xor ebx, ebx
jmp 0x1000b361
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0x22c
push ecx
push eax
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x1000b355
nop dword [eax]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp word [ebp - 0x248], ax
je 0x1000b2c5
lea eax, [ebp - 0x248]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1000b2b6
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x28]
call fcn.10002b40
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
call fcn.1000cba0
mov edi, dword [ebp - 0x30]
lea ecx, [ebp - 0x40]
mov ebx, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
add esp, 4
mov esi, edi
cmp dword [ebp - 0x2c], 8
cmovae ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x14], 8
cmovae edx, dword [ebp - 0x28]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
jne 0x1000b394
xor eax, eax
test eax, eax
jne 0x1000b320
cmp ebx, edi
jb 0x1000b320
jbe 0x1000b3bb
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x1000b339
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.10002c40
lea eax, [ebp - 0x26c]
push eax
push dword [ebp - 0x270]
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x1000b290
xor ebx, ebx
push dword [ebp - 0x270]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x2c]
cmp ecx, 8
jb 0x1000b376
inc ecx
push ecx
push dword [ebp - 0x40]
lea ecx, [ebp - 0x40]
call fcn.10002c40
mov eax, ebx
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.100125ea
mov esp, ebp
pop ebp
ret
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1000b3aa
add edx, 2
add ecx, 2
sub esi, 1
jmp 0x1000b30a
movzx eax, word [edx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x1000b312
lea ecx, [ebp - 0x28]
mov ebx, 1
call fcn.10002560
jmp 0x1000b355
Function at 0x1000bed0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 4]
push eax
push 0xf013f
push 0
push dword [ebp + 0xc]
mov dword [ebp - 4], 0
push SysStringLen
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
call esi
test eax, eax
jne 0x1000c002
lea eax, [ebp - 8]
push eax
push 0xf013f
push 0
push str.SoftWare
push dword [ebp - 4]
call esi
test eax, eax
je 0x1000bf3d
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
lea eax, [ebp - 0xc]
push 0
push eax
push 0
push 0xf013f
push 0
push 0
push 0
push dword [ebp + 8]
push dword [ebp - 8]
call esi
test eax, eax
je 0x1000bf77
push dword [ebp - 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 4]
call esi
pop esi
mov esp, ebp
pop ebp
ret
push 0
lea eax, [ebp - 0x10]
push eax
push 0
push 0xf013f
push 0
push 0
push 0
push dword [ebp + 0x10]
push dword [ebp - 0xc]
call esi
test eax, eax
je 0x1000bfb0
push dword [ebp - 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 4]
call esi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x18]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000bfc0
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push 1
push 0
push dword [ebp + 0x14]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0xc]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 4]
call esi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x1000c010
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push eax
push 0xf013f
push 0
push str.SoftWare
push SysReAllocString
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000c0fe
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0xf013f
push 0
push 0
push 0
push dword [ebp + 8]
push dword [ebp - 0xc]
call esi
test eax, eax
je 0x1000c081
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov esp, ebp
pop ebp
ret
push 0
lea eax, [ebp - 4]
push eax
push 0
push 0xf013f
push 0
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp - 8]
call esi
test eax, eax
je 0x1000c0b5
push dword [ebp - 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 4]
call esi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000c0c0
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push 1
push 0
push dword [ebp + 0x10]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 0xc]
call esi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x1000fa60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1002a4f6
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x1003b0ac]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x418], 0
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 0x60
push 0
push esi
mov byte [ebp - 4], 1
call ebx
mov edi, eax
mov dword [ebp - 0x424], edi
test edi, edi
jne 0x1000fb0c
push 2
push eax
push esi
call ebx
mov edi, eax
mov dword [ebp - 0x424], eax
test edi, edi
jne 0x1000fb0c
call fcn.1000e450
mov esi, eax
jmp 0x1000fbfc
push dword [ebp - 0x41c]
push dword [ebp - 0x420]
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
jne 0x1000fb2f
call fcn.1000e450
jmp 0x1000fbef
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x420], ebx
test ebx, ebx
jne 0x1000fb4d
call fcn.1000e450
jmp 0x1000fbef
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
mov dword [ebp - 0x41c], esi
lea eax, [esi + 1]
cmp eax, esi
jae 0x1000fb6e
mov esi, 0x8007000e
jmp 0x1000fbf1
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.1000e280
jmp 0x1000fb98
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
jne 0x1000fbaf
mov esi, 0x8007000e
jmp 0x1000fbf1
push esi
push dword [ebp - 0x418]
push esi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
jne 0x1000fbcf
call fcn.1000e450
jmp 0x1000fbef
mov eax, dword [ebp - 0x418]
xor edx, edx
push dword [ebp + 0x14]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x42c]
push dword [ebp - 0x418]
call fcn.1000f900
mov esi, eax
test edi, edi
je 0x1000fbfc
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x1000fc20
lea ecx, [ebp - 0x418]
call fcn.1000ebe0
nop word [eax + 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 - 0x14]
xor ecx, ebp
call fcn.100125ea
mov esp, ebp
pop ebp
ret 0x10
Function at 0x10010450
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
test ebx, ebx
jne 0x10010469
lea eax, [ebx + 0xd]
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
push edi
xor esi, esi
mov edx, ebx
nop
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10010475
sub eax, edi
sar eax, 1
lea ecx, [eax + 1]
lea edx, [edx + ecx*2]
lea esi, [esi + ecx*2]
cmp ecx, 1
jne 0x10010470
mov eax, dword [ebp - 4]
push esi
push ebx
push 7
push 0
push dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x100104b0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push esi
mov esi, ecx
test edx, edx
jne 0x100104c5
lea eax, [edx + 0xd]
pop esi
pop ebp
ret 0xc
mov eax, edx
push edi
lea edi, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100104d0
sub eax, edi
sar eax, 1
lea eax, [eax*2 + 2]
push eax
push edx
push dword [ebp + 0x10]
push 0
push dword [ebp + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebp
ret 0xc

Function at 0x1002370d
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.100233cd
Function at 0x430002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x408ecc
nop
nop
mov ecx, 0x33463349
nop
nop
test eax, eax
nop
nop
je 0x43004e
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x430024
nop
nop
mov eax, section..rsrc
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x773e0356
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x430084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x403d6f
sub eax, 0x403d15
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
jl 0x430030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x43001e
nop
nop
nop
nop
popal
nop
nop
jmp fcn.00401219
Function at 0x409568
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x424
mov eax, 0x41e23f
call fcn.0041d6dc
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x20], esi
push 0x404
lea eax, [ebp - 0x424]
mov dword [ebp - 4], esi
push esi
push eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], esi
call fcn.0040c010
add esp, 0xc
mov dword [ebp - 0x424], esi
push 0x60
push esi
push ebx
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x430], edi
test edi, edi
jne 0x4095f1
push 2
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x430], eax
test edi, edi
jne 0x4095f1
call fcn.00401c76
mov esi, eax
jmp 0x4096f4
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
jne 0x409614
call fcn.00401c76
jmp 0x4096e7
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x428], eax
test eax, eax
je 0x40960a
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov dword [ebp - 0x42c], ebx
lea eax, [ebx + 1]
cmp eax, ebx
jae 0x409647
mov esi, 0x8007000e
jmp 0x4096e9
push 2
pop ecx
mul ecx
mov byte [ebp - 4], cl
cmp edx, esi
ja 0x409717
jb 0x409662
cmp eax, 0xffffffff
ja 0x409717
cmp eax, 0x400
jbe 0x409677
push eax
lea ecx, [ebp - 0x424]
call fcn.00407f38
jmp 0x409699
lea eax, [ebp - 0x420]
mov dword [ebp - 0x424], eax
jmp 0x409699
mov dword [ebp - 4], 1
cmp dword [ebp - 0x424], 0
je 0x40963d
push ebx
push dword [ebp - 0x424]
push ebx
push dword [ebp - 0x428]
push esi
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
je 0x40960a
mov eax, dword [ebp - 0x424]
xor edx, edx
push dword [ebp + 0x14]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x1c]
push dword [ebp - 0x424]
call fcn.00409413
mov esi, eax
test edi, edi
je 0x4096f4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x420]
cmp dword [ebp - 0x424], eax
je 0x40970d
lea ecx, [ebp - 0x424]
call fcn.00407f23
mov eax, esi
call fcn.0041d629
ret 0x10
push 0x80070216
call fcn.004021d4
int3

Function at 0x416575
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004161ee

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43200c
nop
nop
nop
pop eax
nop
nop
nop
add eax, 0x40729f
sub eax, 0x407245
nop
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
jl 0x432030
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43201e
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219