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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x4086f8
push ebx
push esi
push edi
mov eax, 0x4086b0
call fcn.00404a78
mov esi, 0x40aa58
mov edi, 0x40a7c0
xor eax, eax
push ebp
push 0x408d6a
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00408414
mov edx, dword [ebp - 0x14]
mov eax, 0x40a79c
call fcn.00403b64
mov eax, 0x408d84
call fcn.00405b44
test al, al
je 0x408d4f
mov eax, dword [0x4093d8]
mov byte [eax], 0
mov edx, 0x408d84
mov eax, 0x40a90c
call fcn.00402920
mov edx, 1
mov eax, 0x40a90c
call fcn.00402bf4
call fcn.0040262c
mov eax, 0x40a90c
call fcn.00402a34
call fcn.0040262c
mov edx, eax
sub edx, 0x50
mov eax, 0x40a90c
call fcn.00402c10
call fcn.0040262c
mov eax, 0x40a7a0
call fcn.00403b10
mov byte [esi], 0x50
mov edx, 0x40aa59
mov eax, 0x40a90c
call fcn.00402aa0
call fcn.0040262c
lea eax, [ebp - 0x18]
mov dl, byte [0x40aa59]
call fcn.00403cdc
mov edx, dword [ebp - 0x18]
mov eax, 0x40a7a0
call fcn.00403d8c
dec byte [esi]
cmp byte [esi], 0
jne 0x4087a8
mov eax, 0x40a90c
call fcn.004029dc
call fcn.0040262c
mov byte [esi], 1
mov eax, 0x40a7a4
call fcn.00403b10
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00408414
mov edx, dword [ebp - 0x1c]
mov eax, 0x40a79c
call fcn.00403b64
cmp dword [0x40a79c], 0
je 0x408840
mov ebx, 1
mov eax, dword [0x40a79c]
cmp byte [eax + ebx - 1], 0
jne 0x40883a
mov eax, 0x40a79c
call fcn.00403f50
mov byte [eax + ebx - 1], 0x20
inc ebx
cmp ebx, 0x15
jne 0x40881f
cmp dword [0x40a79c], 0
je 0x40885a
mov eax, dword [0x40a79c]
mov edx, 0x408da0
call fcn.00403e5c
jne 0x408883
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x408874
mov eax, 0x40a79c
mov edx, 0x408dc0
call fcn.00403b64
jmp 0x408883
mov eax, 0x40a79c
mov edx, 0x408de0
call fcn.00403b64
mov eax, 0x40a7a8
mov edx, dword [0x40a79c]
call fcn.00403b64
mov eax, dword [0x40a7a8]
mov edx, 0x408dc0
call fcn.00403e5c
je 0x4088de
mov eax, dword [0x40a7a8]
mov edx, 0x408de0
call fcn.00403e5c
je 0x4088de
mov edx, dword [0x40a7a0]
mov eax, dword [0x40a7a8]
call fcn.00403f98
test eax, eax
je 0x4088de
mov eax, 0x40a798
mov edx, dword [0x40a7a8]
call fcn.00403b64
jmp 0x408bdf
lea edx, [ebp - 0x20]
mov al, 1
call fcn.00408414
mov edx, dword [ebp - 0x20]
mov eax, 0x40a79c
call fcn.00403b64
cmp dword [0x40a79c], 0
je 0x408924
mov ebx, 1
mov eax, dword [0x40a79c]
cmp byte [eax + ebx - 1], 0
jne 0x40891e
mov eax, 0x40a79c
call fcn.00403f50
mov byte [eax + ebx - 1], 0x20
inc ebx
cmp ebx, 0x15
jne 0x408903
cmp dword [0x40a79c], 0
je 0x40893e
mov eax, dword [0x40a79c]
mov edx, 0x408da0
call fcn.00403e5c
jne 0x408967
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x408958
mov eax, 0x40a79c
mov edx, 0x408dc0
call fcn.00403b64
jmp 0x408967
mov eax, 0x40a79c
mov edx, 0x408de0
call fcn.00403b64
mov eax, 0x40a7ac
mov edx, dword [0x40a79c]
call fcn.00403b64
mov eax, dword [0x40a7ac]
mov edx, 0x408dc0
call fcn.00403e5c
je 0x4089c2
mov eax, dword [0x40a7ac]
mov edx, 0x408de0
call fcn.00403e5c
je 0x4089c2
mov edx, dword [0x40a7a0]
mov eax, dword [0x40a7ac]
call fcn.00403f98
test eax, eax
je 0x4089c2
mov eax, 0x40a798
mov edx, dword [0x40a7ac]
call fcn.00403b64
jmp 0x408bdf
lea edx, [ebp - 0x24]
mov al, 2
call fcn.00408414
mov edx, dword [ebp - 0x24]
mov eax, 0x40a79c
call fcn.00403b64
cmp dword [0x40a79c], 0
je 0x408a08
mov ebx, 1
mov eax, dword [0x40a79c]
cmp byte [eax + ebx - 1], 0
jne 0x408a02
mov eax, 0x40a79c
call fcn.00403f50
mov byte [eax + ebx - 1], 0x20
inc ebx
cmp ebx, 0x15
jne 0x4089e7
cmp dword [0x40a79c], 0
je 0x408a22
mov eax, dword [0x40a79c]
mov edx, 0x408da0
call fcn.00403e5c
jne 0x408a4b
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x408a3c
mov eax, 0x40a79c
mov edx, 0x408dc0
call fcn.00403b64
jmp 0x408a4b
mov eax, 0x40a79c
mov edx, 0x408de0
call fcn.00403b64
mov eax, 0x40a7b0
mov edx, dword [0x40a79c]
call fcn.00403b64
mov eax, dword [0x40a7b0]
mov edx, 0x408dc0
call fcn.00403e5c
je 0x408aa6
mov eax, dword [0x40a7b0]
mov edx, 0x408de0
call fcn.00403e5c
je 0x408aa6
mov edx, dword [0x40a7a0]
mov eax, dword [0x40a7b0]
call fcn.00403f98
test eax, eax
je 0x408aa6
mov eax, 0x40a798
mov edx, dword [0x40a7b0]
call fcn.00403b64
jmp 0x408bdf
lea edx, [ebp - 0x28]
mov al, 3
call fcn.00408414
mov edx, dword [ebp - 0x28]
mov eax, 0x40a79c
call fcn.00403b64
cmp dword [0x40a79c], 0
je 0x408aec
mov ebx, 1
mov eax, dword [0x40a79c]
cmp byte [eax + ebx - 1], 0
jne 0x408ae6
mov eax, 0x40a79c
call fcn.00403f50
mov byte [eax + ebx - 1], 0x20
inc ebx
cmp ebx, 0x15
jne 0x408acb
cmp dword [0x40a79c], 0
je 0x408b06
mov eax, dword [0x40a79c]
mov edx, 0x408da0
call fcn.00403e5c
jne 0x408b2f
call sub.kernel32.dll_GetLastError_1
test eax, eax
je 0x408b20
mov eax, 0x40a79c
mov edx, 0x408dc0
call fcn.00403b64
jmp 0x408b2f
mov eax, 0x40a79c
mov edx, 0x408de0
call fcn.00403b64
mov eax, 0x40a7b4
mov edx, dword [0x40a79c]
call fcn.00403b64
mov eax, dword [0x40a7b4]
mov edx, 0x408dc0
call fcn.00403e5c
je 0x408b87
mov eax, dword [0x40a7b4]
mov edx, 0x408de0
call fcn.00403e5c
je 0x408b87
mov edx, dword [0x40a7a0]
mov eax, dword [0x40a7b4]
call fcn.00403f98
test eax, eax
je 0x408b87
mov eax, 0x40a798
mov edx, dword [0x40a7b4]
call fcn.00403b64
jmp 0x408bdf
push dword [0x40a7a8]
push dword [0x40a7ac]
push dword [0x40a7b0]
push dword [0x40a7b4]
mov eax, 0x40a7a4
mov edx, 4
call fcn.00403dd0
mov eax, 0x40a798
mov edx, dword [0x40a7a4]
call fcn.00403b64
mov eax, dword [0x40a7a4]
mov edx, dword [0x40a7a0]
call fcn.00403e5c
jne 0x408d4f
inc byte [esi]
cmp byte [esi], 3
jne 0x4087f0
push 0xff
push 0
push 0x40a7bc
push 0x40a7bc
push 0x40a7b8
push 0xff
push 0
push 0x408df8
call sub.kernel32.dll_GetVolumeInformationA
mov eax, dword [0x40a7b8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x2c]
call fcn.00405a54
mov edx, dword [ebp - 0x2c]
mov eax, 0x40a7a4
call fcn.00403b64
push dword [0x40a798]
push 0x408e04
mov eax, dword [0x40a7b8]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x30]
mov eax, 8
call fcn.00405a7c
push dword [ebp - 0x30]
mov eax, 0x40a798
mov edx, 3
call fcn.00403dd0
push 0x40a7a4
mov eax, dword [0x40a7a4]
call fcn.00403d84
mov edx, eax
sub edx, 5
mov ecx, 6
mov eax, dword [0x40a7a4]
call fcn.00403f58
mov edx, 0x408e10
mov eax, edi
call fcn.00402920
mov edx, 1
mov eax, edi
call fcn.00402bf4
call fcn.0040262c
mov eax, edi
call fcn.00402a34
call fcn.0040262c
mov edx, eax
sub edx, 0x5a
mov eax, edi
call fcn.00402c10
call fcn.0040262c
mov eax, 0x40a79c
call fcn.00403b10
mov ebx, 0xfffffffd
mov edx, esi
mov eax, edi
call fcn.00402aa0
call fcn.0040262c
cmp byte [esi], 9
jbe 0x408cf1
lea edx, [ebp - 0x34]
xor eax, eax
mov al, byte [esi]
call fcn.00405968
mov edx, dword [ebp - 0x34]
mov eax, 0x40a79c
call fcn.00403d8c
jmp 0x408d1a
push dword [0x40a79c]
push 0x408e2c
lea edx, [ebp - 0x38]
xor eax, eax
mov al, byte [esi]
call fcn.00405968
push dword [ebp - 0x38]
mov eax, 0x40a79c
mov edx, 3
call fcn.00403dd0
inc ebx
jne 0x408cc3
mov eax, edi
call fcn.004029dc
call fcn.0040262c
mov eax, dword [0x40a7a4]
mov edx, dword [0x40a79c]
call fcn.00403e5c
jne 0x408d4f
mov eax, dword [0x4093d8]
mov byte [eax], 2
push 1
push 0x408e30
call sub.kernel32.dll_WinExec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x408d71
lea eax, [ebp - 0x38]
mov edx, 0xa
call fcn.00403b34
ret