joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5cb075
Capabilities:
Encode data using xor

Disassembly:
pop eax
mov byte [0x97af3fd0], al
stosd dword es:[edi], eax
pop edi
sub eax, ebx
wait
mov ebp, 0x9d1039e9
mul dword [eax + ebp*8]
lodsd eax, dword [esi]
push ds
xor dword [ebx - 0x47d69163], 0xeba90271
cmp al, 0x62
in al, dx
invalid
out dx, al
mov ebx, dword gs:[ebx]
xor dword [edx], 0x74e1cf94
invalid
jns 0x5cb098
cld
inc ebp
scasb al, byte es:[edi]
sub dword [edi + 0x1f], ebp
popfd
jge 0x5cb010
mov byte [0x344b88f6], al
dec ecx
adc ecx, esi
jae 0x5cb041
pop es
lodsb al, byte [esi]
inc ebp
psrad mm2, qword [edi]
mov edx, 0x5fc35c7
mov dh, 0x91
jge 0x5cb0ab
adc cl, byte [esi + 0x6b]
mov eax, dword [0xdc20068]
mov ebx, 0x7e764059
dec esi
imul esp, dword [ecx + 0xdc20068], 0xffffffbb
push 0xbb0dc200
pop ecx
inc eax
jbe 0x5cb123
sbb dword [ecx], 0xffffff9c
inc esi
loop 0x5cb09c
invalid
out dx, al
lahf
int3
bound edi, qword [eax + 0x133195a8]
iretd
dec edx
inc ecx
or eax, 0x8839dc7a
outsb dx, byte [esi]
out 0xd2, al
lodsb al, byte [esi]
jmp 0x5cb187
insd dword es:[edi], dx
jns 0x5cb15d
mov esp, 0xe5a0a9d4
salc
push edx
jecxz 0x5cb0e9
sub eax, 0xaa9b9f93
and byte [edx], al
invalid
fcomp qword [ecx - 0x66]
mov ch, 0x7a
xor ch, byte [esi]
arpl word [ecx], cx
pop esp
mov eax, dword [0x327ab59a]
arpl word cs:[ecx], cx
nop
pushfd
mov cl, 0xe2
mov eax, dword [0x62322cfd]
xor ah, byte [ecx - 0x13bc261e]
aaa
cmp al, 0x20
shr ebp, cl
movsd dword es:[edi], dword [esi]
jns 0x8e4c6b25
out dx, eax
lea edx, [esi + eax*8]
adc al, 0xc6
or al, 0x84
retf 0x4948
test dl, cl
dec eax
dec ecx
jnp 0x5cb1bf
lodsd eax, dword [esi]
lea ebp, [ebp + 0x2aef3619]
imul esi, ecx, 0x330e4a69
mov dl, 0xec
pop ds
xchg edi, eax
cmovo edi, edi
mov al, 0xa3
jb 0x5cb182
pop esp
mov bh, 0x11
cmp bh, byte [edi + ebp*4]
loopne 0x5cb140
ficom word [ebx - 0x73]
dec ecx
jnp 0x5cb15e
push 0x4a
push cs
invalid
push ds
jecxz 0x5cb21e
fld xword [edx]
stc
pushfd
cmp byte [eax], dl
or esp, eax
mov dword [0x8d48532a], eax
add byte [ebx + 2], dl
das
bound ebx, qword [ecx + 0x70]
push ecx
push ecx
dec byte [eax]
std
aas
push cs
sbb ch, byte [ebx + 0xa]
xchg ebp, eax
dec ebx
xor edi, dword [ecx + ebx*4 - 0xa0b291d]
cmc
aad 0xdc
invalid
mov ebp, 0x84ef74ee
imul ebp, dword [ebx + 0x659bc7c1], 0xffffffd8
mov ch, 0x8d
shl dword [edx], cl
invalid
pop ss
jge 0x5cb208
insb byte es:[edi], dx
adc byte [esi + 0x61dfb8f3], ah
mov byte [0x9e9323ed], al
pavgb mm5, qword [ebx - 0x8b5354a]
pop ebp
test al, 0x4c
add al, 0x6c
jecxz 0x5cb267
invalid
div dword [edx + ecx*4 + 0x7c89ceb3]
fucomi st(6)
scasb al, byte es:[edi]
aas
outsd dx, dword [esi]
push ebx
mov dl, 0x5d
int3
Function at 0x401a40
Capabilities:
Write file on windows

