joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10077df0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
mov eax, dword [ecx + 4]
push ebx
push ebp
push esi
push edi
mov edi, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x10077e31
lea edx, [esp + 0x14]
or eax, 0x20019
push edx
push eax
push 0
push ecx
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
mov eax, dword [esp + 0x14]
neg esi
sbb esi, esi
not esi
and esi, eax
jmp 0x10077e33
mov esi, edi
test esi, esi
je 0x10077ea8
mov ebx, dword [esp + 0x20]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
push 0
push ecx
push 0
push ebx
push esi
call ebp
test eax, eax
jne 0x10077e9d
mov ecx, dword [esp + 0x20]
mov eax, 4
cmp ecx, eax
jne 0x10077e9d
cmp dword [esp + 0x1c], eax
jbe 0x10077e6e
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x1c]
lea eax, [esp + 0x10]
push edx
push eax
push 0
push 0
push ebx
push esi
call ebp
test eax, eax
jne 0x10077e9d
cmp esi, edi
je 0x10077e8f
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp esi, edi
je 0x10077ea8
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc

Function at 0x10078000
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebx
push esi
mov esi, dword [ecx]
push edi
test esi, esi
je 0x1007805f
mov edi, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x14]
lea ecx, [esp + 0xc]
push eax
push 0
push ecx
push 0
push edi
push esi
call ebx
test eax, eax
jne 0x1007805f
cmp dword [esp + 0xc], 3
jne 0x1007805f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp edx, eax
jb 0x1007805f
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x14]
push eax
push ecx
push 0
push 0
push edi
push esi
call ebx
test eax, eax
jne 0x1007805f
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret 0xc
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret 0xc

Function at 0x10078140
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [ecx]
test esi, esi
push edi
je 0x100781b4
mov ebx, dword [esp + 0x18]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push eax
push 0
push ecx
push 0
push ebx
push esi
call ebp
test eax, eax
jne 0x100781b4
cmp dword [esp + 0x10], 3
jne 0x100781b4
mov edx, dword [esp + 0x18]
push edx
call fcn.1007dc71
mov edi, eax
add esp, 4
test edi, edi
je 0x100781b4
lea eax, [esp + 0x18]
push eax
push edi
push 0
push 0
push ebx
push esi
call ebp
test eax, eax
jne 0x100781ab
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, edi
pop edi
pop esi
pop ebp
mov dword [ecx], edx
pop ebx
pop ecx
ret 8
push edi
call fcn.1007d541
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 8
Function at 0x100781c0
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x10119def
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov eax, dword [0x1013c5e8]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 1
test ecx, ecx
mov dword [esp + 0x14], edi
je 0x1007822b
lea edx, [esp + 0x18]
or eax, 0x20019
push edx
push eax
push 0
push ecx
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
mov eax, dword [esp + 0x18]
neg esi
sbb esi, esi
not esi
and esi, eax
jmp 0x1007822d
mov esi, edi
test esi, esi
je 0x100782f7
mov ebx, dword [esp + 0x38]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
push 0
push ecx
push 0
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100782ec
mov eax, dword [esp + 0x38]
cmp eax, 1
je 0x1007826f
cmp eax, 2
je 0x1007826f
cmp eax, 6
je 0x1007826f
cmp eax, 7
jne 0x100782ec
mov edx, dword [esp + 0x34]
add edx, 2
push edx
call fcn.1007dc71
mov ebp, eax
mov eax, dword [esp + 0x38]
mov edi, ebp
add esp, 4
lea ecx, [eax + 2]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esp + 0x34]
push eax
push ebp
push 0
push 0
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
push ebp
jne 0x100782d2
lea ecx, [esp + 0x14]
call fcn.1006ac00
cmp esi, dword [esp + 0x14]
je 0x100782c7
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebp
call fcn.1007d541
add esp, 4
jmp 0x10078309
call fcn.1007d541
add esp, 4
lea ecx, [esp + 0x10]
push 0x10180b90
call fcn.1006ac00
mov edi, dword [esp + 0x14]
cmp esi, edi
je 0x100782f7
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x10078309
push eax
lea ecx, [esp + 0x14]
call fcn.1006ac00
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.10069f80
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 0
call fcn.1006a980
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 0x10
Function at 0x10078f10
Capabilities:
Set registry value

Disassembly:
mov eax, dword [ecx]
test eax, eax
je 0x10078f3c
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push ecx
mov ecx, dword [esp + 8]
push edx
push 3
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x10078f3c
mov eax, 1
ret 0xc
xor eax, eax
ret 0xc

Function at 0x10079060
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10119eb8
push eax
mov eax, dword [ebp + 0xc]
mov dword fs:[0], esp
push ebx
push esi
test eax, eax
push edi
je 0x100790b6
lea ecx, [ebp + 0x14]
lea edx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 8]
or ecx, 0x20006
push 0
push ecx
push 0
push 0
push 0
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, eax
mov eax, dword [ebp + 0xc]
neg esi
sbb esi, esi
not esi
and esi, eax
jmp 0x100790b9
mov esi, dword [ebp + 8]
test esi, esi
je 0x100791ac
call fcn.100b6c80
test eax, eax
je 0x10079109
mov edi, dword [ebp + 0x18]
push edi
call fcn.100827f7
mov ecx, dword [ebp + 0x10]
add esp, 4
lea eax, [eax + eax + 2]
push eax
push edi
push 1
push 0
push ecx
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x100791a0
cmp esi, dword [ebp + 8]
je 0x100790ff
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x100791ae
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10079148
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [eax + eax + 2]
mov eax, ebx
add eax, 3
and al, 0xfc
call fcn.1007f3d0
mov edi, esp
test edi, edi
je 0x10079148
mov edx, dword [ebp + 0x10]
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push edx
push 0
push 0
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x1007914a
xor edi, edi
mov eax, dword [ebp + 0x18]
lea ecx, [ebp + 0xc]
push eax
call fcn.10064ea0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax - 8]
inc ecx
push ecx
push eax
push 1
push 0
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x10079191
cmp esi, dword [ebp + 8]
je 0x1007917b
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
call fcn.10065600
mov eax, 1
jmp 0x100791ae
lea ecx, [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
call fcn.10065600
cmp esi, dword [ebp + 8]
je 0x100791ac
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x18]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10079e80
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
sub esp, 8
lea eax, [esp + 0xc]
lea ecx, [esp]
push ebx
push ebp
push esi
push edi
push 0
push 0
mov ebx, dword [esp + 0x24]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x10079ffd
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10079fdc
mov eax, dword [esp + 0x1c]
cmp eax, 0x104
jae 0x10079ed6
mov eax, 0x104
mov dword [esp + 0x1c], eax
lea edx, [eax + eax + 2]
push edx
call fcn.1007dc71
mov esi, eax
add esp, 4
test esi, esi
je 0x10079ffd
mov eax, dword [esp + 0x1c]
mov edi, esi
lea ecx, [eax + eax + 2]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
inc eax
push eax
push esi
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x10079ff4
mov ebp, dword [esp + 0x20]
mov eax, ebp
or eax, 0x2001f
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x20]
push ecx
push eax
push 0
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10079ff4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x10079ff4
push ebp
push edi
call fcn.10079e80
add esp, 8
test eax, eax
je 0x10079fe9
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x10180b8c]
test eax, eax
je 0x10079f85
test ebp, ebp
je 0x10079f85
push 0
push ebp
push esi
push ebx
call eax
test eax, eax
jne 0x10079ff4
jmp 0x10079f91
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
jne 0x10079ff4
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
je 0x10079fd3
mov edx, dword [esp + 0x1c]
xor eax, eax
mov edi, esi
lea ecx, [edx + edx + 2]
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
inc eax
push eax
push esi
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x10079ff4
mov eax, dword [esp + 0x14]
jmp 0x10079f2e
push esi
call fcn.1007d541
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
test edi, edi
je 0x10079ff4
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call fcn.1007d541
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret

Function at 0x1007a010
Capabilities:
Delete registry key
Delete registry value

Disassembly:
push esi
mov esi, dword [ecx]
push edi
mov edi, dword [ecx + 4]
test esi, esi
je 0x1007a079
mov eax, dword [esp + 0xc]
test eax, eax
je 0x1007a039
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
jne 0x1007a079
pop edi
mov eax, 1
pop esi
ret 4
push edi
push esi
call fcn.10079e80
add esp, 8
test eax, eax
je 0x1007a079
mov eax, dword [0x10180b8c]
test eax, eax
je 0x1007a066
test edi, edi
je 0x1007a066
push 0
push edi
push 0
push esi
call eax
neg eax
sbb eax, eax
pop edi
inc eax
pop esi
ret 4
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
neg eax
sbb eax, eax
pop edi
inc eax
pop esi
ret 4
pop edi
xor eax, eax
pop esi
ret 4
Function at 0x1007a4a0
Capabilities:
Create thread
Resume thread

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 8]
test eax, eax
jne 0x1007a535
push ebx
push edi
mov edi, dword [esi + 0x20]
mov ebx, 4
test edi, edi
je 0x1007a4ef
call fcn.100b6d10
test eax, eax
je 0x1007a4ef
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x1007a4dc
mov ecx, dword [eax + 0x3c]
add ecx, eax
je 0x1007a4dc
mov ebx, dword [ecx + 0x64]
lea eax, [edi - 0x2000]
cmp ebx, eax
jbe 0x1007a4e8
add edi, ebx
mov ebx, 0x10004
jmp 0x1007a4f1
xor edi, edi
lea ecx, [esi + 4]
push ecx
push ebx
push esi
push 0x1007a6f0
push edi
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
mov dword [esi + 8], eax
test eax, eax
pop ebx
je 0x1007a535
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xc], 1
test ecx, ecx
je 0x1007a524
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov edx, dword [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
pop esi
ret
xor eax, eax
pop esi
ret

Function at 0x1007a563
Capabilities:
Terminate thread

Disassembly:
sub esp, 8
push esi
mov esi, ecx
mov eax, dword [esi + 8]
test eax, eax
jne 0x1007a574
xor eax, eax
pop esi
add esp, 8
ret
mov eax, dword [esi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 8]
mov dword [esp + 4], ecx
push eax
lea ecx, [esp + 8]
push 0
push ecx
push 2
mov dword [esp + 0x18], edx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 8]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1007a5c0
mov ecx, dword [esi + 8]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edx, dword [esi + 0x10]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_ResetEvent]
push edx
call edi
mov eax, dword [esi + 0x14]
push eax
call edi
mov dword [esi + 0xc], 0
pop edi
mov eax, 1
pop esi
add esp, 8
ret

Function at 0x1007ceab
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1015bdd0]
jne 0x1007ceb5
repz ret
jmp fcn.10083798
Function at 0x100a0014
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.10085cae
and dword [ebp - 4], 0
cmp dword [0x10181668], 0
mov ebx, eax
jne 0x100a00c5
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x100a0176
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x1013eea0
push edi
call esi
test eax, eax
je 0x100a0176
push eax
call fcn.10085c3c
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x10181668], eax
call esi
push eax
call fcn.10085c3c
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x1018166c], eax
call esi
push eax
call fcn.10085c3c
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x10181670], eax
call esi
push eax
call fcn.10085c3c
pop ecx
mov dword [0x10181678], eax
test eax, eax
je 0x100a00c5
push 0x1013ee48
push edi
call esi
push eax
call fcn.10085c3c
pop ecx
mov dword [0x10181674], eax
mov eax, dword [0x10181674]
cmp eax, ebx
je 0x100a011d
cmp dword [0x10181678], ebx
je 0x100a011d
push eax
call fcn.10085cb7
push dword [0x10181678]
mov esi, eax
call fcn.10085cb7
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x100a011d
test edi, edi
je 0x100a011d
call esi
test eax, eax
je 0x100a0114
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x100a0114
test byte [ebp - 0xc], 1
jne 0x100a011d
or dword [ebp + 0x10], 0x200000
jmp 0x100a0156
mov eax, dword [0x1018166c]
cmp eax, ebx
je 0x100a0156
push eax
call fcn.10085cb7
pop ecx
test eax, eax
je 0x100a0156
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x100a0156
mov eax, dword [0x10181670]
cmp eax, ebx
je 0x100a0156
push eax
call fcn.10085cb7
pop ecx
test eax, eax
je 0x100a0156
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x10181668]
call fcn.10085cb7
pop ecx
test eax, eax
je 0x100a0176
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x100a0178
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x100af720
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1011a3af
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
mov eax, dword [esp + 0x38]
push esi
mov dword [esp + 4], 0
cmp word [eax], 0x4d4f
je 0x100af76d
mov esi, dword [esp + 0x38]
push 0
push 0
mov ecx, esi
call fcn.100b5b90
mov eax, esi
pop esi
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
push ebp
push edi
mov ebp, dword [esp + 0x48]
mov ecx, 8
mov esi, eax
lea edi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x1c]
xor esi, esi
xor edi, edi
test ecx, ecx
jbe 0x100af7a1
and word [esp + 0x12], 0xefff
test byte [eax + 3], 0x10
je 0x100af79d
or byte [esp + 0x13], 0x20
mov esi, ebp
mov edi, ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x2c], edi
call fcn.100b5b80
lea eax, [esp + 0x10]
push 0x20
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 1
call fcn.100b60e0
push edi
push esi
lea ecx, [esp + 0x4c]
call fcn.100b60e0
test esi, esi
je 0x100af7e2
cmp esi, ebp
je 0x100af7e2
push esi
call fcn.1007d541
add esp, 4
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.100b5ca0
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], 1
mov byte [esp + 0x38], 0
call fcn.100b5ce0
mov ecx, dword [esp + 0x30]
pop edi
mov eax, esi
pop ebp
pop esi
mov dword fs:[0], ecx
add esp, 0x30
ret
Function at 0x100b1b00
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov ebp, dword [esi + 4]
cmp ebp, ebx
je 0x100b1c8b
cmp dword [esi + 8], ebx
je 0x100b1c8b
cmp dword [esi + 0x10], ebx
je 0x100b1b92
lea eax, [esp + 0x14]
lea edi, [esi + 0x1c]
push ebx
push eax
push edi
push ebp
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
cmp eax, ebx
jne 0x100b1b77
mov ecx, dword [esi + 0x2c]
push 0x7530
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100b1b66
mov dword [esi + 0x14], 0xf0000003
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push ebx
push edx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
xor ecx, ecx
mov dword [esi + 0x10], ebx
mov dword [edi], ecx
cmp eax, ebx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ecx
je 0x100b1c8b
mov eax, dword [esi + 8]
xor edx, edx
mov dword [esp + 0x20], edx
push eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [esi + 8]
lea edx, [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
push ebp
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, eax
cmp edi, ebx
je 0x100b1bfc
cmp dword [esp + 0x10], ebx
je 0x100b1bfc
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp edi, ebx
jne 0x100b1c18
cmp eax, ebx
je 0x100b1c18
cmp eax, 0x3e5
je 0x100b1c18
cmp eax, 0x217
jne 0x100b1c8b
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
cmp edi, ebx
je 0x100b1c50
push ebp
call dword [sym.imp.KERNEL32.dll_CancelIo]
cmp edi, 0x102
jne 0x100b1c8b
mov dword [esi + 0x14], 0xf0000003
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc
lea eax, [esp + 0x18]
push ebx
lea ecx, [esp + 0x20]
push eax
push ecx
push ebp
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
mov edx, dword [esi + 8]
mov edi, eax
push edx
mov dword [esi + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [esp + 0x18]
mov eax, edi
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
and eax, ecx
pop ebx
add esp, 0x20
ret 0xc
mov dword [esi + 0x14], 0xf0000001
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc
Function at 0x100b1ca0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov ebp, dword [esi + 4]
cmp ebp, ebx
je 0x100b1e2b
cmp dword [esi + 0xc], ebx
je 0x100b1e2b
cmp dword [esi + 0x10], ebx
je 0x100b1d32
lea eax, [esp + 0x14]
lea edi, [esi + 0x1c]
push ebx
push eax
push edi
push ebp
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
cmp eax, ebx
jne 0x100b1d17
mov ecx, dword [esi + 0x2c]
push 0x7530
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100b1d06
mov dword [esi + 0x14], 0xf0000003
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push ebx
push edx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
xor ecx, ecx
mov dword [esi + 0x10], ebx
mov dword [edi], ecx
cmp eax, ebx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ecx
je 0x100b1e2b
mov eax, dword [esi + 0xc]
xor edx, edx
mov dword [esp + 0x20], edx
push eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
push ebp
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, eax
cmp edi, ebx
je 0x100b1d9c
cmp dword [esp + 0x10], ebx
jbe 0x100b1d9c
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp edi, ebx
jne 0x100b1db8
cmp eax, ebx
je 0x100b1db8
cmp eax, 0x3e5
je 0x100b1db8
cmp eax, 0x217
jne 0x100b1e2b
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
cmp edi, ebx
je 0x100b1df0
push ebp
call dword [sym.imp.KERNEL32.dll_CancelIo]
cmp edi, 0x102
jne 0x100b1e2b
mov dword [esi + 0x14], 0xf0000003
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc
lea eax, [esp + 0x18]
push ebx
lea ecx, [esp + 0x20]
push eax
push ecx
push ebp
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
mov edx, dword [esi + 0xc]
mov edi, eax
push edx
mov dword [esi + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [esp + 0x18]
mov eax, edi
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
and eax, ecx
pop ebx
add esp, 0x20
ret 0xc
mov dword [esi + 0x14], 0xf0000001
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 0xc