Function at 0x4038ce
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 8
call fcn.0043fb7d
add esp, 4
mov dword [ebp - 0x14], eax
mov edi, eax
mov esi, 0x4788ac
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 0x18], 0
push 8
call fcn.0043fb7d
add esp, 4
mov dword [ebp - 0x1c], eax
mov edi, eax
mov esi, 0x4788ac
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0x41
xor ecx, ecx
lea eax, [ebp - 8]
mov ebx, eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, 0x1a
jg 0x403ad3
push 0x80000101
push 0
push dword [ebp - 4]
push 1
mov ebx, 0x140
call fcn.004409d0
add esp, 0x10
mov dword [ebp - 0x24], eax
push 0x478e4d
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x4039a1
push ebx
call fcn.0043fb83
add esp, 4
mov dword [ebp - 0x2c], esp
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x4039c3
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x4039d6
push ebx
call fcn.0043fb83
add esp, 4
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 3
jne 0x403ac9
inc dword [ebp - 0x10]
push 0x80000101
push 0
push dword [ebp - 4]
push 1
mov ebx, 0x140
call fcn.004409d0
add esp, 0x10
mov dword [ebp - 0x24], eax
push 0x478e4d
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x403a30
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x14]
push eax
push 4
mov eax, 2
call fcn.0043ffe0
add esp, 8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x30], ebx
call fcn.004011ea
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 0x30]
mov dword [edi], 1
add edi, 4
mov eax, ecx
inc eax
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x403a73
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x34]
inc eax
shl eax, 2
add eax, 8
push eax
push dword [ebp - 0x30]
call fcn.0043fba1
add esp, 8
mov dword [ebp - 0x14], eax
mov edi, eax
add edi, 8
mov eax, dword [ebp - 0x34]
shl eax, 2
add edi, eax
mov eax, dword [ebp - 0x2c]
push edi
test eax, eax
je 0x403ab6
push eax
mov ebx, eax
call fcn.0040162e
inc eax
push eax
call fcn.0043fb7d
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edi], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403ac9
push ebx
call fcn.0043fb83
add esp, 4
inc dword [ebp - 4]
pop ebx
pop ecx
jmp 0x40394c
add esp, 8
mov ebx, dword [ebp - 0x14]
call fcn.00401699
xor ecx, ecx
push eax
lea eax, [ebp - 8]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x403dc9
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x403b12
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x403b25
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push 0x478e4f
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0x20
push dword [ebp - 0x28]
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403b78
push ebx
call fcn.0043fb83
add esp, 4
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x403b8c
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
push 0x478de2
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403cb1
push 0x478de0
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403be2
push 0x478e68
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403be2
mov eax, 1
jmp 0x403be4
xor eax, eax
test eax, eax
je 0x403c77
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x403c09
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x403c1c
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push dword [ebp - 0x18]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x403c54
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x244
call fcn.00440b60
add esp, 0x10
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403c77
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x44]
push eax
push 1
push 0
push 0
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x403ca8
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
jmp 0x403b90
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x403cce
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x403ce1
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x403d16
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x238
call fcn.00440dc0
add esp, 0x10
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403d39
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x403d56
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x403d69
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push 0x478e81
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x403d9e
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x238
call fcn.00440dc0
add esp, 0x10
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403dc1
push ebx
call fcn.0043fb83
add esp, 4
pop eax
pop ebx
pop ecx
jmp 0x403ae7
add esp, 0xc
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
push str..key
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x403e09
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x44]
push eax
push 0
push 0x20
push dword [ebp - 0x28]
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403e3a
push ebx
call fcn.0043fb83
add esp, 4
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x403e4e
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
push 0x478de2
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403f5e
push 0x478de0
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403ea4
push 0x478e68
push dword [ebp - 0x18]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x403ea4
mov eax, 1
jmp 0x403ea6
xor eax, eax
test eax, eax
je 0x403f24
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
push dword [ebp - 0x18]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x403eee
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x403f01
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x244
call fcn.00440b60
add esp, 0x10
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x403f24
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x44]
push eax
push 1
push 0
push 0
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x403f55
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
jmp 0x403e52
push 0
push 0
push 0
push 0x80000004
push 0
push 0x478e97
push 0x80000004
push 0
mov eax, dword [0x78a377]
test eax, eax
jne 0x403f85
mov eax, 0x478de2
push eax
push 3
mov ebx, 0x190
call fcn.00440eb0
add esp, 0x28
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x1c]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x403fbd
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x403fb9
imul eax, dword [ebx]
jmp 0x403fae
mov ecx, eax
test ecx, ecx
je 0x403fdc
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x403fd5
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x403fc3
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp - 0x1c]
call fcn.00401699
xor ecx, ecx
push eax
lea eax, [ebp - 0x20]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x4041f6
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 0x1c]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x20]
dec eax
jns 0x404039
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40404c
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40408c
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40409f
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x4040c5
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x30], 1
jne 0x404129
mov ebx, dword [ebp - 0x1c]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x20]
dec eax
jns 0x4040ec
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4040ff
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x38], ebx
push str.conf
mov ebx, dword [ebp - 0x38]
push dword [ebx]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x404129
mov eax, 1
jmp 0x40412b
xor eax, eax
test eax, eax
je 0x4041ee
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 0x1c]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x20]
dec eax
jns 0x404165
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x404178
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x4041b8
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x4041cb
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x244
call fcn.00440b60
add esp, 0x10
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x4041ee
push ebx
call fcn.0043fb83
add esp, 4
pop eax
pop ebx
pop ecx
jmp 0x403ff9
add esp, 0xc
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
push 0x478e9e
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x404236
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x404249
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x244
call fcn.00440b60
add esp, 0x10
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40426c
push ebx
call fcn.0043fb83
add esp, 4
push dword [ebp - 0x44]
mov eax, 1
call fcn.00440b40
add esp, 4
mov ebx, dword [ebp - 0x14]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x40429a
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x404296
imul eax, dword [ebx]
jmp 0x40428b
mov ecx, eax
test ecx, ecx
je 0x4042b9
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4042b2
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4042a0
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x4042d1
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x1c]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4042ef
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4042eb
imul eax, dword [ebx]
jmp 0x4042e0
mov ecx, eax
test ecx, ecx
je 0x40430e
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x404307
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4042f5
call fcn.0043fb83
add esp, 4
mov esp, ebp
pop ebp
ret