Disassembly:
mov edx, dword [esp + 8]
mov ecx, dword [ecx]
lea eax, [esp + 8]
push 0
push eax
mov eax, dword [esp + 0xc]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
ret 8

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

Disassembly:
pushal
nop
call 0x43000c
nop
nop
nop
nop
nop
pop eax
add eax, 0x403d6f
nop
sub eax, 0x403d15
nop
nop
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
jl 0x430030
nop
nop
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
nop
nop
popal
jmp loc.00401219
Function at 0x10007710
Capabilities:
Delete file
Get common file path
Write file on windows

Disassembly:
push ecx
push esi
push edi
mov dword [ebx + 0x1178], 0
call fcn.10009880
push 0x208
xor edi, edi
call fcn.10011a78
mov esi, eax
add esp, 4
test esi, esi
je 0x1000776d
call fcn.10009880
push esi
push edi
push 0x10026ed8
push 0x1002ce88
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x10007764
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
call fcn.100097d0
add esp, 4
mov edi, eax
push esi
call fcn.1001199b
add esp, 4
test edi, edi
mov dword [ebx + 0x1188], edi
je 0x10007793
mov edi, dword [edi]
cmp edi, 0xffffffff
je 0x10007793
push 0
lea eax, [esp + 0xc]
push eax
push 8
push str.xxxxmdat
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop edi
xor eax, eax
pop esi
pop ecx
ret

Function at 0x100077a0
Capabilities:
Delete file
Get common file path

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
push esi
push edi
neg ecx
or ecx, eax
push ecx
call fcn.1001092b
xor ebx, ebx
add esp, 4
cmp dword [ebp + 8], ebx
mov dword [ebp + 0x118c], eax
jbe 0x100078b1
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax], 1
jne 0x10007893
cmp dword [0x1002d094], 0
jne 0x10007833
push 0x1002ce88
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x10007826
jmp 0x10007810
movzx ecx, word [eax + 0x10026ed0]
mov word [eax + 0x1002ce88], cx
add eax, 2
test cx, cx
jne 0x10007810
push 0x10009750
call fcn.10011f87
add esp, 4
push 0x208
mov dword [0x1002d094], 1
xor edi, edi
call fcn.10011a78
mov esi, eax
add esp, 4
test esi, esi
je 0x10007888
call fcn.10009880
push esi
push edi
push 0x10026ed8
push 0x1002ce88
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x1000787f
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
call fcn.100097d0
add esp, 4
mov edi, eax
push esi
call fcn.1001199b
add esp, 4
mov edx, dword [ebp + 0x118c]
mov dword [edx + ebx*4], edi
jmp 0x100078a0
mov eax, dword [ebp + 0x118c]
mov dword [eax + ebx*4], 0
add dword [esp + 0x14], 0x1c
add ebx, 1
cmp ebx, dword [ebp + 8]
jb 0x100077d9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 4
Function at 0x10007c60
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x41c
mov eax, dword [0x1002a100]
xor eax, esp
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x420]
mov eax, dword [eax + 4]
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
xor ebx, ebx
push edi
mov edi, dword [eax + 0x14]
xor eax, eax
cmp esi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
je 0x10007cbc
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x10007cbc
push ebx
lea edx, [esp + 0x10]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push ecx
call ebp
neg eax
sbb eax, eax
and eax, dword [esp + 0xc]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x10007d0b
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call edx
xor eax, eax
cmp esi, ebx
mov dword [esp + 0xc], ebx
je 0x10007d03
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x10007d03
push ebx
lea eax, [esp + 0x10]
push eax
push 0x400
lea edx, [esp + 0x20]
push edx
push ecx
call ebp
neg eax
sbb eax, eax
and eax, dword [esp + 0xc]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x10007cc4
cmp esi, ebx
je 0x10007d43
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x10007d43
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esi + 0x34], 0x55
jne 0x10007d2a
mov eax, esi
call fcn.10009720
mov eax, dword [esi + 0x20]
cmp eax, ebx
je 0x10007d3a
push eax
call fcn.1001199b
add esp, 4
push esi
call fcn.1001199b
add esp, 4
mov ecx, dword [esp + 0x424]
pop edi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.100108be
add esp, 0x41c
ret 4
Function at 0x10007d60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
mov eax, dword [esi + 0x1178]
add eax, 8
mov ecx, eax
shr ecx, 0x18
mov byte [esp], cl
mov edx, eax
shr edx, 0x10
mov ecx, eax
mov byte [esp + 1], dl
mov edx, dword [esi + 4]
shr ecx, 8
mov byte [esp + 2], cl
mov byte [esp + 3], al
test dword [edx + 8], 0x100
push edi
je 0x10007e85
mov eax, dword [esi + 0x1188]
test eax, eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
je 0x10007e7b
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x10007e7b
push 0
lea ecx, [esp + 0x10]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov dword [esp + 8], eax
jne 0x10007df1
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10007e7b
mov ecx, dword [esi + 0x1188]
xor eax, eax
test ecx, ecx
je 0x10007e27
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x10007e27
push eax
lea edx, [esp + 0xc]
push edx
push 4
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x10007e25
mov eax, dword [esp + 8]
shr eax, 2
jmp 0x10007e27
xor eax, eax
neg eax
sbb eax, eax
and eax, 0x3e7
add eax, 0xfffffc19
mov edi, eax
mov eax, dword [esi + 0x1188]
test eax, eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
je 0x10007e7b
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x10007e7b
push 0
lea ecx, [esp + 0x10]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov dword [esp + 8], eax
jne 0x10007eba
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10007eba
mov eax, 0xfffffc19
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 8], 4
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
push 0
push 0
push 0x18
call edx
test eax, eax
jne 0x10007ebc
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea eax, [esp + 8]
push eax
lea eax, [esp + 8]
push eax
call edx
mov edi, eax
mov eax, edi
pop edi
mov esp, ebp
pop ebp
ret

