Function at 0x45c40a
Capabilities:
Get disk information
Write file on windows

Disassembly:
lea ecx, [ebp + 8]
call fcn.00492f88
lea ecx, [ebp - 0x10]
call fcn.00492f90
lea ecx, [ebp + 0x54]
call fcn.00492f98
push 0
add esi, 0x1be
push esi
call 0x4ee614
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call 0x4ee62b
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
add dword [eax], eax
add byte [ebp + 0x16], dh
cmp byte [ebp + 0x19], 2
jge 0x45c454
cmp al, 5
je 0x45e1d5
cmp al, 0xf
je 0x45e1d5
cmp byte [ebp + 0x67], 0
mov esi, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x45c4ca
test al, al
je 0x45c4ca
xor ebx, ebx
cmp dword [ebp - 0x5c], ebx
je 0x45c4cc
cmp byte [ebp + 0x19], 2
jge 0x45c4cc
cmp byte [ebp - 0x4e], bl
jne 0x45c4cc
cmp dword [ebp + 0x4c], ebx
jl 0x45c4a2
jg 0x45c488
cmp dword [ebp + 0x48], ebx
jb 0x45c4a2
xor eax, eax
cmp dword [ebp - 0xe8], esi
jne 0x45bd6a
cmp dword [ebp - 0xe4], eax
jne 0x45bd6a
cmp dword [ebp + 0x30], ebx
jl 0x45c4cc
jg 0x45c4ae
cmp dword [ebp + 0x2c], ebx
jb 0x45c4cc
xor eax, eax
cmp dword [ebp - 0x110], ecx
jne 0x45c4c0
cmp dword [ebp - 0x10c], eax
je 0x45c4cc
cmp ecx, ebx
jne 0x45bd6a
jmp 0x45c4cc
xor ebx, ebx
cmp byte [ebp + 7], 0
je 0x45c4ee
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xe8], ebx
dec dword [ecx - 0xe363]
dec dword [ecx - 0x10f63]
dec dword [ecx - 0x10b63]
invalid
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
jl 0x45c4fb
mov byte [edi + 0x1c2], al
mov eax, dword [ebp - 0xa4]
cmp ax, bx
jl 0x45c50c
mov byte [edi + 0x1be], al
cmp dword [ebp + 0x4c], ebx
jg 0x45c538
jl 0x45c518
cmp dword [ebp + 0x48], ebx
jae 0x45c538
cmp dword [ebp + 0x30], ebx
jl 0x45c5b1
jg 0x45c52c
cmp dword [ebp + 0x2c], ebx
jb 0x45c5b1
mov eax, dword [ebp - 0x110]
lea eax, [esi + eax - 1]
jmp 0x45c54e
cmp dword [ebp + 0x30], ebx
jg 0x45c56f
jl 0x45c544
cmp dword [ebp + 0x2c], ebx
mov eax, dword [ebp - 0xe8]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x53]
push ecx
push dword [ebp + 0x40]
lea ecx, [ebp - 6]
cmp dword [ebp + 0x4c], ebx
jl 0x45c5a5
jg 0x45c57b
cmp dword [ebp + 0x48], ebx
jb 0x45c5a5
mov al, byte [ebp - 0x83]
mov byte [edi + 0x1bf], al
mov al, byte [ebp + 0x18]
mov byte [edi + 0x1c0], al
mov al, byte [ebp + 0x28]
mov byte [edi + 0x1c1], al
mov eax, dword [ebp - 0xe8]
mov dword [edi + 0x1c6], eax
cmp dword [ebp + 0x30], ebx
jg 0x45c5bd
jl 0x45c5b1
cmp dword [ebp + 0x2c], ebx
jae 0x45c5bd
cmp dword [ebp + 0x4c], ebx
jl 0x45c5d8
jg 0x45c5bd
cmp dword [ebp + 0x48], ebx
jb 0x45c5d8
mov al, byte [ebp - 0x4c]
mov byte [edi + 0x1c3], al
mov al, byte [ebp - 6]
mov byte [edi + 0x1c4], al
mov al, byte [ebp - 0x78]
mov byte [edi + 0x1c5], al
cmp dword [ebp + 0x30], ebx
jl 0x45c5f0
jg 0x45c5e4
cmp dword [ebp + 0x2c], ebx
jb 0x45c5f0
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x1ca], eax
cmp dword [ebp - 0x5c], ebx
jge 0x45c616
cmp word [ebp - 0xa4], bx
jge 0x45c616
cmp dword [ebp + 0x4c], ebx
jg 0x45c616
jl fcn.0045c60a
cmp dword [ebp + 0x48], ebx
jae 0x45c616
mov esi, dword [ebp + 0x10]
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
jmp 0x45c62c
cmp word [ebp - 0xa4], bx
jge 0x45c660
cmp dword [ebp - 0x5c], ebx
jge 0x45c660
cmp dword [ebp + 0x4c], ebx
jg 0x45c660
jl 0x45c646
cmp dword [ebp + 0x48], ebx
jae 0x45c660
cmp dword [ebp + 0x30], ebx
jg 0x45c660
jl 0x45c652
cmp dword [ebp + 0x2c], ebx
jae 0x45c660
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
push ebx
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp + 0x6c]
call fcn.00494afc
add esp, 0x10
cmp eax, dword [ebp - 0x12c]
jne 0x45e378
cmp edx, dword [ebp - 0x128]
jne 0x45e378
mov eax, dword [ebp - 0x148]
or eax, dword [ebp - 0x144]
mov dword [ebp + 0x3c], 1
jne 0x45c6ac
push esi
call fcn.00497689
pop ecx
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x34]
call fcn.00499b04
add esp, 0xc
test eax, eax
jne 0x45c6dd
push ebx
lea eax, [ebp - 0x54]
push eax
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x6c]
call dword [0x4a6194]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.004976a2
pop ecx
cmp dword [ebp + 0x4c], ebx
jl 0x45c7d9
jg 0x45c6f5
cmp dword [ebp + 0x48], 0x200
jb 0x45c7d9
cmp dword [ebp + 0x30], 0
jl 0x45c7d9
jg 0x45c70e
cmp dword [ebp + 0x2c], 0x200
jbe 0x45c7d9
cmp byte [ebp - 0x82], 0
jle 0x45c7d9
push dword [ebp + 0x20]
push 0
push dword [ebp + 0x10]
call 0x4ee924
add esp, 0xc
push 0
push 0x200
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call 0x4eea49
xor eax, eax
cmp dword [ebp + 0x3c], eax
sete al
cmp byte [ebp + 0x5c], 0
mov esi, eax
mov dword [ebp - 0x80], esi
jne 0x45c7fc
cmp byte [ebp + 0x5d], 0
jne 0x45c7fc
cmp byte [ebp + 0x27], 0
je 0x45e3b3
and dword [ebp + 0x3c], 0
jmp 0x45d5a4
lea ecx, [ebp + 8]
call fcn.004947c2
lea ecx, [ebp - 0x10]
call fcn.004947ca
lea ecx, [ebp + 0x54]
call fcn.004947d2
lea ecx, [ebp + 8]
call fcn.00495596
lea ecx, [ebp + 8]
call fcn.004955d1
lea ecx, [ebp - 0x10]
call fcn.004955d9
lea ecx, [ebp + 0x54]
call fcn.004955e1
lea ecx, [ebp + 0x68]
call fcn.004993df
lea ecx, [ebp + 0x6c]
call fcn.00460331
mov eax, 0x4c1740
test eax, eax
jmp fcn.0045e60b