joyce8/EMBER2024-capa huggingface dataset:
Function at 0x55b1f4
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x55b1fd
mov eax, dword [ebp - 4]
add esp, 0xffffffbc
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xfffffc1b
cmp dword [ebp - 0xc], 0x14
jne 0x55b25d
mov eax, dword [ebp + 0x28]
push eax
mov eax, dword [ebp + 0x24]
push eax
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0055b090
mov dword [ebp - 0x10], eax
jmp 0x55b3f3
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x100000
cmp dword [ebp + 0xc], 0x2000
jg 0x55b3f3
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
je 0x55b3f3
lea eax, [ebp - 0x2048]
xor ecx, ecx
mov edx, 0x2030
call fcn.00403464
mov dword [ebp - 0x2048], 0x31
xor eax, eax
mov dword [ebp - 0x2044], eax
mov dword [ebp - 0x2040], 3
mov dword [ebp - 0x203c], 1
mov dword [ebp - 0x2030], 0x28
mov dword [ebp - 0x202c], 0x2000
mov eax, dword [ebp - 0xc]
sub eax, 2
je 0x55b333
sub eax, 4
je 0x55b2e6
sub eax, 4
je 0x55b355
jmp 0x55b3f3
mov eax, dword [ebp + 0x28]
sub eax, 1
jb 0x55b2f8
je 0x55b30b
dec eax
je 0x55b31f
jmp 0x55b385
xor eax, eax
mov dword [ebp - 0x2038], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2034], eax
jmp 0x55b385
mov dword [ebp - 0x2038], 1
xor eax, eax
mov dword [ebp - 0x2034], eax
jmp 0x55b385
mov dword [ebp - 0x2038], 2
xor eax, eax
mov dword [ebp - 0x2034], eax
jmp 0x55b385
mov dword [ebp - 0x203c], 2
mov eax, dword [ebp + 0x28]
and eax, 0xff
mov dword [ebp - 0x2038], eax
xor eax, eax
mov dword [ebp - 0x2034], eax
jmp 0x55b385
mov dword [ebp - 0x203c], 3
mov eax, dword [ebp + 0x28]
and eax, 0xff
mov dword [ebp - 0x2038], eax
xor eax, eax
mov dword [ebp - 0x2034], eax
xor eax, eax
mov dword [ebp - 0x2030], eax
xor eax, eax
mov dword [ebp - 0x202c], eax
push 0
lea eax, [ebp - 0x18]
push eax
push 0x2030
lea eax, [ebp - 0x2048]
push eax
push 0x2030
lea eax, [ebp - 0x2048]
push eax
push 0x2d1400
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x55b3eb
cmp dword [ebp - 0x18], 0
jbe 0x55b3eb
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
xor edx, edx
mov dword [eax], edx
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x2018]
mov ecx, dword [ebp + 0xc]
call fcn.00402a80
cmp dword [ebp - 0xc], 0xa
jne 0x55b3f3
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x2028]
mov dword [eax], edx
jmp 0x55b3f3
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 0x24
Function at 0x562aec
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd28
push ebx
xor ebx, ebx
mov dword [ebp - 0x2d0], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x562d16
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
cmp dword [ebp + 8], 0
je 0x562b27
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
jmp 0x562b73
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0x2d0]
push eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2d8], eax
mov byte [ebp - 0x2d4], 0
lea edx, [ebp - 0x2d8]
xor ecx, ecx
mov eax, 0x562d30
call fcn.0040bf48
mov eax, dword [ebp - 0x2d0]
call fcn.0040574c
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x562cfd
lea eax, [ebp - 0x2cc]
xor ecx, ecx
mov edx, 0x2b4
call fcn.00403464
mov dword [ebp - 0x2cc], 0x1c
mov byte [ebp - 0x2c8], 0x3c
mov byte [ebp - 0x2c7], 0x33
mov byte [ebp - 0x2c6], 0x77
mov byte [ebp - 0x2c5], 0x61
mov byte [ebp - 0x2c4], 0x72
mov byte [ebp - 0x2c3], 0x65
mov byte [ebp - 0x2c2], 0x3e
mov byte [ebp - 0x2c1], 0
mov dword [ebp - 0x2c0], 0x23
mov dword [ebp - 0x2bc], 0xf000e000
xor eax, eax
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], 0x298
mov byte [ebp - 0x234], 0x80
mov byte [ebp - 0x230], 0xb1
mov byte [ebp - 0x22f], 5
mov byte [ebp - 0x22e], 0xff
mov al, byte [ebp - 8]
and al, 0xff
mov byte [ebp - 0x22d], al
mov byte [ebp - 0x22c], 0
mov byte [ebp - 0x22b], 1
mov byte [ebp - 0x22a], 0xd
mov byte [ebp - 0x229], 0
mov byte [ebp - 0x228], 0xd0
mov byte [ebp - 0x227], 0
mov byte [ebp - 0x226], 1
mov byte [ebp - 0x225], 0
mov byte [ebp - 0x224], 0
mov byte [ebp - 0x223], 0
mov byte [ebp - 0x222], 0x4f
mov byte [ebp - 0x221], 0
mov byte [ebp - 0x220], 0xc2
mov byte [ebp - 0x21f], 0
mov byte [ebp - 0x21e], 0
mov byte [ebp - 0x21d], 0xb0
lea eax, [ebp - 0x218]
lea edx, [ebp - 0x21c]
mov dword [edx], eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0x2b4
lea eax, [ebp - 0x2cc]
push eax
push 0x2b4
lea eax, [ebp - 0x2cc]
push eax
push 0x4d008
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x562cee
lea eax, [ebp - 0x2b0]
cmp dword [eax], 0
jne 0x562cee
mov byte [ebp - 0xd], 1
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x218]
mov ecx, 0x200
call fcn.00402a80
cmp dword [ebp + 8], 0
jne 0x562cfd
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x562d1d
lea eax, [ebp - 0x2d0]
call fcn.0040528c
ret
Function at 0x582528
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x582640
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x20]
mov eax, 8
call fcn.0040a8c8
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
mov edx, 0x582654
call fcn.00405598
mov ecx, dword [ebp - 0x1c]
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.004cd434
push 0
push 0x200
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004062e8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 0
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
cmp eax, 0xffffffff
jne 0x5825d0
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x5825d0
mov ecx, 0x582678
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 0x10]
push eax
push 0x200
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
je 0x5825fd
cmp dword [ebp - 0x10], 0x200
je 0x582613
mov ecx, 0x582698
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
push 0x200
mov ecx, dword [ebp - 8]
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.004cd468
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x582647
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004052b0
ret
Function at 0x5826a8
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5827c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x20]
mov eax, 8
call fcn.0040a8c8
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
mov edx, 0x5827d4
call fcn.00405598
mov ecx, dword [ebp - 0x1c]
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.004cd434
push 0x200
mov ecx, dword [ebp - 8]
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.004cd468
push 0
push 0x200
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004062e8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 0
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
cmp eax, 0xffffffff
jne 0x582762
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x582762
mov ecx, 0x5827f8
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 0x10]
push eax
push 0x200
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WriteFile_1
test eax, eax
je 0x58278f
cmp dword [ebp - 0x10], 0x200
je 0x5827a5
mov ecx, 0x582818
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5827c7
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004052b0
ret
Function at 0x5840b8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x584242
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x584258
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x20]
mov eax, 8
call fcn.0040a8c8
push dword [ebp - 0x20]
push 0x58427c
mov eax, dword [ebp + 8]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x24]
mov eax, 8
call fcn.0040a8c8
push dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040560c
mov ecx, dword [ebp - 0x1c]
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.004cd434
mov eax, dword [ebp - 4]
cmp dword [eax + 0x80], 0
jne 0x5841dd
push 0
push 0x200
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004062e8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 0
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
cmp eax, 0xffffffff
jne 0x584194
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x584194
mov ecx, 0x584288
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
shl eax, 9
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
je 0x5841c5
mov eax, dword [ebp + 8]
shl eax, 9
cmp eax, dword [ebp - 0x10]
je 0x584213
mov ecx, 0x5842a8
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
jmp 0x584213
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 8]
shl ecx, 9
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.004cd064
test al, al
jne 0x584213
mov ecx, 0x5842c0
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
mov eax, dword [ebp + 8]
shl eax, 9
push eax
mov ecx, dword [ebp - 8]
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.004cd468
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x584249
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.004052b0
ret
Function at 0x584300
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x58448a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x5844a0
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x20]
mov eax, 8
call fcn.0040a8c8
push dword [ebp - 0x20]
push 0x5844c8
mov eax, dword [ebp + 8]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x24]
mov eax, 8
call fcn.0040a8c8
push dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040560c
mov ecx, dword [ebp - 0x1c]
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.004cd434
mov eax, dword [ebp + 8]
shl eax, 9
push eax
mov ecx, dword [ebp - 8]
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.004cd468
mov eax, dword [ebp - 4]
cmp dword [eax + 0x80], 0
jne 0x584439
push 0
push 0x200
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004062e8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 0
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
cmp eax, 0xffffffff
jne 0x5843f0
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x5843f0
mov ecx, 0x5844d4
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
shl eax, 9
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WriteFile_1
test eax, eax
je 0x584421
mov eax, dword [ebp + 8]
shl eax, 9
cmp eax, dword [ebp - 0x10]
je 0x58446f
mov ecx, 0x5844f4
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
jmp 0x58446f
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 8]
shl ecx, 9
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.004cd104
test al, al
jne 0x58446f
mov ecx, 0x584510
mov dl, 1
mov eax, dword [0x409230]
call fcn.0040f388
call fcn.00404c28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x584491
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.004052b0
ret
Function at 0x584c2c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 8]
shl eax, 9
and eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 0x17
shr edx, 0x17
and eax, 0xffffffff
mov dword [ebp - 0x18], eax
push 0
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x584cb2
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_ReadFile_1
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x584caa
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x584cb2
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 8

Function at 0x584cbc
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 8]
shl eax, 9
and eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 0x17
shr edx, 0x17
and eax, 0xffffffff
mov dword [ebp - 0x18], eax
push 0
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x584d42
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_WriteFile_1
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x584d3a
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x584d42
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 8
Function at 0x5875e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffe0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040573c
xor eax, eax
push ebp
push 0x58779c
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
call fcn.0040ad3c
test al, al
je 0x5876f1
mov eax, dword [ebp - 4]
call fcn.0049d504
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffa
jge 0x587786
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.0040aefc
lea eax, [ebp - 0x101d]
mov cl, 0x48
mov edx, 0x1000
call fcn.00403464
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
mov eax, dword [ebp - 4]
call fcn.0040574c
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x5876e2
xor eax, eax
mov dword [ebp - 0x14], eax
push 2
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x5876cd
push 0
lea eax, [ebp - 0x18]
push eax
push 0x1000
lea eax, [ebp - 0x101d]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_WriteFile_1
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
jne 0x5876d4
call sub.kernel32.dll_GetLastError_1
neg eax
mov dword [ebp - 8], eax
jmp 0x5876d4
mov dword [ebp - 8], 0xffffd8f1
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x587786
call sub.kernel32.dll_GetLastError_1
neg eax
mov dword [ebp - 8], eax
jmp 0x587786
lea eax, [ebp - 0x101d]
mov cl, 0x48
mov edx, 0x1000
call fcn.00403464
mov dword [ebp - 8], 1
push 0
push 0
push 2
push 0
push 3
push 0x40000000
mov eax, dword [ebp - 4]
call fcn.0040574c
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x58777c
push 0
lea eax, [ebp - 0x18]
push eax
push 0x1000
lea eax, [ebp - 0x101d]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_WriteFile_1
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
jne 0x587764
call sub.kernel32.dll_GetLastError_1
neg eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle_1
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.0040aefc
jmp 0x587786
call sub.kernel32.dll_GetLastError_1
neg eax
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5877a3
lea eax, [ebp - 4]
call fcn.0040528c
ret
Function at 0x588e84
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd54
push ebx
xor ebx, ebx
mov dword [ebp - 0x2ac], ebx
mov dword [ebp - 0x2a8], ebx
mov dword [ebp - 0x2a4], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
call fcn.0040573c
lea eax, [ebp - 0x178]
mov edx, dword [0x409210]
call fcn.00405dfc
xor eax, eax
push ebp
push 0x589079
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.0040528c
lea ecx, [ebp - 0x2a4]
mov edx, 0x589090
mov eax, dword [ebp - 4]
call fcn.004bdd94
mov eax, dword [ebp - 0x2a4]
lea ecx, [ebp - 0x178]
mov edx, 0x3f
call fcn.0040af88
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x588f66
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x16c]
call fcn.00588da8
cmp dword [ebp - 0x10], 0
je 0x588f52
push 0x2c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [ebp - 0x10]
call fcn.004bcdf4
test eax, eax
jne 0x588f52
mov eax, dword [ebp - 8]
push dword [eax]
push dword [ebp - 0x10]
push 0x5890a0
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.0040560c
lea eax, [ebp - 0x178]
call fcn.0040afd8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x588f0f
lea eax, [ebp - 0x178]
call fcn.0040affc
push 0x20
lea eax, [ebp - 0x29e]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0x105
lea eax, [ebp - 0x27d]
push eax
lea eax, [ebp - 0x2a8]
mov ecx, 0x5890ac
mov edx, dword [ebp - 4]
call fcn.00405598
mov eax, dword [ebp - 0x2a8]
call fcn.0040574c
push eax
call sub.kernel32.dll_GetVolumeInformationA
test eax, eax
je 0x589013
lea eax, [ebp - 0x2ac]
lea edx, [ebp - 0x27d]
mov ecx, 0x105
call fcn.004054fc
mov eax, dword [ebp - 0x2ac]
lea edx, [ebp - 0x10]
call fcn.00588da8
cmp dword [ebp - 0x10], 0
je 0x589013
push 0x2c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [ebp - 0x10]
call fcn.004bcdf4
test eax, eax
jne 0x589013
mov eax, dword [ebp - 8]
push dword [eax]
push dword [ebp - 0x10]
push 0x5890a0
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.0040560c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0040554c
test eax, eax
jle 0x58903a
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0040554c
mov edx, eax
mov eax, dword [ebp - 8]
mov ecx, 1
call fcn.004057ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x589080
lea eax, [ebp - 0x2ac]
mov edx, 3
call fcn.004052b0
lea eax, [ebp - 0x178]
mov edx, dword [0x409210]
call fcn.00405ecc
lea eax, [ebp - 0x10]
call fcn.0040528c
lea eax, [ebp - 4]
call fcn.0040528c
ret
Function at 0x5957bc
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040573c
mov eax, dword [ebp - 8]
call fcn.0040573c
xor eax, eax
push ebp
push 0x5958f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x44]
mov byte [ebp - 0xd], 0
call fcn.004c0a60
test al, al
je 0x5958de
push 0x59590c
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x18], eax
push 0x59591c
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b48], eax
push 0x595934
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b4c], eax
push 0x595954
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b50], eax
push 0x59596c
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b54], eax
push 0x59598c
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b5c], eax
push 0x5959a4
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0xcc5b64], eax
cmp dword [0xcc5b48], 0
je 0x5958d5
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x5958c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 8]
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.00595494
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5958cd
cmp dword [ebp - 0x14], 0
setg byte [ebp - 0xd]
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x595900
lea eax, [ebp - 8]
mov edx, 2
call fcn.004052b0
ret