joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10009250
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x100242f5
mov eax, dword fs:[0]
push eax
push ebp
push esi
mov eax, dword [0x1002e210]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebp, dword [esp + 0x20]
push 0x100769bc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x14], 0
mov eax, dword [0x10076170]
test eax, eax
jne 0x1000929e
call fcn.10001650
mov dword [0x10076170], eax
cmp dword [eax + 0x11c], 0
je 0x100092c0
mov eax, dword [eax + 0x110]
test eax, eax
je 0x100092c0
mov ecx, dword [esp + 0x1c]
push esi
push edi
push ebx
push 0
push ebp
push ecx
call eax
jmp 0x100092d1
mov edx, dword [esp + 0x1c]
push esi
push edi
push ebx
push 0
push ebp
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x100769bc
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
add esp, 0xc
ret 8

Function at 0x100093c0
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
mov eax, dword [edi]
lea ecx, [esp]
push ecx
mov ecx, dword [esp + 0xc]
push esi
add eax, eax
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
push 0
mov dword [edi], 0
mov edx, dword [ecx]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000942e
mov eax, dword [esp + 0xc]
cmp eax, 1
je 0x100093ff
cmp eax, 2
jne 0x1000941a
mov eax, dword [esp]
test esi, esi
je 0x10009428
test eax, eax
je 0x10009423
test al, 1
jne 0x1000941a
mov ecx, eax
shr ecx, 1
cmp word [esi + ecx*2 - 2], 0
je 0x10009428
mov eax, 0xd
pop ecx
ret 8
xor edx, edx
mov word [esi], dx
shr eax, 1
mov dword [edi], eax
xor eax, eax
pop ecx
ret 8
Function at 0x10009440
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x1002460b
mov eax, dword fs:[0]
push eax
sub esp, 0x8c0
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x8bc], eax
push ebp
push esi
push edi
mov eax, dword [0x1002e210]
xor eax, esp
push eax
lea eax, [esp + 0x8d0]
mov dword fs:[0], eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2be]
mov dword [esp + 0x1c], 0
push ecx
mov word [esp + 0x2c0], ax
call fcn.10016010
add esp, 0xc
push 0x104
lea edx, [esp + 0x2b8]
push edx
push 0x10000000
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebp, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [esp + 0x2b4]
push eax
call ebp
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x4c6]
push edx
mov word [esp + 0x4c8], cx
call fcn.10016010
add esp, 0xc
lea eax, [esp + 0x2b4]
lea edx, [esp + 0x4bc]
call fcn.10009960
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.360Safe.exe
lea eax, [esp + 0x4c0]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [esp + 0x4bc]
push ecx
call edi
test eax, eax
je 0x10009538
push ebx
lea ecx, [esp + 0x2b8]
call fcn.1000a1c0
jmp 0x1000967f
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xb6]
push eax
mov word [esp + 0xb8], dx
call fcn.10016010
add esp, 0xc
lea eax, [esp + 0x2b4]
lea edx, [esp + 0xac]
call fcn.10009960
push str...360Safe.exe
lea ecx, [esp + 0xb0]
push ecx
call esi
lea edx, [esp + 0xac]
push edx
call edi
test eax, eax
je 0x100095a4
lea eax, [esp + 0xac]
push eax
call ebp
push ebx
lea ecx, [esp + 0xb0]
call fcn.1000a1c0
jmp 0x1000967f
mov edx, dword [0x1002a19c]
mov ax, word [0x1002a1a0]
mov ecx, 0x20
mov esi, str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Paths360safe.exe
lea edi, [esp + 0x2c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [str.Path]
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov word [esp + 0x28], ax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], esi
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push esi
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x8e8], esi
push 0x80000002
mov dword [esp + 0x28], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x10009669
mov ebp, dword [esp + 0x14]
push 0x206
lea ecx, [esp + 0x6ca]
xor eax, eax
push esi
push ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
mov word [esp + 0x6d0], ax
call fcn.10016010
add esp, 0xc
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
lea edi, [esp + 0x1c]
lea esi, [esp + 0x6cc]
mov dword [esp + 0x1c], 0x104
call fcn.100093c0
test eax, eax
jne 0x10009667
push ebx
mov ecx, esi
call fcn.1000a1c0
test ebp, ebp
jmp 0x10009676
xor esi, esi
push ebx
mov ecx, 0x1002a0dc
call fcn.1000a1c0
cmp ebp, esi
je 0x1000967f
push ebp
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov ecx, dword [esp + 0x8d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x8bc]
xor ecx, esp
call fcn.10014422
add esp, 0x8cc
ret
Function at 0x100098d0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x10024315
mov eax, dword fs:[0]
push eax
push esi
mov eax, dword [0x1002e210]
xor eax, esp
push eax
lea eax, [esp + 8]
mov dword fs:[0], eax
mov esi, ecx
push 0x100769bc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x10], 0
mov eax, dword [0x10076170]
test eax, eax
jne 0x10009919
call fcn.10001650
mov dword [0x10076170], eax
cmp dword [eax + 0x11c], 0
je 0x1000992e
mov eax, dword [eax + 0x50]
test eax, eax
je 0x1000992e
push esi
call eax
jmp 0x10009935
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x100769bc
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xc
ret

Function at 0x10009c20
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x214
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x210], eax
mov eax, dword [0x1007766c]
test eax, eax
jne 0x10009ce4
push 0x206
push eax
lea ecx, [esp + 0x12]
push ecx
mov word [esp + 0x14], ax
call fcn.10016010
add esp, 0xc
push str.BApi.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x10009c79
push 0x104
lea edx, [esp + 0xc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp word [esp + 8], 0
jne 0x10009ccd
lea eax, [esp + 4]
push eax
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 8]
push edx
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Paths360safe.exe
push 0x80000002
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 0x207
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea eax, [esp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.deepscan_bapi.dll
lea ecx, [esp + 0xc]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call fcn.10001650
mov esi, eax
lea eax, [esp + 0xc]
call fcn.10009a20
mov dword [0x1007766c], eax
pop esi
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.10014422
add esp, 0x214
ret

Function at 0x10009d80
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, dword [esp + 8]
push edi
push ebx
push ebp
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x10009d97
pop edi
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x10009dc8
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
and edi, 0xf
jbe 0x10009dc4
cmp esi, eax
jae 0x10009dc8
sub edi, 1
movzx ecx, word [esi]
lea esi, [esi + ecx*2 + 2]
jne 0x10009db4
cmp esi, eax
jb 0x10009dce
pop esi
pop edi
xor eax, eax
pop ebp
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebp
ret
Function at 0x1000b470
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10024a4d
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x420], eax
push ebx
push esi
push edi
mov eax, dword [0x1002e210]
xor eax, esp
push eax
lea eax, [esp + 0x434]
mov dword fs:[0], eax
xor ebx, ebx
lea eax, [esp + 0x10]
mov dword [esp + 0x43c], ebx
mov edi, edx
push eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
call fcn.1000a1c0
mov dword [esp + 0x43c], 1
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.10007e20
add eax, 0x10
mov dword [edi], eax
mov edx, dword [esp + 0x10]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
mov dword [esp + 0x14], 1
jge 0x1000b512
mov ecx, esi
lea eax, [esp + 0x10]
call fcn.1000a070
mov edx, dword [esp + 0x10]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.10015592
add esp, 8
cmp esi, ebx
jl 0x1000b69e
mov eax, dword [esp + 0x10]
cmp esi, dword [eax - 8]
jg 0x1000b69e
mov dword [eax - 0xc], esi
mov eax, dword [esp + 0x10]
xor edx, edx
mov word [eax + esi*2], dx
push 0x206
lea edx, [esp + 0x22e]
xor ecx, ecx
push ebx
push edx
mov word [esp + 0x234], cx
call fcn.10016010
mov eax, dword [str.__X:]
mov ecx, dword [0x1002a31c]
mov edx, dword [0x1002a320]
push 0x1fa
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
mov ax, word [0x1002a324]
lea ecx, [esp + 0x3e]
push ebx
push ecx
mov dword [esp + 0x40], edx
mov word [esp + 0x44], ax
call fcn.10016010
add esp, 0x18
push 0x104
lea edx, [esp + 0x22c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [esp + 0x228]
push 0x104
push eax
call fcn.10015592
mov cx, word [esp + 0x230]
mov eax, dword [esp + 0x18]
add esp, 8
mov word [esp + 0x28], cx
cmp dword [eax - 0xc], ebx
jl 0x1000b64e
lea edx, [esp + 0x20]
push edx
push eax
call fcn.10015320
add esp, 8
cmp eax, ebx
je 0x1000b64e
sub eax, dword [esp + 0x10]
sar eax, 1
jne 0x1000b64e
push 0x1002a0dc
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.10006ce0
cmp byte [esp + 0x444], bl
je 0x1000b645
lea eax, [esp + 0x20]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x1000b615
sub eax, edx
sar eax, 1
lea edx, [esp + 0x20]
mov ebx, eax
push edx
mov eax, edi
call fcn.1000a0e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push edi
call fcn.10008320
xor ebx, ebx
jmp 0x1000b64e
lea eax, [esp + 0x10]
call fcn.100079b0
mov byte [esp + 0x43c], bl
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000b675
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x434]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x420]
xor ecx, esp
call fcn.10014422
add esp, 0x430
ret
push 0x80070057
call fcn.1000a0c0
int3
Function at 0x1000b880
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x230
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x22c], eax
push ebx
push ebp
push 0x22c
xor ebp, ebp
lea eax, [esp + 0xc]
push ebp
push eax
call fcn.10016010
add esp, 0xc
push ebp
push 2
mov dword [esp + 0x10], 0x22c
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ebx, eax
test ebx, ebx
je 0x1000b92d
lea ecx, [esp + 8]
push ecx
push ebx
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x1000b926
push esi
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
xor esi, esi
sar eax, 2
test eax, eax
jbe 0x1000b90f
cmp esi, eax
jb 0x1000b8e9
call fcn.1001516c
mov edx, dword [edi + 0xc]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.1001528d
add esp, 8
test eax, eax
je 0x1000b920
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
inc esi
sar eax, 2
cmp esi, eax
jb 0x1000b8e9
lea edx, [esp + 0xc]
push edx
push ebx
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x1000b8d1
jmp 0x1000b925
mov ebp, 1
pop esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x234]
mov eax, ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.10014422
add esp, 0x230
ret

Function at 0x1000ca20
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x100242f5
mov eax, dword fs:[0]
push eax
push ebp
push esi
mov eax, dword [0x1002e210]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebp, dword [esp + 0x28]
push 0x100769bc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x14], 0
mov eax, dword [0x10076170]
test eax, eax
jne 0x1000ca6e
call fcn.10001650
mov dword [0x10076170], eax
cmp dword [eax + 0x11c], 0
je 0x1000ca9a
mov eax, dword [eax + 0x100]
test eax, eax
je 0x1000ca9a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push esi
push edi
push ebx
push 0
push ebp
push ecx
mov ecx, dword [esp + 0x34]
push edx
push ecx
call eax
jmp 0x1000cab5
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push edi
push ebx
push 0
push ebp
push edx
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
push 0x100769bc
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
add esp, 0xc
ret 0x10

Function at 0x1000d640
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x68
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x6c]
xor ecx, ecx
push esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
push eax
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], 0x67452301
mov dword [esp + 0x10], 0xefcdab89
mov dword [esp + 0x14], 0x98badcfe
mov dword [esp + 0x18], 0x10325476
call fcn.100114e0
add esp, 4
lea esi, [esp + 8]
mov ecx, edi
call fcn.10011580
mov ecx, dword [esp + 0x64]
pop esi
xor ecx, esp
call fcn.10014422
add esp, 0x68
ret
Function at 0x1000d7d0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov esi, eax
lea eax, [esp + 0x18]
push eax
push 0x20119
xor edi, edi
push edi
push 0x1002a4b4
push 0x80000002
mov ebx, ecx
mov dword [esp + 0x30], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000d961
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x10]
push ecx
mov dword [esi + 0x10], eax
push ebx
mov dword [esi + 0x14], eax
lea edx, [esp + 0x1c]
push edx
mov dword [esi + 0x18], eax
push eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x28]
push str.Operator
mov edi, 0x400
push eax
mov dword [esp + 0x28], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000d863
cmp dword [esp + 0x14], 1
jne 0x1000d948
mov eax, dword [esp + 0x10]
sub edi, eax
mov dword [esi], ebx
lea ebx, [eax + ebx]
je 0x1000d948
mov eax, dword [esp + 0x18]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [esp + 0x10]
push ecx
push ebx
lea edx, [esp + 0x1c]
push edx
push 0
push str.IssueDate
push eax
mov dword [esp + 0x28], edi
call ebp
test eax, eax
jne 0x1000d8a8
cmp dword [esp + 0x14], 1
jne 0x1000d948
mov eax, dword [esp + 0x10]
mov dword [esi + 4], ebx
sub edi, eax
add ebx, eax
test edi, edi
je 0x1000d948
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x10]
push ecx
push ebx
lea edx, [esp + 0x1c]
push edx
push 0
push str.ExpirationDate
push eax
mov dword [esp + 0x28], edi
call ebp
test eax, eax
jne 0x1000d8df
cmp dword [esp + 0x14], 1
jne 0x1000d948
mov eax, dword [esp + 0x10]
mov dword [esi + 8], ebx
sub edi, eax
add ebx, eax
test edi, edi
je 0x1000d948
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x10]
push ecx
push ebx
lea edx, [esp + 0x1c]
push edx
push 0
push str.SignData
push eax
mov dword [esp + 0x28], edi
call ebp
test eax, eax
jne 0x1000d948
cmp dword [esp + 0x14], 3
jne 0x1000d948
mov eax, dword [esp + 0x10]
sub edi, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ebx
je 0x1000d948
lea eax, [esi + 0xc]
call fcn.1000d6b0
test eax, eax
je 0x1000d948
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, 0x400
sub ecx, edi
push eax
mov dword [edx], ecx
mov esi, 1
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x1000dd80
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x6c
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x68], eax
push esi
lea eax, [esp + 8]
mov esi, edx
push eax
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], 0x67452301
mov dword [esp + 0x1c], 0xefcdab89
mov dword [esp + 0x20], 0x98badcfe
mov dword [esp + 0x24], 0x10325476
call fcn.10010000
add esp, 8
test eax, eax
jne 0x1000ddeb
pop esi
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.10014422
add esp, 0x6c
ret
mov eax, dword [esp + 0x74]
test eax, eax
jbe 0x1000de00
push esi
lea ecx, [esp + 0x14]
call fcn.100114e0
add esp, 4
lea esi, [esp + 0x10]
mov ecx, ebx
call fcn.10011580
test edi, edi
je 0x1000de1e
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, dword [esp + 8]
sete al
mov dword [edi], eax
mov ecx, dword [esp + 0x6c]
pop esi
xor ecx, esp
mov eax, 1
call fcn.10014422
add esp, 0x6c
ret

Function at 0x1000de60
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x64
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x5c], eax
xor eax, eax
push esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edi
lea eax, [esp + 8]
mov edi, ecx
push eax
mov dword [esp + 0xc], 0x67452301
mov dword [esp + 0x10], 0xefcdab89
mov dword [esp + 0x14], 0x98badcfe
mov dword [esp + 0x18], 0x10325476
call fcn.10010200
add esp, 4
test eax, eax
jne 0x1000debe
pop edi
pop esi
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.10014422
add esp, 0x64
ret
lea esi, [esp + 8]
mov ecx, ebx
call fcn.10011580
mov ecx, dword [esp + 0x64]
pop edi
pop esi
xor ecx, esp
mov eax, 1
call fcn.10014422
add esp, 0x64
ret

Function at 0x1000dee0
Capabilities:
Hash data using sha256

Disassembly:
sub esp, 0x74
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
push edi
lea ecx, [esp + 8]
push ecx
push eax
mov dword [esp + 0x10], 0x6a09e667
mov dword [esp + 0x14], 0xbb67ae85
mov dword [esp + 0x18], 0x3c6ef372
mov dword [esp + 0x1c], 0xa54ff53a
mov dword [esp + 0x20], 0x510e527f
mov dword [esp + 0x24], 0x9b05688c
mov dword [esp + 0x28], 0x1f83d9ab
mov dword [esp + 0x2c], 0x5be0cd19
call fcn.100102f0
add esp, 8
test eax, eax
jne 0x1000df5f
pop edi
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.10014422
add esp, 0x74
ret
mov eax, esi
lea edi, [esp + 8]
call fcn.100110c0
mov ecx, dword [esp + 0x74]
pop edi
xor ecx, esp
mov eax, 1
call fcn.10014422
add esp, 0x74
ret

Function at 0x1000e910
Capabilities:
Read file on windows

Disassembly:
push ecx
push 0
lea eax, [esp + 4]
push eax
push esi
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1000e942
push str.ReadFile__
push 0xfc
push str..QHImageHlp.c
xor edx, edx
call fcn.100123c0
add esp, 0xc
xor eax, eax
pop ecx
ret
cmp esi, dword [esp]
je 0x1000e967
push 0x1002a648
push 0xfe
push str..QHImageHlp.c
mov edx, 1
call fcn.100124f0
add esp, 0xc
xor eax, eax
pop ecx
ret
mov eax, 1
pop ecx
ret
Function at 0x1000f290
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x28
mov eax, dword [0x1002e210]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
push ebx
push ebp
xor ebx, ebx
push esi
mov esi, ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
cmp eax, ebx
jne 0x1000f2c3
mov dword [esp + 0x10], 0xffffffff
jmp 0x1000f2c9
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push ebx
push ebx
push ebp
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1000f3b8
push 0
lea edx, [esp + 0x1c]
push edx
push 8
lea eax, [esp + 0x30]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1000f31b
push str.ReadFile__
push 0xfc
push str..QHImageHlp.c
xor edx, edx
call fcn.100123c0
add esp, 0xc
jmp 0x1000f3ee
mov eax, 8
cmp dword [esp + 0x18], eax
je 0x1000f345
push 0x1002a648
push 0xfe
lea edx, [eax - 7]
push str..QHImageHlp.c
call fcn.100124f0
add esp, 0xc
jmp 0x1000f3ee
cmp dword [esp + 0x40], ebx
je 0x1000f38b
mov ebx, eax
cmp dword [esp + 0x10], eax
jae 0x1000f371
push 0x1002a6fc
push 0x321
mov edx, 5
push str..QHImageHlp.c
call fcn.100124f0
add esp, 0xc
jmp 0x1000f3ee
mov ecx, dword [esp + 0x24]
mov dx, word [esp + 0x28]
mov dword [esi], ecx
mov cx, word [esp + 0x2a]
mov word [esi + 4], dx
mov word [esi + 6], cx
jmp 0x1000f3e6
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x10]
jbe 0x1000f3a3
push 0x1002a6fc
mov ebx, esi
push 0x32d
jmp 0x1000f35d
mov edx, dword [esp + 0x38]
xor ebx, ebx
push ebx
push ebx
push ebp
push edx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x1000f3d3
push str.SetFilePointerEx__
push 0xf9
push str..QHImageHlp.c
xor edx, edx
call fcn.100123c0
add esp, 0xc
jmp 0x1000f3ee
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.1000e910
test eax, eax
je 0x1000f3ee
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1000f3f8
mov dword [eax], ebx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10014422
add esp, 0x28
ret
Function at 0x1000fe70
Capabilities:
Get file size

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov esi, eax
mov eax, dword [esi]
mov edi, dword [esi + 0x18]
lea ecx, [esp + 0x10]
push ecx
xor ebp, ebp
push eax
xor ebx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
xor edx, edx
test eax, eax
jne 0x1000febd
push str.GetFileSizeEx__
push 0x11e
push str..QHImageHlp.c
call fcn.100123c0
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ebx, dword [esp + 0x10]
mov ecx, dword [esi + 0xb4]
sub ebx, edi
mov edi, dword [esp + 0x14]
sbb edi, edx
sub ebx, 0x298
sbb edi, ebp
xor eax, eax
cmp edi, eax
jl 0x1000ff54
jg 0x1000fee3
cmp ebx, ecx
jb 0x1000ff54
mov ebp, dword [esi]
push 0
push 0
push edi
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x1000ff19
push str.SetFilePointerEx__
push 0xf9
push str..QHImageHlp.c
xor edx, edx
call fcn.100123c0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x1c]
mov esi, 0x298
mov edx, ebp
call fcn.1000e910
test eax, eax
je 0x1000ff0f
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1000ff3a
mov dword [eax], ebx
mov dword [eax + 4], edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1000ff61
mov ecx, 1
mov word [eax], cx
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x1000ff61
xor edx, edx
mov word [eax], dx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret