Function at 0x100154c5
Capabilities:
Create process on windows
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x10fc]
mov eax, 0x10fc
call fcn.100503e0
push 0xffffffffffffffff
push 0x1007288d
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x1008cc50]
xor eax, ebp
mov dword [ebp + 0x10f8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x34], 7
call fcn.1000186e
cmp dword [ebp + 0x1108], ebx
mov edi, dword [ebp + 0x1104]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], 0x4b
jl 0x10015669
jg 0x10015540
cmp edi, 1
jb 0x10015669
cmp dword [ebp + 0x1108], ebx
jg 0x10015669
mov ecx, 0x800000
jl 0x1001555b
cmp edi, ecx
ja 0x10015669
mov eax, 0x400
cmp edi, eax
jg 0x100157a5
je 0x1001574c
cmp edi, 0x20
jg 0x1001563f
je 0x10015631
mov eax, edi
dec eax
je 0x100155fa
dec eax
je 0x100158e4
dec eax
dec eax
je 0x100158e4
sub eax, 4
je 0x100158e4
sub eax, 8
jne 0x10015669
push 0x10077004
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
push 0x1008e7cc
lea ecx, [ebp - 0x10]
call fcn.10002cc0
push 0x10077008
lea eax, [ebp - 0x10]
push 0x10077018
push eax
mov byte [ebp - 4], 5
call fcn.1000ce91
add esp, 0xc
push dword [ebp - 0x10]
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov byte [ebp - 4], bl
call fcn.100028c0
push 0x10077020
jmp 0x10015908
push 0x10077028
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
push 0x1007702c
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
push ebx
lea ecx, [esi + 0x38]
call fcn.10017170
cmp dword [eax + 0x18], 8
jb 0x10015628
mov eax, dword [eax + 4]
jmp 0x1001562b
add eax, 4
push eax
jmp 0x100158d4
push ebx
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.10014d08
jmp 0x1001567b
cmp edi, 0x40
jl 0x10015669
cmp edi, 0x42
jle 0x100156d1
cmp edi, 0x80
je 0x100156c3
cmp edi, 0x100
je 0x100156b5
cmp edi, 0x200
je 0x100158f1
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x1108]
mov ecx, esi
push edi
call fcn.10014de3
cmp dword [ebp + 0x30], ebx
je 0x10015bf0
push dword [ebp - 0x14]
lea eax, [ebp + 0xa58]
push 0x104
push eax
call fcn.100113b8
add esp, 0xc
test eax, eax
je 0x10015bf0
cmp dword [esi + 0x1c], 8
jb 0x10015b8d
mov edi, dword [esi + 8]
jmp 0x10015b90
push ebx
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.10014a0f
jmp 0x1001567b
push ebx
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.10014af6
jmp 0x1001567b
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x44]
add edi, 0xffffffc0
push 0x1c
mov dword [ebp - 0x10], edi
cdq
pop edi
idiv edi
mov ecx, 0x10077034
mov dword [ebp + 0x10f4], ecx
test eax, eax
je 0x10015721
lea ecx, [esi + 0x20]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
cdq
idiv edi
cmp dword [ebp - 0x10], eax
jge 0x1001571b
push dword [ebp - 0x10]
call fcn.10017170
cmp dword [eax + 0x18], 8
jb 0x10015716
mov ecx, dword [eax + 4]
jmp 0x10015721
lea ecx, [eax + 4]
jmp 0x10015721
mov ecx, dword [ebp + 0x10f4]
push ecx
push 0x104
lea eax, [ebp + 0xe68]
push eax
mov ecx, esi
call fcn.10013abb
lea eax, [ebp + 0xe68]
push eax
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.10014910
jmp 0x1001567b
lea eax, [ebp + 0x1c]
push 0x54
push eax
call fcn.1001427a
pop ecx
pop ecx
push ebx
lea ecx, [ebp]
mov dword [ebp + 0x18], 7
call fcn.1000186e
push 2
lea eax, [ebp]
push eax
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.100143d2
cmp dword [ebp + 0x18], 8
mov eax, dword [ebp + 4]
jae 0x10015786
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
pop ecx
pop ecx
lea ecx, [ebp]
push ebx
push 1
mov byte [ebp - 4], bl
call fcn.10001672
jmp 0x1001567b
mov eax, 0x80000
cmp edi, eax
jg 0x1001596b
je 0x10015927
cmp edi, 0x1000
je 0x100158e4
mov eax, 0x40000
cmp edi, 0x10000
je 0x100157e1
cmp edi, 0x20000
je 0x100157e1
cmp edi, eax
jne 0x10015669
mov dword [ebp - 0x14], 0x4d
cmp edi, eax
jne 0x10015853
cmp dword [ebp + 0x1108], ebx
jne 0x10015853
push 8
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.100143d2
push ebx
lea ecx, [esi + 0x38]
call fcn.10017170
cmp dword [eax + 0x18], 8
jb 0x10015815
mov eax, dword [eax + 4]
jmp 0x10015818
add eax, 4
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
pop ecx
pop ecx
push ebx
lea ecx, [esi + 4]
call fcn.10001dd1
movzx eax, word [eax]
push eax
push str._drv:_c
lea eax, [ebp + 0xc]
push 8
push eax
call fcn.10051b91
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
add esp, 0x18
jmp 0x10015860
push 4
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.100143d2
mov eax, dword [0x10076fdc]
mov dword [ebp + 0x10f0], eax
mov eax, dword [0x10076fe0]
mov dword [ebp + 0x10f4], eax
mov dword [ebp - 0x10], 0x5a
mov ax, word [ebp - 0x10]
mov word [ebp + 0x10f0], ax
lea eax, [ebp + 0x10f0]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
je 0x100158a5
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x41
jge 0x1001587d
jmp 0x100158b7
lea eax, [ebp + 0x10f0]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
pop ecx
pop ecx
cmp edi, 0x20000
jne 0x1001567b
cmp dword [ebp + 0x1108], ebx
jne 0x1001567b
push str._drv:0
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
pop ecx
pop ecx
jmp 0x1001567b
push 0x10076ff4
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
cmp dword [ebp + 0x30], ebx
jne 0x10015903
push 0x10076ff8
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
push 0x10076ffc
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
push dword [ebp + 0x1108]
lea eax, [ebp + 0x1c]
push edi
push eax
mov ecx, esi
call fcn.100146de
jmp 0x1001567b
cmp dword [esi + 0x1c], 8
mov dword [ebp - 0x14], 0x4d
jb 0x10015939
mov eax, dword [esi + 8]
jmp 0x1001593c
lea eax, [esi + 8]
push eax
push 0x10076f34
lea eax, [ebp + 0x10b0]
push 0x10076f48
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp + 0x10b0]
add esp, 0x10
push eax
lea ecx, [ebp + 0x1c]
call fcn.10011f1e
jmp 0x1001567b
cmp edi, 0x100000
je 0x10015b4c
cmp edi, 0x200000
je 0x10015b14
cmp edi, 0x400000
je 0x10015a9c
cmp edi, ecx
jne 0x10015669
push 0x10076f1c
lea ecx, [ebp - 0xc0]
call fcn.10002a10
push eax
lea eax, [ebp - 0xa4]
push 0x10076f20
push eax
mov byte [ebp - 4], 1
call fcn.10017cb1
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 2
call fcn.100015df
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.10001672
push ebx
push 1
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], bl
call fcn.10001672
lea edi, [esi + 0x38]
push ebx
mov ecx, edi
call fcn.10017170
cmp dword [eax + 0x18], 8
jb 0x10015a05
mov eax, dword [eax + 4]
jmp 0x10015a08
add eax, 4
push 0x10076f28
push eax
call fcn.1004fe3e
pop ecx
pop ecx
test eax, eax
je 0x10015a83
push 0x10076f2c
lea ecx, [ebp - 0x6c]
call fcn.10002a10
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 3
call fcn.10011a77
push ebx
push 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], bl
call fcn.10001672
push ebx
mov ecx, edi
call fcn.10017170
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
call fcn.10011a77
push 0x10076f30
lea ecx, [ebp - 0x88]
call fcn.10002a10
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 4
call fcn.10011a77
lea ecx, [ebp - 0x88]
jmp 0x10015795
push ebx
mov ecx, edi
call fcn.10017170
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
call fcn.10011a77
jmp 0x1001567b
cmp dword [esi + 0x1c], 8
mov dword [ebp - 0x14], 0x4d
jb 0x10015aae
mov eax, dword [esi + 8]
jmp 0x10015ab1
lea eax, [esi + 8]
push eax
lea eax, [ebp + 0xc60]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
lea ecx, [esi + 0x38]
call fcn.10017170
cmp dword [eax + 0x18], 8
jb 0x10015ad3
mov eax, dword [eax + 4]
jmp 0x10015ad6
add eax, 4
push eax
lea eax, [ebp + 0xc60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp + 0xc60]
push eax
push str._unmount
lea eax, [ebp + 0x38]
push str._s___s_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1001436e
add esp, 0x18
jmp 0x1001567b
cmp dword [esi + 0x1c], 8
mov dword [ebp - 0x14], 0x4d
jb 0x10015b26
mov eax, dword [esi + 8]
jmp 0x10015b29
lea eax, [esi + 8]
push eax
push str._eject
lea eax, [ebp + 0x1070]
push str.__s___s_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp + 0x1070]
jmp 0x1001595a
push 0x4d
pop edi
lea eax, [ebp + 0x1c]
push edi
push eax
call fcn.1001427a
pop ecx
pop ecx
push ebx
lea ecx, [esi + 4]
mov dword [ebp - 0x14], edi
call fcn.10001dd1
movzx eax, word [eax]
push eax
push str._insertimage:
lea eax, [ebp + 0x858]
push str._s_C
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp + 0x858]
jmp 0x10015b02
lea edi, [esi + 8]
add esi, 0x9c
cmp word [esi], bx
je 0x10015b9d
mov edi, esi
push 0x38
lea eax, [ebp - 0x4c]
push ebx
push eax
mov dword [ebp - 0x50], 0x3c
call fcn.10050600
lea eax, [ebp + 0xa58]
add esp, 0xc
cmp dword [ebp + 0x34], 8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x38], edi
jae 0x10015bd2
lea eax, [ebp + 0x20]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push ebx
push 1
lea ecx, [ebp + 0x1c]
mov esi, eax
call fcn.10001672
mov eax, esi
jmp 0x10015bfd
push ebx
push 1
lea ecx, [ebp + 0x1c]
call fcn.10001672
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x10f8]
xor ecx, ebp
call fcn.100503cc
add ebp, 0x10fc
leave
ret 8