Function at 0x10009720
Capabilities:
Delete file

Disassembly:
push esi
mov esi, dword [0x1002d090]
test esi, esi
je 0x1000973b
jmp 0x10009730
cmp dword [esi + 8], eax
je 0x1000973d
mov esi, dword [esi]
test esi, esi
jne 0x10009730
pop esi
ret
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, esi
pop esi
jmp fcn.100096c0

Function at 0x10009880
Capabilities:
Get common file path

Disassembly:
cmp dword [0x1002d094], 0
jne 0x100098c3
push 0x1002ce88
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x100098b6
lea ecx, [ecx]
movzx ecx, word [eax + 0x10026ed0]
mov word [eax + 0x1002ce88], cx
add eax, 2
test cx, cx
jne 0x100098a0
push 0x10009750
call fcn.10011f87
add esp, 4
mov dword [0x1002d094], 1
ret
Function at 0x1000b620
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x100230e1
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x1002a100]
xor eax, esp
mov dword [esp + 0x14], eax
push ebx
push esi
push edi
mov eax, dword [0x1002a100]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov edi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x14]
push ecx
lea esi, [edi + 0x8c]
push esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x50]
push eax
xor ebx, ebx
push ebx
mov ecx, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edx
call fcn.1000fff0
mov dword [esp + 0x30], ebx
mov dword [edi], vtable.CUMCMuxerFilter.1.0
mov dword [edi + 0xc], vtable.CUMCMuxerFilter.2.0
mov dword [edi + 0x10], vtable.CUMCMuxerFilter.0
mov dword [edi + 0x50], ebx
mov dword [edi + 0x54], vtable.UMC::MuxerParams.0
mov dword [edi + 0x58], ebx
mov dword [edi + 0x5c], ebx
mov dword [edi + 0x60], ebx
mov dword [edi + 0x64], ebx
mov dword [edi + 0x68], ebx
mov byte [edi + 0x6c], bl
mov byte [esp + 0x30], 1
push esi
mov dword [edi + 0x70], ebx
mov dword [edi + 0x74], ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [esp + 0x30], 2
mov dword [edi + 0x78], ebx
mov dword [edi + 0x7c], ebx
mov dword [edi + 0x80], ebx
mov dword [edi + 0x84], ebx
mov dword [edi + 0x88], ebx
call fcn.1000b880
mov ecx, edi
call fcn.1000c2c0
mov eax, edi
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.100108be
add esp, 0x24
ret 0x14
Function at 0x1000ce20
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
sub esp, 0x21c
mov eax, dword [0x1002a100]
xor eax, esp
mov dword [esp + 0x218], eax
push ebp
mov ebp, dword [esp + 0x224]
push edi
mov edi, dword [esp + 0x22c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x1000ce59
mov eax, 0x80004005
jmp 0x1000ceef
lea eax, [esp + 8]
push eax
push 0x2000000
push 0
push edi
push ebp
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000ceed
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x10]
push eax
push eax
push eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x30]
push eax
push 0
push ecx
mov dword [esp + 0x30], 0x104
call esi
test eax, eax
jne 0x1000ced9
nop
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.1000ce20
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x30]
push eax
push 0
push ecx
mov dword [esp + 0x30], 0x104
call esi
test eax, eax
je 0x1000cea0
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
push ebp
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
pop esi
xor eax, eax
mov ecx, dword [esp + 0x220]
pop edi
pop ebp
xor ecx, esp
call fcn.100108be
add esp, 0x21c
ret 8
Function at 0x1000d000
Capabilities:
Set registry value

Disassembly:
sub esp, 0x27c
mov eax, dword [0x1002a100]
xor eax, esp
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x280]
mov ecx, dword [esp + 0x284]
mov edx, dword [esp + 0x288]
push ebp
push esi
mov esi, dword [esp + 0x298]
push edi
mov edi, dword [esp + 0x2a8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2a0]
mov dword [esp + 0x28], eax
push 0x27
lea eax, [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2a8]
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.ole32.dll_StringFromGUID2]
lea edx, [esp + 0x2c]
push edx
push str.CLSID_ls
lea eax, [esp + 0x84]
push 0x104
push eax
call fcn.1000cfa0
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
add esp, 0x10
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x80]
push edx
push 0x80000000
call ebp
test eax, eax
je 0x1000d0c0
or eax, 0x80070000
jmp 0x1000d240
push ebx
push esi
push 0x100244b4
lea eax, [esp + 0x88]
push 0x104
push eax
call fcn.1000cfa0
mov edx, dword [esp + 0x20]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueW]
add esp, 0x10
push 0x208
lea ecx, [esp + 0x84]
push ecx
push 1
push 0
push edx
call ebx
mov esi, eax
test esi, esi
je 0x1000d117
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
or eax, 0x80070000
jmp 0x1000d23f
push edi
push 0x100244b4
lea ecx, [esp + 0x88]
push 0x104
push ecx
call fcn.1000cfa0
mov ecx, dword [esp + 0x20]
add esp, 0x10
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
push ecx
call ebp
mov esi, eax
test esi, esi
je 0x1000d163
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
or eax, 0x80070000
jmp 0x1000d23f
mov eax, dword [esp + 0x1c]
push eax
push 0x100244b4
lea ecx, [esp + 0x88]
push 0x104
push ecx
call fcn.1000cfa0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0x10
lea edx, [esp + 0x80]
push edx
call edi
mov edx, dword [esp + 0x14]
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x84]
push ecx
push 1
push 0
push edx
call ebx
mov esi, eax
test esi, esi
je 0x1000d1cd
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call edi
mov ecx, dword [esp + 0x14]
push ecx
call edi
mov eax, esi
or eax, 0x80070000
jmp 0x1000d23f
mov edx, dword [esp + 0x18]
push edx
push 0x100244b4
lea eax, [esp + 0x88]
push 0x104
push eax
call fcn.1000cfa0
add esp, 0x10
lea ecx, [esp + 0x80]
push ecx
call edi
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax + 2]
push edx
lea eax, [esp + 0x84]
push eax
push 1
push 0
push str.ThreadingModel
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
mov esi, eax
call edi
mov eax, dword [esp + 0x14]
push eax
call edi
test esi, esi
jle 0x1000d23d
and esi, 0xffff
or esi, 0x80070000
mov eax, esi
pop ebx
mov ecx, dword [esp + 0x284]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.100108be
add esp, 0x27c
ret 0x20
Function at 0x100108be
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1002a100]
jne 0x100108c8
repz ret
jmp fcn.100121a8

Function at 0x10016286
Capabilities:
Write file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
xor esi, esi
xor edi, edi
cmp ebx, dword [edi*8 + 0x1002a650]
je 0x100162a1
inc edi
cmp edi, 0x17
jb 0x10016292
cmp edi, 0x17
jae 0x10016421
push ebp
push 3
call fcn.1001af00
cmp eax, 1
pop ecx
je 0x100163ed
push 3
call fcn.1001af00
test eax, eax
pop ecx
jne 0x100162d5
cmp dword [0x1002c3a8], 1
je 0x100163ed
cmp ebx, 0xfc
je 0x10016420
push str.Runtime_Error__n_nProgram:
mov ebx, 0x314
push ebx
mov ebp, 0x1002c860
push ebp
call fcn.10018aa0
add esp, 0xc
test eax, eax
je 0x1001630b
push esi
push esi
push esi
push esi
push esi
call fcn.1001458b
add esp, 0x14
push 0x104
mov esi, 0x1002c879
push esi
push 0
mov byte [0x1002c97d], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x1001634f
push str._program_name_unknown_
push 0x2fb
push esi
call fcn.10018aa0
add esp, 0xc
test eax, eax
je 0x1001634f
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call fcn.1001458b
add esp, 0x14
push esi
call fcn.10018b10
inc eax
cmp eax, 0x3c
pop ecx
jbe 0x10016394
push esi
call fcn.10018b10
sub esi, 0x3b
add eax, esi
push 3
mov ecx, 0x1002cb74
push 0x10024c4c
sub ecx, eax
push ecx
push eax
call fcn.1001ae4d
add esp, 0x14
test eax, eax
je 0x10016394
xor esi, esi
push esi
push esi
push esi
push esi
push esi
call fcn.1001458b
add esp, 0x14
jmp 0x10016396
xor esi, esi
push 0x10024c48
push ebx
push ebp
call fcn.1001addc
add esp, 0xc
test eax, eax
je 0x100163b6
push esi
push esi
push esi
push esi
push esi
call fcn.1001458b
add esp, 0x14
push dword [edi*8 + 0x1002a654]
push ebx
push ebp
call fcn.1001addc
add esp, 0xc
test eax, eax
je 0x100163d8
push esi
push esi
push esi
push esi
push esi
call fcn.1001458b
add esp, 0x14
push 0x12010
push str.Microsoft_Visual_C_Runtime_Library
push ebp
call fcn.1001ac1f
add esp, 0xc
jmp 0x10016420
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebp, eax
cmp ebp, esi
je 0x10016420
cmp ebp, 0xffffffff
je 0x10016420
push 0
lea eax, [esp + 0x14]
push eax
lea esi, [edi*8 + 0x1002a654]
push dword [esi]
call fcn.10018b10
pop ecx
push eax
push dword [esi]
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret
Function at 0x1001ac1f
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.100127f5
xor ebx, ebx
cmp dword [0x1002cd84], ebx
mov dword [ebp - 8], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
jne 0x1001acf5
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
je 0x1001add5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
cmp eax, ebx
je 0x1001add5
push eax
call fcn.10012787
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x1002cd84], eax
call esi
push eax
call fcn.10012787
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x1002cd88], eax
call esi
push eax
call fcn.10012787
mov dword [0x1002cd8c], eax
lea eax, [ebp - 0xc]
push eax
call fcn.100124c8
test eax, eax
pop ecx
pop ecx
je 0x1001acc3
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.1001458b
add esp, 0x14
cmp dword [ebp - 0xc], 2
jne 0x1001acf5
push str.GetUserObjectInformationA
push edi
call esi
push eax
call fcn.10012787
cmp eax, ebx
pop ecx
mov dword [0x1002cd94], eax
je 0x1001acf5
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.10012787
pop ecx
mov dword [0x1002cd90], eax
mov eax, dword [0x1002cd90]
mov ecx, dword [ebp - 8]
cmp eax, ecx
je 0x1001ad7a
cmp dword [0x1002cd94], ecx
je 0x1001ad7a
push eax
call fcn.100127fe
push dword [0x1002cd94]
mov esi, eax
call fcn.100127fe
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
je 0x1001ad7a
cmp edi, ebx
je 0x1001ad7a
call esi
cmp eax, ebx
je 0x1001ad47
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x1001ad47
test byte [ebp - 0x18], 1
jne 0x1001ad7a
lea eax, [ebp - 0x10]
push eax
call fcn.100124ff
test eax, eax
pop ecx
je 0x1001ad62
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.1001458b
add esp, 0x14
cmp dword [ebp - 0x10], 4
jb 0x1001ad71
or dword [ebp + 0x10], 0x200000
jmp 0x1001adb5
or dword [ebp + 0x10], 0x40000
jmp 0x1001adb5
mov eax, dword [0x1002cd88]
cmp eax, dword [ebp - 8]
je 0x1001adb5
push eax
call fcn.100127fe
cmp eax, ebx
pop ecx
je 0x1001adb5
call eax
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x1001adb5
mov eax, dword [0x1002cd8c]
cmp eax, dword [ebp - 8]
je 0x1001adb5
push eax
call fcn.100127fe
cmp eax, ebx
pop ecx
je 0x1001adb5
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x1002cd84]
call fcn.100127fe
cmp eax, ebx
pop ecx
je 0x1001add5
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x1001add7
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40f5e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a8
push ebx
push esi
mov ebx, 0x4848e8
call fcn.0040f580
mov esi, eax
lea eax, [esp + 0xa8]
push esi
push eax
call fcn.00413990
push esi
call fcn.004112ef
add esp, 0xc
lea esi, [esp + 0x18]
call fcn.0040f6a0
lea eax, [esp + 0xa8]
mov ecx, esi
call fcn.0040f6d0
xor ebx, ebx
mov dword [edi + 8], ebx
xor ecx, ecx
mov eax, ebx
movzx edx, byte [esp + ecx + 0x18]
add eax, edx
movzx edx, byte [esp + ecx + 0x19]
add eax, edx
movzx edx, byte [esp + ecx + 0x1a]
add eax, edx
movzx edx, byte [esp + ecx + 0x1b]
add ecx, 4
add eax, edx
cmp ecx, 0x10
jl 0x40f631
mov dword [edi + 8], eax
mov eax, dword [ebp + 8]
push 0x4876c8
push eax
call fcn.00414e06
add esp, 8
mov dword [edi], eax
cmp eax, ebx
je 0x42b2ee
push edi
call fcn.0040f450
cmp eax, ebx
je 0x42b2f8
mov ecx, dword [edi]
push ecx
mov esi, eax
call fcn.00414e94
add esp, 4
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 1
jmp 0x40f690
mov edx, dword [edi]
push edx
push 0x10
lea eax, [esp + 0x10]
push 1
push eax
call fcn.004151b0
add esp, 0x10
push 0x72ce87b8
push 0x10
lea ecx, [esp + 0x10]
push ecx
call fcn.0044afdc
xor eax, eax
mov dword [edi + 8], ebx
xor ecx, ecx
movzx edx, byte [esp + eax + 8]
inc eax
imul ecx, edx
cmp eax, 0x10
jl 0x42b324
mov eax, dword [edi]
push eax
mov dword [edi + 8], ecx
call fcn.00415484
add esp, 4
mov dword [edi + 4], eax
xor eax, eax
jmp 0x40f690

Function at 0x40f6a0
Capabilities:
Hash data with md5

Disassembly:
push 8
lea eax, [esi + 0x44]
push 0
push eax
call fcn.004131f0
add esp, 0xc
mov dword [esi + 0x34], 0x67452301
mov dword [esi + 0x38], 0xefcdab89
mov dword [esi + 0x3c], 0x98badcfe
mov dword [esi + 0x40], 0x10325476
ret

Function at 0x4103e0
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword [0x4972c8]
push esi
push 0
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push eax
push 0
push 0
push 0x64
push 0x12c
push accept
push accept
push 0xcf0000
push str.AutoIt_v3
push str.AutoIt_v3
push 0
call esi
mov ecx, dword [0x4972c8]
push 0
push ecx
push 1
push eax
push 0
push 0
push 0
push 0
push 0x50b008c4
push 0
push str.edit
push 0
mov dword [0x4972c0], eax
call esi
mov edx, dword [0x4972c0]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push edx
mov dword [0x4972bc], eax
call esi
mov eax, dword [0x4972c0]
push 0
push eax
call esi
pop esi
ret

Function at 0x421fa7
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x490e80]
jne 0x421fb1
repz ret
jmp fcn.00426243