Function at 0x1007ac80
Capabilities:
Get disk information
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10239204
mov eax, dword fs:[0]
push eax
sub esp, 0x4bc
mov eax, dword [0x102ca474]
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 esi, edx
mov dword [ebp - 0x474], esi
mov ebx, ecx
mov dword [ebp - 0x490], ebx
mov dword [ebp - 0x470], ebx
mov dword [ebp - 0x494], ebx
lea ecx, [ebp - 0x444]
mov dword [ebp - 0x48c], 0
call fcn.1000879d
mov dword [ebp - 4], 1
test esi, esi
jne 0x1007acfd
lea eax, [ebp - 0x444]
mov ecx, ebx
push eax
call fcn.10008e48
jmp 0x1007b706
push str.Kernel32.dll
lea ecx, [ebp - 0x4c4]
call fcn.10005e0a
mov byte [ebp - 4], 2
lea eax, [ebp - 0x4c4]
push eax
call fcn.1008ec20
mov ecx, eax
call fcn.1008ece0
mov edi, eax
mov dword [ebp - 0x488], edi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4c4]
call fcn.10005e05
push str.Psapi.dll
lea ecx, [ebp - 0x4ac]
call fcn.10005e0a
mov byte [ebp - 4], 3
lea eax, [ebp - 0x4ac]
push eax
call fcn.1008ec20
mov ecx, eax
call fcn.1008ece0
mov esi, eax
mov dword [ebp - 0x478], esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4ac]
call fcn.10005e05
test esi, esi
je 0x1007b6f8
test edi, edi
je 0x1007b6f8
lea ecx, [ebp - 0x138]
call fcn.1007c210
cmp dword [ebp - 0x134], 6
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jb 0x1007b005
push str.QueryFullProcessImageNameW
push edi
call ebx
mov esi, eax
test esi, esi
je 0x1007afff
push 0x412
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.101ffde0
add esp, 0xc
mov dword [ebp - 0x42c], 0x208
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x428]
push eax
push 0
push dword [ebp - 0x474]
call esi
test eax, eax
je 0x1007afff
mov eax, dword [ebp - 0x42c]
cmp eax, 0x208
jae 0x1007ae1d
add eax, eax
cmp eax, 0x412
jae 0x1007b73d
xor ecx, ecx
mov word [ebp + eax - 0x428], cx
lea eax, [ebp - 0x428]
push eax
call fcn.10005f42
add esp, 4
lea ecx, [ebp - 0x444]
mov ebx, eax
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x470], eax
cmp ebx, eax
ja 0x1007ae87
mov esi, edi
cmp eax, 8
jb 0x1007ae51
mov esi, dword [edi]
push ebx
lea eax, [ebp - 0x428]
mov dword [edi + 0x10], ebx
push eax
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x46c], 0
lea eax, [ebp - 0x46c]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1007aff3
lea ecx, [ebp - 0x444]
call fcn.1000608d
cmp ebx, eax
ja 0x1007b742
lea ecx, [ebp - 0x444]
call fcn.1000608d
lea ecx, [ebp - 0x444]
mov esi, eax
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x480], ecx
cmp ecx, esi
ja 0x1007aef1
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1007aef1
lea eax, [edx + ecx]
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1007af03
or ecx, 0xffffffff
jmp 0x1007af0b
cmp ecx, 0x1000
jb 0x1007af36
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1007b747
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1007af47
test ecx, ecx
je 0x1007af45
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1007af47
xor eax, eax
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x428]
push ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x46c]
push eax
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x484], 0
lea eax, [ebp - 0x484]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
mov ecx, dword [ebp - 0x470]
add esp, 8
cmp ecx, 8
jb 0x1007afcd
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1007afb9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007b747
mov eax, edx
push ecx
push eax
call fcn.101e74c0
mov eax, dword [ebp - 0x46c]
add esp, 8
mov dword [edi], eax
jmp 0x1007aff3
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x46c]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [ebp - 0x488]
mov esi, dword [ebp - 0x478]
lea ecx, [ebp - 0x444]
call fcn.100086fc
test al, al
je 0x1007b42a
push str.GetProcessImageFileNameW
push esi
call ebx
mov esi, eax
test esi, esi
jne 0x1007b038
push str.GetProcessImageFileNameW
push edi
call ebx
mov esi, eax
test esi, esi
je 0x1007b25e
push 0x412
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.101ffde0
add esp, 0xc
lea eax, [ebp - 0x428]
push 0x208
push eax
push dword [ebp - 0x474]
call esi
lea ecx, [eax - 1]
cmp ecx, 0x206
ja 0x1007b25e
add eax, eax
cmp eax, 0x412
jae 0x1007b73d
xor ecx, ecx
mov word [ebp + eax - 0x428], cx
lea eax, [ebp - 0x428]
push eax
call fcn.10005f42
add esp, 4
lea ecx, [ebp - 0x444]
mov ebx, eax
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x47c], eax
cmp ebx, eax
ja 0x1007b0f2
mov esi, edi
cmp eax, 8
jb 0x1007b0bc
mov esi, dword [edi]
push ebx
lea eax, [ebp - 0x428]
mov dword [edi + 0x10], ebx
push eax
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x470], 0
lea eax, [ebp - 0x470]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1007b25e
lea ecx, [ebp - 0x444]
call fcn.1000608d
cmp ebx, eax
ja 0x1007b74c
lea ecx, [ebp - 0x444]
call fcn.1000608d
lea ecx, [ebp - 0x444]
mov esi, eax
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x484], ecx
cmp ecx, esi
ja 0x1007b15c
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1007b15c
lea eax, [edx + ecx]
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x484]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1007b16e
or ecx, 0xffffffff
jmp 0x1007b176
cmp ecx, 0x1000
jb 0x1007b1a1
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1007b747
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1007b1b2
test ecx, ecx
je 0x1007b1b0
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1007b1b2
xor eax, eax
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x428]
push ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x46c]
push eax
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x480], 0
lea eax, [ebp - 0x480]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
mov ecx, dword [ebp - 0x47c]
add esp, 8
cmp ecx, 8
jb 0x1007b238
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1007b224
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007b747
mov eax, edx
push ecx
push eax
call fcn.101e74c0
mov eax, dword [ebp - 0x46c]
add esp, 8
mov dword [edi], eax
jmp 0x1007b25e
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x46c]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
lea ecx, [ebp - 0x444]
call fcn.100086fc
test al, al
jne 0x1007b42a
push 0x410
call fcn.101e7526
add esp, 4
mov ebx, eax
push 0x410
push 0
push ebx
call fcn.101ffde0
add esp, 0xc
mov dword [ebp - 0x448], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x450]
movq qword [ebp - 0x450], xmm0
call fcn.100086d6
mov byte [ebp - 4], 4
call fcn.100767c0
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x42c], 0
call fcn.10008e1d
test eax, eax
je 0x1007b412
lea ecx, [ebp - 0x450]
call fcn.10005e30
xor esi, esi
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x46c], esi
nop
mov edi, dword [eax]
add edi, esi
mov ecx, edi
call fcn.10008710
cmp eax, 3
jb 0x1007b327
mov ecx, edi
call fcn.10005e30
mov ecx, eax
mov edx, dword [eax + 0x14]
cmp edx, 8
jb 0x1007b313
mov ecx, dword [eax]
cmp word [ecx + 4], 0x5c
jne 0x1007b327
cmp edx, 8
jb 0x1007b321
mov eax, dword [eax]
xor ecx, ecx
mov word [eax + 4], cx
push 0x208
push ebx
mov ecx, edi
call fcn.10008714
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x1007b342
mov word [ebx], ax
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x1007b347
sub esi, ecx
sar esi, 1
je 0x1007b381
lea ecx, [ebp - 0x444]
call fcn.10008710
cmp esi, eax
jae 0x1007b381
push esi
push ebx
lea ecx, [ebp - 0x444]
call fcn.10008714
push eax
call fcn.1020dbc2
add esp, 0xc
test eax, eax
je 0x1007b3b7
mov edi, dword [ebp - 0x42c]
lea ecx, [ebp - 0x450]
mov esi, dword [ebp - 0x46c]
inc edi
add esi, 0x18
mov dword [ebp - 0x42c], edi
mov dword [ebp - 0x46c], esi
call fcn.10008e1d
cmp edi, eax
jae 0x1007b412
mov eax, dword [ebp - 0x470]
jmp 0x1007b2f0
lea ecx, [ebp - 0x468]
call fcn.1000879d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x444]
call fcn.10008714
mov ecx, edi
lea eax, [eax + esi*2]
push eax
call fcn.10008714
push eax
lea eax, [ebp - 0x468]
push 0x10284684
push eax
call fcn.100773d0
add esp, 0x10
lea eax, [ebp - 0x468]
lea ecx, [ebp - 0x444]
push eax
call fcn.1003a660
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x468]
call fcn.10005e05
push ebx
call fcn.101e7521
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x450]
call fcn.100086d1
lea ecx, [ebp - 0x444]
call fcn.100086fc
test al, al
je 0x1007b695
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetModuleFileNameExW
push dword [ebp - 0x478]
call edi
mov esi, eax
test esi, esi
jne 0x1007b46d
push str.GetModuleFileNameExW
push dword [ebp - 0x488]
call edi
mov esi, eax
test esi, esi
je 0x1007b695
push 0x412
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.101ffde0
add esp, 0xc
lea eax, [ebp - 0x428]
push 0x208
push eax
push 0
push dword [ebp - 0x474]
call esi
lea ecx, [eax - 1]
cmp ecx, 0x206
ja 0x1007b695
add eax, eax
cmp eax, 0x412
jae 0x1007b73d
xor ecx, ecx
mov word [ebp + eax - 0x428], cx
lea eax, [ebp - 0x428]
push eax
call fcn.10005f42
add esp, 4
lea ecx, [ebp - 0x444]
mov ebx, eax
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x47c], eax
cmp ebx, eax
ja 0x1007b529
mov esi, edi
cmp eax, 8
jb 0x1007b4f3
mov esi, dword [edi]
push ebx
lea eax, [ebp - 0x428]
mov dword [edi + 0x10], ebx
push eax
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x470], 0
lea eax, [ebp - 0x470]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1007b695
lea ecx, [ebp - 0x444]
call fcn.1000608d
cmp ebx, eax
ja 0x1007b751
lea ecx, [ebp - 0x444]
call fcn.1000608d
lea ecx, [ebp - 0x444]
mov esi, eax
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x484], ecx
cmp ecx, esi
ja 0x1007b593
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1007b593
lea eax, [edx + ecx]
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x484]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1007b5a5
or ecx, 0xffffffff
jmp 0x1007b5ad
cmp ecx, 0x1000
jb 0x1007b5d8
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1007b747
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1007b5e9
test ecx, ecx
je 0x1007b5e7
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1007b5e9
xor eax, eax
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x428]
push ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x474]
push eax
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x480], 0
lea eax, [ebp - 0x480]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
mov ecx, dword [ebp - 0x47c]
add esp, 8
cmp ecx, 8
jb 0x1007b66f
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1007b65b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007b747
mov eax, edx
push ecx
push eax
call fcn.101e74c0
mov eax, dword [ebp - 0x474]
add esp, 8
mov dword [edi], eax
jmp 0x1007b695
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x474]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
lea edx, [ebp - 0x444]
lea ecx, [ebp - 0x4ac]
call fcn.10078670
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x444]
push eax
call fcn.10008766
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4ac]
call fcn.10005e05
mov ecx, dword [ebp - 0x490]
lea eax, [ebp - 0x444]
push eax
call fcn.10008e48
mov dword [ebp - 0x48c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x444]
call fcn.10005e05
mov eax, dword [ebp - 0x490]
jmp 0x1007b721
lea eax, [ebp - 0x444]
mov ecx, ebx
push eax
call fcn.10008e48
mov dword [ebp - 0x48c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x444]
call fcn.10005e05
mov eax, ebx
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.101e7040
mov esp, ebp
pop ebp
ret
call fcn.101e799c
call fcn.1000604b
call fcn.102086be
call fcn.1000604b
call fcn.1000604b
int3