Function at 0x402330
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x10e8
call fcn.00419060
mov eax, dword [0x457080]
xor eax, esp
mov dword [esp + 0x10e4], eax
mov eax, dword [0x1a2e8d8]
push esi
mov esi, dword [ebp + 0xc]
mov dword [0x45714c], eax
mov eax, dword [0x1a287a4]
mov dword [0x45712c], 0x457130
mov dword [0x1a2e8d8], 0x457110
push edi
test eax, eax
je 0x402386
mov dword [eax + 4], 0x457330
mov eax, dword [0x1a287a4]
mov dword [0x457330], eax
mov eax, dword [0x1a27780]
mov dword [0x457344], 0x1a287a4
mov dword [0x457334], 0x457340
mov dword [0x457340], 0x457330
mov dword [0x1a287a4], 0x457340
test eax, eax
je 0x4023c8
mov dword [eax + 4], 0x457150
mov eax, dword [0x1a27780]
push 0x4290d8
push 0
mov dword [0x457150], eax
mov dword [0x457154], 0x457178
mov dword [0x457178], 0x457150
mov dword [0x45717c], 0x4571a0
mov dword [0x4571a0], 0x457178
mov dword [0x4571a4], 0x4571c8
mov dword [0x4571c8], 0x4571a0
mov dword [0x457200], 0x1a27780
mov dword [0x4571cc], 0x4571fc
mov dword [0x4571fc], 0x4571c8
mov dword [0x1a27780], 0x4571fc
call fcn.0041ed50
mov edi, dword [ebp + 8]
add esp, 8
cmp edi, 2
jl 0x4030c9
push 0x4290dc
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4024d1
push str.Disk_tPart_tFS_tSize_t_tLabel_n
call fcn.00415a40
add esp, 4
mov dword [esp + 0x20], 0x401e90
mov dword [esp + 0x24], 0
xor edi, edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov esi, dword [0x1a2e8d8]
test esi, esi
je 0x4024c6
nop word [eax + eax]
mov eax, dword [esi + 8]
test eax, eax
je 0x4024bf
push edi
lea ecx, [esp + 0x24]
push ecx
push 0x414f40
call eax
add esp, 0xc
test eax, eax
jne 0x4030d0
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x4024a0
inc edi
cmp edi, 3
jl 0x402490
jmp 0x4030d0
push str.COPY
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40264a
cmp edi, 6
jl 0x4030c9
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x20], eax
call esi
add esp, 0xc
mov dword [esp + 0x18], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x24]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x402558
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_copy_file_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x108c]
add esp, 4
push eax
push esi
call fcn.0041f580
add esp, 8
cmp eax, 0xffffffff
je 0x4025c1
mov eax, dword [esp + 0x108e]
mov ecx, 0x4000
and eax, 0xf000
cmp ax, cx
jne 0x4025a6
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.00403800
mov byte [esp + 0x13], al
jmp 0x4025c6
mov ecx, 0x8000
cmp ax, cx
jne 0x4025c1
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.00403650
mov byte [esp + 0x13], al
jmp 0x4025c6
mov byte [esp + 0x13], 0
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x4025e0
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402608
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402627
cmp eax, 0xffffffff
je 0x402627
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [esp + 0x13], 0
je 0x402546
push str.File_copy_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.MKDIR
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40278a
cmp edi, 5
jl 0x4030c9
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x24], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x4026ca
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_create_directory_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov esi, dword [esp + 0x1c]
add esp, 4
mov ecx, esi
call fcn.00409030
test eax, eax
je 0x402701
cmp eax, 8
je 0x402701
push eax
push esi
push str.mkdir__s_failed__d_n
call fcn.00401010
add esp, 0xc
mov byte [esp + 0x13], 0
jmp 0x402706
mov byte [esp + 0x13], 1
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402720
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402748
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402767
cmp eax, 0xffffffff
je 0x402767
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [esp + 0x13], 0
je 0x4026b8
push str.Directory_created_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.MKFS
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402939
cmp edi, 5
jl 0x4030c9
jle 0x4027b3
mov eax, dword [esi + 0x14]
jmp 0x4027b5
xor eax, eax
mov edi, dword [esi + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll__wcsicmp]
push 0x429078
push edi
mov dword [esp + 0x1c], eax
movaps xmmword [esp + 0x28], xmm0
call esi
add esp, 8
test eax, eax
jne 0x4027ee
mov byte [esp + 0x20], 9
jmp 0x40281c
push str.FAT32
push edi
call esi
add esp, 8
test eax, eax
jne 0x402804
mov byte [esp + 0x20], 0xa
jmp 0x40281c
push 0x42908c
push edi
call esi
add esp, 8
test eax, eax
jne 0x402919
mov byte [esp + 0x20], 0xc
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
push 0xa
push 0
push dword [esp + 0x1c]
call esi
add esp, 0xc
mov edi, eax
push 0xa
push 0
push dword [esp + 0x20]
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
mov edx, eax
mov ecx, edi
call fcn.00401350
test al, al
jne 0x402873
push dword [esp + 0x14]
push edi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_create_volume_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x402889
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov dword [esp + 0x2c], eax
push 0x800000
push dword [0x1a2e8f4]
lea edx, [esp + 0x28]
mov ecx, 0x429070
call fcn.0040a390
mov ecx, dword [0x1a2e8e0]
add esp, 8
mov esi, eax
test ecx, ecx
je 0x4028b6
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x4028de
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x4028fd
cmp eax, 0xffffffff
je 0x4028fd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
test esi, esi
jne 0x402927
push str.Volume_created_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push edi
push str.Unsupported_format__s_n
call fcn.00401010
add esp, 8
push str.Failed_to_create_volume_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.LABEL
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402a94
cmp edi, 4
jl 0x4030c9
jle 0x402966
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
jmp 0x40296e
mov dword [esp + 0x1c], 0x4290c8
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x4029c5
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_set_label_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
add esp, 4
xor eax, eax
mov word [esp + 0x1088], ax
push 0x5e
push eax
lea eax, [esp + 0x1092]
push eax
call sub.msvcrt.dll_memset
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x1094]
add esp, 0xc
push esi
push str.0:_s
push 0x30
push eax
call fcn.00401da0
mov ecx, esi
call fcn.00409710
add esp, 0xc
xor ecx, ecx
mov esi, eax
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402a2d
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402a55
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402a74
cmp eax, 0xffffffff
je 0x402a74
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
test esi, esi
jne 0x4029b3
push str.Label_set_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.EXTRACT
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402bb2
cmp edi, 5
jl 0x4030c9
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x24], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x402b14
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_extract_file_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov ecx, dword [esp + 0x1c]
add esp, 4
call fcn.00401bc0
push ecx
xor ecx, ecx
mov byte [esp + 0x17], al
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402b48
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402b70
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402b8f
cmp eax, 0xffffffff
je 0x402b8f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [esp + 0x13], 0
je 0x402b02
push str.File_extract_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.DUMP
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402c0c
cmp edi, 6
jl 0x4030c9
push dword [esi + 0x14]
mov edx, dword [esi + 0xc]
push dword [esi + 0x10]
mov ecx, dword [esi + 8]
call fcn.00402090
add esp, 8
test al, al
je 0x402bfa
push str.File_dump_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.Failed_to_dump_file_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push str.REMOVE
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402d7a
cmp edi, 5
jl 0x4030c9
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x24], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x402c8c
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_remove_file_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x108c]
add esp, 4
mov edx, esi
call fcn.00408d20
mov ecx, esi
test eax, eax
jne 0x402d4b
call fcn.00401470
test eax, eax
jne 0x402d61
mov byte [esp + 0x13], 1
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402ce1
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402d09
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402d28
cmp eax, 0xffffffff
je 0x402d28
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [esp + 0x13], 0
je 0x402c7a
push str.File_remove_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
call fcn.00408e80
test eax, eax
je 0x402cc2
cmp eax, 8
je 0x402cc2
push eax
push esi
push str.remove__s_failed__d_n
call fcn.00401010
add esp, 0xc
mov byte [esp + 0x13], 0
jmp 0x402cc7
push 0x4292b4
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402e89
cmp edi, 4
jl 0x4030c9
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x24], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x402ded
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov esi, dword [esp + 0x1c]
add esp, 4
mov ecx, esi
call fcn.00403a00
test eax, eax
je 0x402e1d
cmp eax, 8
je 0x402e1d
push eax
push esi
push str.list__s_failed__d_n
call fcn.00401010
add esp, 0xc
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402e37
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402e5f
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402e7e
cmp eax, 0xffffffff
je 0x402e7e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
jmp 0x4030d0
push str.MOVE
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x402fd7
cmp edi, 6
jl 0x4030c9
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x10]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x28], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x402f10
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
push str.Failed_to_move_file_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov esi, dword [esp + 0x1c]
add esp, 4
mov edi, dword [esp + 0x1c]
mov edx, esi
mov ecx, edi
call fcn.00409310
test eax, eax
je 0x402f4e
cmp eax, 8
je 0x402f4e
push eax
push esi
push edi
push str.move__s_to__s_failed__d_n
call fcn.00401010
add esp, 0x10
mov byte [esp + 0x13], 0
jmp 0x402f53
mov byte [esp + 0x13], 1
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x402f6d
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x402f95
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x402fb4
cmp eax, 0xffffffff
je 0x402fb4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [esp + 0x13], 0
je 0x402efe
push str.File_move_successfully_n
call fcn.00415a40
add esp, 4
jmp 0x4030d0
push 0x4292f8
push dword [esi + 4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4030c9
cmp edi, 5
jl 0x4030c9
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
push 0xa
push 0
push dword [esi + 8]
mov esi, dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0x24], eax
call esi
add esp, 0xc
mov dword [esp + 0x14], eax
push 0xa
push 0
push edi
call esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edi, eax
mov ecx, esi
mov edx, edi
call fcn.00401350
test al, al
jne 0x40304a
push edi
push esi
push str.Failed_to_open_disk__lu_part__lu_n
call fcn.00415a40
add esp, 0xc
jmp 0x4030d0
push ecx
lea ecx, [esp + 0x34]
call fcn.00407b70
mov ecx, dword [esp + 0x1c]
add esp, 4
call fcn.00401050
push ecx
xor ecx, ecx
call fcn.00407b70
mov ecx, dword [0x1a2e8e0]
add esp, 4
test ecx, ecx
je 0x40307a
call fcn.004140a0
mov eax, dword [0x1a2e8f4]
xorps xmm0, xmm0
mov dword [0x1a2e8e0], 0
movlpd qword [0x1a2e8e8], xmm0
test eax, eax
je 0x4030a2
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, dword [0x1a2e8f0]
mov dword [0x1a2e8f4], 0
test eax, eax
je 0x4030c1
cmp eax, 0xffffffff
je 0x4030c1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
jmp 0x4030d0
mov ecx, dword [esi]
call fcn.00401de0
mov eax, dword [0x1a2e8d8]
mov esi, 0x1a2e8d8
test eax, eax
je 0x4030f7
nop
mov edx, dword [eax + 0x1c]
cmp eax, 0x457130
je 0x4030f5
lea esi, [eax + 0x1c]
mov eax, edx
test eax, eax
jne 0x4030e0
jmp 0x4030f7
mov dword [esi], edx
mov eax, dword [0x1a2e8d8]
mov esi, 0x1a2e8d8
test eax, eax
je 0x40311c
mov edx, dword [eax + 0x1c]
cmp eax, 0x457110
je 0x40311a
lea esi, [eax + 0x1c]
mov eax, edx
test eax, eax
jne 0x403105
jmp 0x40311c
mov dword [esi], edx
mov ecx, dword [0x457334]
test ecx, ecx
je 0x403133
mov eax, dword [0x457330]
mov dword [ecx], eax
mov ecx, dword [0x457334]
mov eax, dword [0x457330]
test eax, eax
je 0x40313f
mov dword [eax + 4], ecx
mov ecx, dword [0x457344]
mov dword [0x457330], 0
mov dword [0x457334], 0
test ecx, ecx
je 0x40316a
mov eax, dword [0x457340]
mov dword [ecx], eax
mov ecx, dword [0x457344]
mov eax, dword [0x457340]
test eax, eax
je 0x403176
mov dword [eax + 4], ecx
mov ecx, dword [0x457154]
mov dword [0x457340], 0
mov dword [0x457344], 0
test ecx, ecx
je 0x4031a1
mov eax, dword [0x457150]
mov dword [ecx], eax
mov ecx, dword [0x457154]
mov eax, dword [0x457150]
test eax, eax
je 0x4031ad
mov dword [eax + 4], ecx
mov ecx, dword [0x45717c]
mov dword [0x457150], 0
mov dword [0x457154], 0
test ecx, ecx
je 0x4031d8
mov eax, dword [0x457178]
mov dword [ecx], eax
mov ecx, dword [0x45717c]
mov eax, dword [0x457178]
test eax, eax
je 0x4031e4
mov dword [eax + 4], ecx
mov ecx, dword [0x4571a4]
mov dword [0x457178], 0
mov dword [0x45717c], 0
test ecx, ecx
je 0x40320f
mov eax, dword [0x4571a0]
mov dword [ecx], eax
mov ecx, dword [0x4571a4]
mov eax, dword [0x4571a0]
test eax, eax
je 0x40321b
mov dword [eax + 4], ecx
mov ecx, dword [0x4571cc]
mov dword [0x4571a0], 0
mov dword [0x4571a4], 0
test ecx, ecx
je 0x403246
mov eax, dword [0x4571c8]
mov dword [ecx], eax
mov ecx, dword [0x4571cc]
mov eax, dword [0x4571c8]
test eax, eax
je 0x403252
mov dword [eax + 4], ecx
mov ecx, dword [0x457200]
mov dword [0x4571c8], 0
mov dword [0x4571cc], 0
test ecx, ecx
je 0x40327d
mov eax, dword [0x4571fc]
mov dword [ecx], eax
mov ecx, dword [0x457200]
mov eax, dword [0x4571fc]
test eax, eax
je 0x403289
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x10ec]
xor eax, eax
pop edi
pop esi
xor ecx, esp
mov dword [0x4571fc], 0
mov dword [0x457200], 0
call fcn.004190af
mov esp, ebp
pop ebp
ret