joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000d710
Capabilities:
Extract resource via kernel32 functions
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x10029008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ecx + 0x14], 8
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x14], eax
mov ebx, edx
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov byte [ebp - 0xd], 1
jb 0x1000d740
mov ecx, dword [ecx]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
je 0x1000d81a
cmp dword [edi + 0x14], 8
jb 0x1000d759
mov edi, dword [edi]
mov eax, dword [ebp - 0x14]
push edi
movzx eax, ax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x1000d81a
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1000d81a
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
test edi, edi
je 0x1000d81a
cmp dword [ebx + 0x14], 8
jb 0x1000d79f
mov ebx, dword [ebx]
push 0
push 0x80000080
push 2
push 0
push 0
push 0xc0000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000d81a
push 0
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push edi
push dword [ebp - 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, 1
jne 0x1000d7e1
cmp edi, dword [ebp - 8]
je 0x1000d7e5
mov byte [ebp - 0xd], 0
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
movzx ebx, byte [ebp - 0xd]
xor ecx, ecx
cmp eax, edi
push esi
cmovne ebx, ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001c04c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001c04c
mov esp, ebp
pop ebp
ret
Function at 0x1000dbc0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001e8f8
mov eax, dword fs:[0]
push eax
sub esp, 0x24c
mov eax, dword [0x10029008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x23c], esi
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x220], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov dword [ebp - 4], eax
push 0x20c
push eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x220], 1
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
dec eax
cmp eax, 0x103
ja 0x1000dc8e
xor eax, eax
lea ecx, [ebp - 0x21c]
mov word [ebp - 0x12], ax
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000dc70
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10005680
cmp dword [esi + 0x10], 0
je 0x1000de1e
push 4
xor eax, eax
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
lea ecx, [ebp - 0x238]
push str.Temp
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
call fcn.10005680
mov dword [ebp - 4], 1
lea eax, [ebp - 0x238]
push eax
mov edx, esi
lea ecx, [ebp - 0x258]
call fcn.10014380
add esp, 4
mov edi, eax
mov byte [ebp - 4], 2
cmp esi, edi
je 0x1000dd2d
mov ecx, esi
call fcn.10005620
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [esi], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x244]
cmp edx, 8
jb 0x1000dd73
mov ecx, dword [ebp - 0x258]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000dd69
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000dd69
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 7
mov word [ebp - 0x258], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x224]
cmp edx, 8
jb 0x1000ddd5
mov ecx, dword [ebp - 0x238]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000ddcb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000ddcb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x228], 0
mov ecx, esi
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
call fcn.10013330
test al, al
jne 0x1000de1e
mov ecx, esi
call fcn.10013860
test al, al
jne 0x1000de1e
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [esi + 0x10], 0
jb 0x1000de19
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001c04c
mov esp, ebp
pop ebp
ret
Function at 0x1000e240
Capabilities:
Link many functions at runtime

Disassembly:
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, ecx
push str.Ktmw32.dll
call edi
mov dword [esi + 4], eax
test eax, eax
je 0x1000e35e
push str.Advapi32.dll
call edi
push str.Kernel32.dll
mov dword [esi + 8], eax
call edi
cmp dword [esi + 8], 0
mov dword [esi + 0xc], eax
je 0x1000e35e
test eax, eax
je 0x1000e35e
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateTransaction
push dword [esi + 4]
call edi
mov dword [esi + 0x10], eax
test eax, eax
je 0x1000e35e
push str.RollbackTransaction
push dword [esi + 4]
call edi
mov dword [esi + 0x14], eax
test eax, eax
je 0x1000e35e
push str.CommitTransaction
push dword [esi + 4]
call edi
mov dword [esi + 0x18], eax
test eax, eax
je 0x1000e35e
push str.RegCreateKeyTransactedW
push dword [esi + 8]
call edi
push str.RegDeleteKeyTransactedW
mov dword [esi + 0x1c], eax
push dword [esi + 8]
call edi
push str.RegOpenKeyTransactedW
mov dword [esi + 0x20], eax
push dword [esi + 8]
call edi
push str.DeleteFileTransactedW
mov dword [esi + 0x24], eax
push dword [esi + 0xc]
call edi
push str.CopyFileTransactedW
mov dword [esi + 0x28], eax
push dword [esi + 0xc]
call edi
push str.CreateDirectoryTransactedW
mov dword [esi + 0x2c], eax
push dword [esi + 0xc]
call edi
push str.MoveFileTransactedW
mov dword [esi + 0x30], eax
push dword [esi + 0xc]
call edi
push str.CreateFileTransactedW
mov dword [esi + 0x34], eax
push dword [esi + 0xc]
call edi
push str.RemoveDirectoryTransactedW
mov dword [esi + 0x38], eax
push dword [esi + 0xc]
call edi
push str.SetFileAttributesTransactedW
mov dword [esi + 0x3c], eax
push dword [esi + 0xc]
call edi
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x10]
push 0
call eax
mov dword [esi], eax
pop edi
pop esi
ret 0x10
Function at 0x1000e870
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001e9d8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x10029008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi], 0
jne 0x1000e9a8
push 0xc
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x24]
push str.wintrust.dll
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 7
mov word [ebp - 0x24], ax
call fcn.10005680
mov dword [ebp - 4], 0
lea eax, [ebp - 0x24]
push eax
call fcn.10015080
mov ecx, eax
call fcn.10015140
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
cmp edx, 8
jb 0x1000e930
mov ecx, dword [ebp - 0x24]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000e926
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000e926
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 7
mov word [ebp - 0x24], ax
test ebx, ebx
jne 0x1000e961
mov dword [edi + 0x18], 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptCATAdminCalcHashFromFileHandle
push ebx
call esi
push str.CryptCATAdminAcquireContext
push ebx
mov dword [edi], eax
call esi
push str.CryptCATAdminEnumCatalogFromHash
push ebx
mov dword [edi + 4], eax
call esi
push str.CryptCATCatalogInfoFromContext
push ebx
mov dword [edi + 8], eax
call esi
push str.CryptCATAdminReleaseContext
push ebx
mov dword [edi + 0xc], eax
call esi
push str.CryptCATAdminReleaseCatalogContext
push ebx
mov dword [edi + 0x10], eax
call esi
mov dword [edi + 0x14], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10014720
Capabilities:
Check os version
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x140
mov eax, dword [0x10029008]
xor eax, esp
mov dword [esp + 0x13c], eax
push esi
mov esi, ecx
push pe_nt_image_headers32
push 0
lea eax, [esi + 4]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi], 0x11c
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x10014862
cmp dword [esi + 4], 6
push edi
ja 0x10014776
jne 0x100147fe
cmp dword [esi + 8], 2
jb 0x100147fe
push 0x10022f98
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
je 0x100147fe
push 0x10
push 1
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x100147fe
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x100147fe
movups xmm0, xmmword [0x10022fe0]
push eax
movups xmmword [esp + 0x128], xmm0
movups xmm0, xmmword [0x10022ff0]
movups xmmword [esp + 0x138], xmm0
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x100147fe
lea eax, [esp + 0x124]
push eax
lea ecx, [edi + 6]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x100147fe
cmp word [edi + 2], ax
jbe 0x100147fe
movzx edx, word [edi + 0x32]
movzx ecx, word [edi + 0x30]
movzx eax, word [edi + 0x36]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x10022f74
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x10014849
push pe_nt_image_headers32
lea eax, [esp + 0x10]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 8], 0x11c
lea eax, [esp + 8]
push eax
call edi
test eax, eax
jne 0x10014849
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
pop edi
mov al, 1
pop esi
mov ecx, dword [esp + 0x13c]
xor ecx, esp
call fcn.1001c04c
add esp, 0x140
ret
mov ecx, dword [esp + 0x140]
xor al, al
pop esi
xor ecx, esp
call fcn.1001c04c
add esp, 0x140
ret
Function at 0x10016350
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001f508
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x10029008]
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 edi, edx
mov esi, ecx
and edi, 0xffffb1af
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x1001638f
mov eax, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
push eax
call ebx
test eax, eax
je 0x100163a4
mov al, 1
jmp 0x10016449
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.10017160
test al, al
je 0x100163ee
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push edi
cmovae eax, dword [ebp - 0x28]
push eax
call ebx
test eax, eax
je 0x100163ee
mov bl, 1
jmp 0x100163f0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x10016433
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016429
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10016429
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov al, bl
mov dword [ebp - 0x14], 7
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.1001c04c
mov esp, ebp
pop ebp
ret
Function at 0x10016470
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001f508
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x10029008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x100164a6
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x10016556
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.10017160
test al, al
je 0x100164ff
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x10016542
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016538
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10016538
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001c04c
mov esp, ebp
pop ebp
ret
Function at 0x100180a0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
mov eax, dword [0x10029008]
xor eax, esp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
push edi
cmp dword [ebp + 0x10], 0xffffffff
mov edi, dword [esp + 0x20]
je 0x10018122
mov ecx, 0x100000
nop dword [eax]
nop word [eax + eax]
cmp esi, 0x100000
mov dword [esp + 0x14], 0
push 0
mov eax, esi
cmova eax, ecx
lea ecx, [esp + 0x18]
push ecx
push eax
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
add ebx, ecx
test eax, eax
je 0x10018122
test ecx, ecx
je 0x1001811e
add edi, ecx
sub esi, ecx
mov ecx, 0x100000
jne 0x100180e0
xor eax, eax
jmp 0x10018127
mov eax, 1
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10018131
mov dword [ecx], ebx
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1001c04c
add esp, 0xc
ret 0xc

Function at 0x100187d0
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x10029008]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x10018835
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x10018810
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10018835
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.1001c04c
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.1001c04c
add esp, 8
ret 4
Function at 0x10019950
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001fe20
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x10029008]
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 edi, ecx
mov esi, dword [edi]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
test esi, esi
je 0x10019a8f
cmp byte [esi + 0x54], 0
je 0x10019a8f
add esi, 0x1c
xor bl, bl
mov dword [ebp - 0x3c], esi
mov byte [ebp - 0x38], bl
test esi, esi
je 0x100199d0
mov eax, dword [esi]
test eax, eax
je 0x100199cd
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x100199c4
cmp eax, 0x80
je 0x100199c4
xor bl, bl
jmp 0x100199ca
mov byte [esi + 4], 1
mov bl, 1
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 0x38], bl
push ecx
mov edx, ecx
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.100178b0
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 0x10
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov eax, dword [edi]
cmp dword [eax + 0x14], 8
jb 0x10019a07
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x10019a55
push 2
push 0
push 0
push edi
mov dword [ebp - 0x2c], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10014e10
mov dword [ebp - 4], 2
test esi, esi
je 0x10019a81
test bl, bl
je 0x10019a81
mov eax, dword [esi]
test eax, eax
je 0x10019a7d
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [esi + 4], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0xffffffff
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.1001c04c
mov esp, ebp
pop ebp
ret 4
Function at 0x10019d40
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001fe60
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x10029008]
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 edi, ecx
mov eax, dword [edi]
mov ebx, dword [ebp + 8]
test eax, eax
je 0x10019d83
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], 0
push 0x2c
mov word [edi + 4], 0
mov dword [ebp - 0x14], 0
call fcn.1001c05d
mov esi, eax
mov dword [ebp - 0x1c], 0
add esp, 4
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], 0
mov dword [esi], 0
lea eax, [esi + 0x14]
mov dword [esi + 4], 0
mov dword [esi + 8], 0xc
mov dword [esi + 0xc], eax
xor eax, eax
push 0xc
push str.Advapi32.dll
mov dword [esi + 0x10], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
call fcn.10005680
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
push eax
call fcn.10015080
mov ecx, eax
call fcn.10015140
mov dword [esi + 0x28], eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x10019e4e
mov ecx, dword [ebp - 0x2c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10019e44
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10019e44
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1001c08d
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c], 0
sub esp, 8
mov word [ebp - 0x2c], ax
lea eax, [esi + 0x14]
mov dword [ebp - 0x18], 7
lea ecx, [ebp - 0x14]
push eax
call fcn.1001be20
mov esi, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [ebp - 4], 1
cmp dword [esi], 0
je 0x10019e87
lea eax, [esi + 8]
jmp 0x10019e89
xor eax, eax
cmp dword [ebx + 0x10], 0
je 0x10019e99
cmp dword [ebx + 0x14], 8
jb 0x10019e9b
mov ebx, dword [ebx]
jmp 0x10019e9b
xor ebx, ebx
push ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi], eax
test eax, eax
je 0x10019ebc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10019ebc
mov byte [edi + 5], 1
cmp dword [edi], 0
setne bl
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x10019ee5
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x10019efa
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [esi + 4], 0
push 0x2c
push esi
call fcn.1001c08d
add esp, 8
mov dword [ebp - 0x14], 0
mov al, bl
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.1001c04c
mov esp, ebp
pop ebp
ret 4
Function at 0x1001a370
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001ffa5
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
push edi
mov eax, dword [0x10029008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0x1050
call fcn.1001c05d
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0
push 0x1050
push 0
push esi
call sub.VCRUNTIME140.dll_memset
lea ecx, [esi + 0x44]
mov dword [esi], 0
mov eax, ecx
mov dword [esi + 4], 0
neg eax
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
lea edx, [esi + 0x1044]
mov dword [esi + 0x10], 0
and eax, 3
mov dword [esi + 0x14], 0
add esp, 0x10
mov dword [esi + 0x18], 0
add eax, ecx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [ebp - 0x14], esi
mov dword [edx], 0
mov dword [esi + 0x1048], 0
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], edx
mov byte [ebp - 4], 2
mov dword [esi + 0x104c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov dword [edi], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret