Function at 0x420420
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6e61c9
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x7cf070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], 0
xor eax, eax
mov dword [ebp - 4], 0
test edx, edx
lea ecx, [ebp - 0x14]
sete al
lea eax, [eax*8 + 1]
mov dword [ebp - 0x2c], eax
call fcn.00420330
mov ecx, str.LSYeeeeehpv_1_IIQUZ_fpz_248ABCDHQWabjjo
mov byte [ebp - 4], 1
call fcn.0045f920
test eax, eax
jne 0x420490
push 0x80004005
call fcn.00402890
mov ecx, dword [ebp - 0x14]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x4204b9
test dx, dx
je 0x4204b5
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x4204b9
add ecx, 4
add eax, 4
test dx, dx
jne 0x420493
xor eax, eax
jmp 0x4204be
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x4204e1
mov ecx, str.GGHIIIIIPUWeeov_036:AHT_kky_._EIJMRS_hjr
call fcn.0045f920
push eax
mov ecx, ebx
call fcn.00404e10
or edi, 0xffffffff
jmp 0x420848
call fcn.004b08d6
mov ecx, eax
test ecx, ecx
jne 0x4204f6
push 0x80004005
call fcn.00402890
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x20], esi
mov ecx, str.P_bbbbbcdoop__0_BLPZ__hklos__99EJPV_gnsx___0_LOUdqx___3_BGVZ_ouw
mov byte [ebp - 4], 2
call fcn.0045f920
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp + 8]
call fcn.004048a0
mov ecx, dword [eax]
test ecx, ecx
jne 0x42052c
push 0x80004005
call fcn.00402890
mov eax, dword [ebp + 8]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420556
test dx, dx
je 0x420552
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420556
add eax, 4
add ecx, 4
test dx, dx
jne 0x420530
xor eax, eax
jmp 0x42055b
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x24]
test eax, eax
sete byte [ebp - 0xd]
or edi, 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42057e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
je 0x4205ec
lea eax, [ebp + 8]
mov ecx, str.NVW______o_1__FJYgkyy__8EKTciuz_79_DSZdhs_..4_OZdftw_18_BBFLZbmp__0APZbdnp_1_ETTWet__5JN__hjm_
push eax
call fcn.0045f920
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00406410
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00405050
mov byte [ebp - 4], 2
mov eax, edi
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4205ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x20]
push esi
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x4207f0
mov ecx, str.FHJJJJJJV_imqv.9ADEHLXXgt___09DSbhkx_7
jmp 0x420820
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jle 0x42081b
push 0x3a
push eax
call fcn.005ed7c5
add esp, 8
test eax, eax
je 0x42081b
sub eax, dword [ebp + 8]
sar eax, 1
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
je 0x42081b
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 8]
call fcn.00404960
mov byte [ebp - 4], 4
lea ecx, [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
sub eax, dword [ebp - 0x24]
dec eax
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004048e0
mov ecx, str.FGGLLLLLS_it_7_EFR_fiw06_HUW_ghlw__4:CCQ_ckmnox__0:AIV_osz____HOXY
mov byte [ebp - 4], 5
call fcn.0045f920
push eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004048a0
push eax
mov ecx, 2
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
push eax
mov dword [ebp - 0x28], ecx
call fcn.004212c0
add esp, 8
test al, al
jne 0x4206b4
mov ecx, str.FFKMMMMM_eqt__IV_ft27CGSVWW_jmz6:CJW_gpt_478CGPip___56_BHPPZdmw
call fcn.0045f920
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x18]
call fcn.004048a0
push eax
lea eax, [ebp - 0x18]
mov ecx, 6
push eax
mov dword [ebp - 0x24], ecx
call fcn.004212c0
add esp, 8
mov byte [ebp - 0xd], 0
test al, al
je 0x4206b8
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0x24]
test al, 4
je 0x4206df
mov edx, dword [ebp - 0x30]
and eax, 0xfffffffb
mov dword [ebp - 0x28], eax
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4206df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 5
mov eax, edi
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420700
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
je 0x42075d
mov ecx, str.HKOdjt999_CJMZ__cinpz_5_JUapvw
call fcn.0045f920
push eax
mov ecx, ebx
call fcn.00404e10
mov byte [ebp - 4], 4
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420736
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, edi
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42082d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42082d
push dword [ebp - 0x18]
mov ecx, str.OZ_bbbbbhhq__337AIKSWdpp__299DMSXis__.8_ITWgmvz__6_HWfmy02259BQUY_defl_5CJMOOYgox_1_BCOWY_gkmrs_19IPPgs__8FPVept____56ABO_hit
push dword [ebp - 0x1c]
call fcn.0045f920
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00402960
mov esi, dword [ebp - 0x20]
add esp, 0x10
push esi
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x4207dc
mov ecx, str.MYhhhhht_6_GPS_dqz_6_EOUX_gv_5::FMW_
call fcn.0045f920
push eax
mov ecx, ebx
call fcn.00404e10
lea ecx, [ebp - 0x18]
call fcn.004025b0
lea ecx, [ebp - 0x1c]
call fcn.004025b0
lea ecx, [ebp - 0x20]
call fcn.004025b0
lea ecx, [ebp - 0x14]
call fcn.004025b0
lea ecx, [ebp + 8]
call fcn.004025b0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x18]
call fcn.004025b0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.004025b0
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jne 0x420805
mov ecx, str.IXXYYYYY__fnrw__2_GJU_gky__4_JWahtu___2
jmp 0x420820
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
push eax
call fcn.004050c0
add esp, 4
add eax, 0x10
mov dword [ebx], eax
jmp 0x42082d
mov ecx, str.KLQSSSSSVeeo5IWetz2AHHL__aop_0_
call fcn.0045f920
push eax
mov ecx, ebx
call fcn.00404e10
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x420848
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420866
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x420885
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret