joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1006fa5d
Capabilities:
Check if file exists
Get graphical window text
Terminate process

Disassembly:
push 0xe64
mov eax, 0x1011433a
call fcn.1006051e
mov edi, ecx
test edi, edi
je 0x1006fbe0
push edi
test edx, edx
je 0x1006fa8b
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1006fbe0
jmp 0x1006fa95
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1006faa4
mov ecx, edi
call fcn.1009fa4d
test eax, eax
jne 0x1006fbe0
call fcn.100029f0
push eax
lea ecx, [ebp - 0xe6c]
call fcn.1000281b
xor esi, esi
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.1006f717
mov ebx, eax
test ebx, ebx
je 0x1006fb20
push 0x208
lea eax, [ebp - 0x218]
push esi
push eax
call fcn.1003e610
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x1006fafe
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xe6c]
call fcn.1000262a
mov esi, dword [ebp - 0xe6c]
cmp dword [esi - 0xc], 0
jne 0x1006fb3f
push 0x4f
lea ecx, [ebp - 0xe6c]
call fcn.10002410
mov esi, dword [ebp - 0xe6c]
call fcn.100029f0
push eax
lea ecx, [ebp - 0xe70]
call fcn.1000281b
push edi
lea eax, [ebp - 0xe70]
mov byte [ebp - 4], 1
push 0x10132f80
push eax
call fcn.10008c51
add esp, 0xc
lea eax, [ebp - 0xe68]
push 0xc42
push 0
push eax
call fcn.1003e610
push edi
lea ecx, [ebp - 0xe68]
mov dword [ebp - 0x220], 1
mov dword [ebp - 0x224], 5
call fcn.10003c13
mov edi, dword [ebp - 0xe70]
push 0x14
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x1006fbbc
mov ecx, str.http:__down.360.cn_setupbeta.exe
call fcn.1006f6fe
call fcn.1006701b
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea ecx, [edi - 0x10]
call fcn.10002a86
lea ecx, [esi - 0x10]
call fcn.10002a86
call fcn.100604c8
ret
Function at 0x1006fec1
Capabilities:
Get graphical window text

Disassembly:
push 0x214
mov eax, 0x101143ab
call fcn.1006051e
mov edi, ecx
test edi, edi
je 0x1006ffd1
call fcn.100029f0
push eax
lea ecx, [ebp - 0x21c]
call fcn.1000281b
xor esi, esi
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.1006f717
mov ebx, eax
test ebx, ebx
je 0x1006ff56
push 0x208
lea eax, [ebp - 0x218]
push esi
push eax
call fcn.1003e610
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x1006ff34
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x21c]
call fcn.1000262a
mov esi, dword [ebp - 0x21c]
cmp dword [esi - 0xc], 0
jne 0x1006ff75
push 0x4f
lea ecx, [ebp - 0x21c]
call fcn.10002410
mov esi, dword [ebp - 0x21c]
call fcn.100029f0
push eax
lea ecx, [ebp - 0x220]
call fcn.1000281b
push edi
push esi
push esi
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 1
push 0x368
push eax
call fcn.1000602e
mov edi, dword [ebp - 0x220]
add esp, 0x14
push 0x14
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x1006ffc1
mov ecx, str.http:__down.360.cn_setupbeta.exe
call fcn.1006f6fe
lea ecx, [edi - 0x10]
call fcn.10002a86
lea ecx, [esi - 0x10]
call fcn.10002a86
call fcn.100604c8
ret

Function at 0x1007114a
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
lea eax, [ebp - 4]
xor esi, esi
push eax
push 0x2001f
push esi
push str.SOFTWARE360Safe360Scan
push reloc.OLEAUT32.dll_SysReAllocString
mov ebx, edx
mov dword [ebp - 4], esi
mov edi, ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x100711df
mov eax, dword [ebp - 4]
test eax, eax
je 0x100711df
lea ecx, [ebp - 0x10]
test edi, edi
je 0x100711ba
push ecx
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], esi
push ecx
lea ecx, [ebp - 8]
mov dword [ebp - 0xc], esi
push ecx
push esi
push str.accumu_trust
push eax
mov dword [ebp - 0x10], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100711d6
cmp dword [ebp - 8], 4
jne 0x100711d6
mov esi, dword [ebp - 0xc]
jmp 0x100711d6
push 4
push ecx
push 4
push esi
push str.accumu_trust
push eax
mov dword [ebp - 0x10], ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x100711d6
xor esi, esi
inc esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret

Function at 0x1007139d
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
xor ecx, ecx
xor edx, edx
inc ecx
call fcn.1007114a
xor ecx, ecx
lea edx, [eax + 1]
jmp fcn.1007114a

Function at 0x100713b1
Capabilities:
Create thread

Disassembly:
xor eax, eax
cmp dword [0x10193620], eax
jne 0x100713d5
push eax
push eax
push eax
push 0x1007106e
push eax
push eax
mov dword [0x10193624], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x10193620], eax
ret
Function at 0x10071ad9
Capabilities:
Create thread

Disassembly:
push esi
mov esi, ecx
xor eax, eax
cmp dword [esi + 0x68], eax
jne 0x10071af6
push eax
push eax
push esi
push 0x10071ac1
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x68], eax
pop esi
ret

Function at 0x10071b07
Capabilities:
Delete file
Read .ini file

Disassembly:
push 0x41c
mov eax, 0x10114712
call fcn.1006051e
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.1003e610
add esp, 0xc
mov dword [ebp - 0x424], ebx
call fcn.100029f0
push eax
lea ecx, [ebp - 0x428]
call fcn.1000281b
lea eax, [ebp - 0x428]
mov dword [ebp - 4], ebx
push ebx
push eax
lea edx, [ebp - 0x424]
lea ecx, [ebp - 0x420]
call fcn.1006cc76
mov edi, dword [ebp - 0x424]
pop ecx
pop ecx
mov ecx, str.http:__sdup.360.cn_v3_safeup_libex64.cab
test edi, edi
jne 0x10071b76
mov ecx, str.http:__sdup.360.cn_v3_safeup_libex.cab
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea edx, [ebp - 0x420]
call fcn.1006e0a7
mov esi, dword [ebp - 0x428]
add esp, 0x1c
test eax, eax
jle 0x10071c2d
mov edx, esi
lea ecx, [ebp - 0x420]
call fcn.10074687
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10071bb5
push 0xfffffffffffffffe
pop edi
jmp 0x10071c22
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.1003e610
add esp, 0xc
mov eax, str.safeup_libex64.ini
test edi, edi
jne 0x10071bd9
mov eax, str.safeup_libex.ini
push eax
push esi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x218]
call fcn.1006d41f
test eax, eax
je 0x10071c2d
lea eax, [ebp - 0x218]
push eax
push 0
push str.def_date
push str.360avira
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
test edi, edi
jg 0x10071c19
push 0xfffffffffffffffd
pop edi
lea eax, [ebp - 0x218]
push eax
call ebx
lea eax, [ebp - 0x420]
push eax
call ebx
jmp 0x10071c30
or edi, 0xffffffff
lea ecx, [esi - 0x10]
call fcn.10002a86
mov eax, edi
call fcn.100604c8
ret

Function at 0x1007222f
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
lea eax, [ebp - 4]
xor ebx, ebx
push eax
mov esi, edx
mov dword [ebp - 4], ebx
call fcn.10039b20
mov edi, eax
test edi, edi
je 0x1007227b
cmp dword [ebp - 4], ebx
je 0x1007227b
push 0x10136398
push esi
call fcn.1004e73e
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x1007227b
push esi
push dword [ebp - 4]
push 1
push edi
call fcn.1004e9d4
push esi
call fcn.1004eaa2
add esp, 0x14
mov bl, 1
pop edi
pop esi
mov al, bl
pop ebx
leave
ret
Function at 0x10072df5
Capabilities:
Create thread
Resume thread

Disassembly:
push 0x214
mov eax, 0x1011488c
call fcn.1006051e
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x14], ebx
jne 0x10072ea6
xor edi, edi
mov dword [esi + 0x2c], ebx
inc edi
mov dword [esi + 0x10], ebx
mov dword [esi + 8], edi
call fcn.10072282
push 0x208
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.1003e610
add esp, 0xc
mov dword [ebp - 0x220], ebx
call fcn.100029f0
push eax
lea ecx, [ebp - 0x21c]
call fcn.1000281b
lea eax, [ebp - 0x21c]
mov dword [ebp - 4], ebx
push edi
push eax
lea edx, [ebp - 0x220]
lea ecx, [ebp - 0x218]
call fcn.1006cc76
pop ecx
pop ecx
lea edi, [esi + 0x18]
push edi
push 4
push esi
push 0x10072b8f
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x14], eax
test eax, eax
jne 0x10072e91
mov dword [edi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x10], ebx
jmp 0x10072e98
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.10002a86
call fcn.100604c8
ret

Function at 0x100741f1
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x10188074]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
test esi, esi
je 0x100742c8
call fcn.10074302
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x214]
push ebx
push eax
call fcn.1003e610
add esp, 0xc
lea ecx, [ebp - 0x214]
call fcn.10066f31
test eax, eax
jne 0x1007424a
lea ecx, [ebp - 0x214]
call fcn.10066e47
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x10074253
sub ecx, edx
sar ecx, 1
je 0x1007428a
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1007428a
push 5
push ebx
push esi
lea ecx, [ebp - 0x214]
push ecx
push str.open
push ebx
call eax
xor ecx, ecx
cmp eax, 0x20
setg cl
mov eax, ecx
jmp 0x100742ca
cmp dword [ebp + 0xc], ebx
je 0x100742bc
cmp dword [ebp + 0x10], ebx
je 0x1007429d
call fcn.1006d47e
test eax, eax
jne 0x100742bc
push 5
push ebx
push esi
push str.iexplore.exe
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jbe 0x100742c8
xor eax, eax
inc eax
jmp 0x100742ca
mov eax, dword [edi + 0x28]
test eax, eax
je 0x100742c8
push esi
call eax
jmp 0x100742ca
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10038cf9
leave
ret 0xc
Function at 0x10074e5d
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1010
call fcn.10039990
mov eax, dword [0x10188074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, ecx
push 0x1000
push eax
mov dword [ebp - 0x1010], eax
lea eax, [ebp - 0x1004]
push eax
call fcn.1003e610
add esp, 0xc
mov dword [ebp - 0x1008], 0x800
lea eax, [ebp - 0x1008]
xor ebx, ebx
inc ebx
mov dword [ebp - 0x100c], ebx
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x100c]
push eax
push str.DeepscanCmdLine
push str.Software360Safe
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [ebp - 0x1004]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x1010]
jne 0x10074edc
sub ecx, edx
lea eax, [ebp - 0x1004]
sar ecx, 1
push ecx
push eax
lea ecx, [esi + 4]
call fcn.1000262a
push str.DeepscanCmdLine
push str.Software360Safe
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
xor eax, eax
lea ecx, [esi + 4]
push eax
push str._fromfck
call fcn.10004e56
test eax, eax
jle 0x10074f2e
mov dword [0x10193b4c], ebx
mov ecx, esi
call fcn.10074f44
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10038cf9
leave
ret

Function at 0x10074f50
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
mov dword [ecx], vtable.CCommandLine.0
mov ecx, dword [ecx + 4]
sub ecx, 0x10
jmp fcn.10002a86

Function at 0x1007522a
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push edi
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x24]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x10], 0
pop edi
je 0x10075256
cmp dword [ebp - 0x10], 2
ja 0x10075256
mov al, 1
leave
ret
xor al, al
leave
ret

Function at 0x100753fb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor edx, edx
mov ebx, ecx
test esi, esi
je 0x10075427
push edi
mov edi, dword [ebp + 8]
movzx eax, byte [edi]
mov ecx, edx
shr ecx, 0x18
xor ecx, eax
shl edx, 8
xor edx, dword [ebx + ecx*4 + 4]
inc edi
sub esi, 1
jne 0x1007540f
pop edi
pop esi
mov eax, edx
pop ebx
pop ebp
ret 0xc

Function at 0x10077c9c
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x10188074]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x208
lea eax, [ebp - 0x210]
mov esi, ecx
push 0
push eax
call fcn.1003e610
add esp, 0xc
lea eax, [ebp - 0x210]
push 0x104
push eax
push dword [0x10193b38]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push str.....deepscanqexqex.dll
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10077d22
call fcn.1000866d
test eax, eax
jne 0x10077d1b
lea ecx, [ebp - 0x210]
call fcn.1009fa4d
test eax, eax
je 0x10077d22
mov dword [esi + 0x38], 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10038cf9
leave
ret
Function at 0x1007823f
Capabilities:
Create thread

Disassembly:
push esi
mov esi, ecx
xor eax, eax
cmp dword [esi + 0x40], eax
jne 0x1007825c
push eax
push eax
push esi
push 0x1007838e
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x40], eax
pop esi
ret

Function at 0x1007825e
Capabilities:
Create thread
Resume thread

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x20], 0
jne 0x100782a1
call fcn.10077c9c
xor eax, eax
mov byte [esi + 0x20], 1
cmp dword [esi + 0x40], eax
jne 0x100782a1
push eax
push 4
push esi
push 0x1007838e
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x40], eax
test eax, eax
je 0x100782a1
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push dword [esi + 0x40]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop esi
ret

Function at 0x1007a6e5
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 8], esi
cmp dword [esi + 0xb8], ebx
je 0x1007a80e
cmp dword [esi + 0xbc], ebx
jne 0x1007a71f
call fcn.100857cb
mov ecx, eax
call fcn.100857c7
test eax, eax
je 0x1007a71f
push ebx
call fcn.100857d1
mov ecx, dword [esi + 0x8c4]
test ecx, ecx
je 0x1007a735
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x8c4], ebx
cmp dword [esi + 0xb4], ebx
je 0x1007a7a2
push 1
mov ecx, esi
call fcn.1007fd20
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
lea edi, [esi + 0xb0]
mov dword [ebp - 4], eax
cmp dword [edi], 0
je 0x1007a792
mov esi, eax
call ebx
mov edx, eax
mov ecx, esi
call fcn.100692ab
cmp eax, 0x7530
jae 0x1007a78f
cmp dword [ebp + 0xc], 0
jne 0x1007a783
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1007a78a
mov ecx, edi
call fcn.1007f81b
cmp dword [edi], 0
jne 0x1007a75e
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.1007ecd0
mov ecx, esi
call fcn.1007fcf4
xor ebx, ebx
lea ecx, [esi + 0xb88]
call fcn.1008eb88
cmp dword [esi + 0xb8], ebx
je 0x1007a7cc
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x1007a7cc
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0xa4], ebx
mov eax, dword [esi + 0xac]
test eax, eax
je 0x1007a7e3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0xac], ebx
push 0x800
lea eax, [esi + 0xc4]
mov dword [esi + 0xa8], ebx
push ebx
push eax
call fcn.1003e610
add esp, 0xc
mov dword [esi + 0xc0], 0x804
mov dword [esi + 0xb8], ebx
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x100802f7
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x164
mov eax, dword [0x10188074]
xor eax, esp
mov dword [esp + 0x160], eax
push ebx
push esi
push edi
xor esi, esi
push esi
push 0x80
push 3
push esi
push 1
push SysReAllocString
push ecx
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x100804e9
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x100804e9
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
xor eax, eax
push esi
mov word [esp + 0x3c], ax
lea eax, [esp + 0x14]
push eax
push 2
lea eax, [esp + 0x44]
push eax
push edi
call ebx
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], 2
jne 0x100804e9
mov eax, 0x5a4d
cmp word [esp + 0x38], ax
jne 0x100804e9
push 1
push esi
push 0xfffffffffffffffe
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100804e9
push esi
lea eax, [esp + 0x14]
push eax
push 0x40
lea eax, [esp + 0x44]
push eax
push edi
call ebx
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], 0x40
jne 0x100804e9
mov eax, dword [esp + 0x74]
lea ecx, [eax + 4]
cmp esi, dword [esp + 0x1c]
jg 0x100804e9
jl 0x100803e5
cmp ecx, dword [esp + 0x18]
ja 0x100804e9
push esi
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100804e9
push esi
lea eax, [esp + 0x14]
push eax
push 4
lea eax, [esp + 0x2c]
push eax
push edi
call ebx
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], 4
jne 0x100804e9
push esi
lea eax, [esp + 0x14]
push eax
push 0x14
lea eax, [esp + 0x30]
push eax
push edi
call ebx
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], 0x14
jne 0x100804e9
push esi
lea eax, [esp + 0x14]
push eax
push 2
lea eax, [esp + 0x20]
push eax
push edi
call ebx
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], 2
jne 0x100804e9
mov ecx, 0x10b
mov eax, 0x20b
cmp word [esp + 0x14], cx
jne 0x10080477
lea eax, [ecx - 0x2b]
jmp 0x10080483
cmp word [esp + 0x14], ax
jne 0x100804e9
mov eax, 0xf0
movzx ebx, word [esp + 0x34]
cmp ebx, eax
jbe 0x1008048e
mov ebx, eax
push 1
push esi
push 0xfffffffffffffffe
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100804e9
push esi
lea eax, [esp + 0x14]
push eax
push ebx
lea eax, [esp + 0x84]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x100804e9
cmp dword [esp + 0x10], ebx
jne 0x100804e9
mov eax, 0x10b
cmp word [esp + 0x14], ax
je 0x100804d7
mov eax, 0x20b
cmp word [esp + 0x14], ax
jne 0x100804df
movzx esi, word [esp + 0xbc]
xor ebx, ebx
cmp esi, 1
sete bl
jmp 0x100804eb
mov ebx, esi
test edi, edi
je 0x100804f6
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x16c]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10038cf9
mov esp, ebp
pop ebp
ret

Function at 0x10080d05
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [ecx + 0xc]
sub ecx, 0x10
jmp fcn.10002a86
Function at 0x10081486
Capabilities:
Create thread

Disassembly:
push esi
xor eax, eax
mov esi, ecx
push eax
push eax
push esi
push 0x10081471
push eax
push eax
mov dword [esi + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x18], eax
pop esi
ret

Function at 0x10083b90
Capabilities:
Check if file exists

Disassembly:
push 0x20c
mov eax, 0x1011660c
call fcn.1006051e
xor esi, esi
lea eax, [ebp - 0x218]
push 0x208
push esi
push eax
mov dword [ebp - 4], esi
call fcn.1003e610
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x10193b38]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push str.....deepscanDSMain.exe
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10083c13
lea ecx, [ebp - 0x218]
call fcn.1009fa4d
test eax, eax
je 0x10083c13
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x218]
call fcn.1006a757
mov esi, eax
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.10002a86
test esi, esi
setne al
call fcn.100604c8
ret
Function at 0x10085471
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
xor eax, eax
push ebx
mov ebx, eax
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x10], eax
je 0x100854a5
test esi, esi
jne 0x100854a0
push 0x57
pop eax
jmp 0x1008560b
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 4]
push eax
push 0x20019
push ecx
call fcn.100076f7
test eax, eax
jne 0x1008560b
mov edx, dword [ebp + 8]
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 4]
call fcn.10007817
mov dword [ebp + 0x14], eax
test eax, eax
je 0x100854e3
mov ecx, dword [ebp - 4]
call fcn.100076db
jmp 0x10085608
test esi, esi
je 0x10085583
mov eax, dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x100854ff
mov eax, ecx
mov dword [ebp - 8], ecx
lea ebx, [eax + 2]
push 0x10190228
push ebx
mov dword [ebp + 0x14], ebx
call fcn.10038dc0
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x10085520
or eax, 0xffffffff
jmp 0x1008560b
push 0x10190228
push ebx
call fcn.10038dc0
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x1008553c
push edi
call fcn.10038d3b
pop ecx
jmp 0x10085518
push dword [ebp + 0x14]
push 0
push edi
call fcn.1003e610
push dword [ebp + 0x14]
push 0
push ebx
call fcn.1003e610
mov edx, dword [ebp + 8]
add esp, 0x18
push esi
push edi
push dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 4]
call fcn.10007817
mov dword [ebp + 0x14], eax
test eax, eax
je 0x10085577
mov ecx, dword [ebp - 4]
call fcn.100076db
jmp 0x100855f2
push dword [esi]
push edi
push ebx
call fcn.1003e090
add esp, 0xc
mov ecx, dword [ebp - 4]
call fcn.100076db
mov dword [ebp + 0x14], eax
test eax, eax
jne 0x100855f2
mov eax, dword [ebp + 0xc]
cmp dword [eax], 2
jne 0x100855df
test esi, esi
je 0x100855df
mov eax, dword [ebp - 8]
inc eax
shr eax, 1
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov edx, eax
mov eax, dword [ebp - 8]
lea ecx, [edx + edx]
cmp eax, ecx
jae 0x100855ca
cmp dword [ebp + 0x10], 0
mov dword [esi], ecx
je 0x100855f2
mov dword [ebp + 0x14], 0xea
jmp 0x100855f2
cmp dword [ebp - 0xc], 0
jne 0x100855d4
mov dword [esi], eax
jmp 0x100855df
cmp dword [ebp - 0x10], ecx
je 0x100855df
test edx, edx
je 0x100855df
mov dword [esi], ecx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100855f2
push dword [esi]
push ebx
push eax
call fcn.1003e090
add esp, 0xc
test edi, edi
je 0x100855fd
push edi
call fcn.10038d3b
pop ecx
test ebx, ebx
je 0x10085608
push ebx
call fcn.10038d3b
pop ecx
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x10