Function at 0x4129b0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x664
mov eax, dword [0x4b2a8c]
xor eax, esp
mov dword [esp + 0x660], eax
movzx edx, byte [0x4a784e]
mov eax, dword [str.:.__]
mov cx, word [0x4a784c]
mov dword [esp + 0x38], eax
mov eax, dword [str.______]
mov word [esp + 0x3c], cx
mov ecx, dword [0x4a7854]
mov byte [esp + 0x3e], dl
movzx edx, byte [0x4a7858]
push ebx
push esi
mov dword [esp + 0x48], eax
mov ax, word [0x4a785c]
mov dword [esp + 0x4c], ecx
mov cl, byte [0x4a785e]
push edi
mov byte [esp + 0x54], dl
movzx edx, word [0x260dd98]
mov word [esp + 0x1c], ax
mov eax, dword [0x260de70]
mov byte [esp + 0x1e], cl
lea esi, [edx + eax + 0x4b9000]
mov ecx, 0xff
lea edi, [esp + 0x268]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x104
lea ecx, [esp + 0x5c]
xor ebx, ebx
push 0x20
movsb byte es:[edi], byte [esi]
push ecx
mov byte [esp + 0x1f], bl
mov byte [esp + 0x673], bl
call fcn.0048f0e0
add esp, 0xc
push 0x104
lea edx, [esp + 0x164]
push 0x20
push edx
call fcn.0048f0e0
add esp, 0xc
test byte [0x260dd80], 1
je 0x412abe
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x26c]
push ecx
call fcn.00486660
mov ebx, eax
movsx eax, byte [esp + ebx + 0x270]
push eax
lea edx, [esp + 0x50]
push edx
call fcn.00484d99
add esp, 0x10
test eax, eax
je 0x412abe
cmp byte [esp + ebx + 0x268], 0
je 0x412abe
inc ebx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + ebx + 0x26c]
push ecx
call fcn.00486660
add ebx, eax
add esp, 8
cmp byte [esp + ebx + 0x269], 0x3a
jne 0x412b13
mov al, byte [esp + ebx + 0x268]
cmp al, 0x61
jl 0x412af2
cmp al, 0x7a
jg 0x412af2
sub al, 0x60
jmp 0x412afc
cmp al, 0x41
jl 0x412b13
cmp al, 0x5a
jg 0x412b13
sub al, 0x40
add ebx, 2
mov byte [esp + 0x13], al
mov al, byte [esp + ebx + 0x268]
cmp al, 0x5c
je 0x412b12
cmp al, 0x2f
jne 0x412b13
inc ebx
xor esi, esi
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], 0
mov dl, byte [esp + ebx + 0x268]
mov byte [esp + 0x14], dl
je 0x412b35
mov dword [esp + 0x18], 0
jmp 0x412b8f
mov eax, dword [esp + 0x14]
push eax
call fcn.00405c90
add esp, 4
test eax, eax
je 0x412b50
mov dword [esp + 0x18], 1
jmp 0x412b8f
cmp byte [esp + 0x14], 0x20
jbe 0x412ba5
movzx edi, byte [esp + 0x14]
lea ecx, [esp + 0x4c]
push edi
push ecx
call fcn.00484d99
add esp, 8
test eax, eax
jne 0x412ba5
lea edx, [esp + 0x44]
push edi
push edx
call fcn.00484d99
add esp, 8
test eax, eax
jne 0x412ba5
mov al, byte [esp + 0x14]
sub al, 0x61
cmp al, 0x19
ja 0x412b8f
add byte [esp + 0x14], 0xe0
mov cl, byte [esp + 0x14]
mov byte [esp + esi + 0x58], cl
inc esi
inc ebx
cmp esi, 0x104
jl 0x412b19
cmp byte [esp + ebx + 0x268], 0x2e
jne 0x412c5c
inc ebx
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], 0
mov dl, byte [esp + ebx + 0x268]
mov byte [esp + 0x12], dl
je 0x412bd6
mov dword [esp + 0x18], 0
jmp 0x412c43
mov esi, 0x4bb02b
jmp 0x412be0
mov al, byte [esi - 1]
mov cl, byte [esi]
test al, al
jne 0x412bed
test cl, cl
je 0x412c04
cmp al, dl
ja 0x412bf5
cmp dl, cl
jbe 0x412bfa
add esi, 2
jmp 0x412be0
mov dword [esp + 0x18], 1
jmp 0x412c43
cmp dl, 0x20
jbe 0x412c5c
movzx esi, byte [esp + 0x12]
lea edx, [esp + 0x4c]
push esi
push edx
call fcn.00484d99
add esp, 8
test eax, eax
jne 0x412c5c
lea eax, [esp + 0x44]
push esi
push eax
call fcn.00484d99
add esp, 8
test eax, eax
jne 0x412c5c
mov cl, byte [esp + 0x12]
sub cl, 0x61
cmp cl, 0x19
ja 0x412c43
add byte [esp + 0x12], 0xe0
mov dl, byte [esp + 0x12]
mov byte [esp + edi + 0x160], dl
inc edi
inc ebx
cmp edi, 0x104
jl 0x412bba
movzx ecx, word [0x260dd98]
movzx eax, word [0x260dda6]
add ecx, ebx
cmp ecx, 0xffff
jle 0x412c89
lea edx, [ecx - 0x10000]
shr edx, 4
inc edx
mov esi, edx
neg esi
shl esi, 4
add ecx, esi
add eax, edx
cmp byte [0x260def4], 0
mov word [0x260dd98], cx
mov cl, byte [0x260def6]
je 0x412dba
test cl, cl
jne 0x412dba
lea edi, [esp + 0x20]
call fcn.00434660
test eax, eax
jge 0x412cf7
cmp eax, 0xfffffffe
je 0x412ccc
movzx edx, word [esp + 0x22]
mov ecx, 0xd
call fcn.0042d9f0
mov ax, word [esp + 0x20]
mov word [0x260dda6], ax
xor eax, eax
mov dword [0x260de70], eax
mov dword [0x260de74], eax
mov dword [0x260de78], eax
mov dword [0x260de7c], eax
mov dword [0x260de80], eax
jmp 0x412e38
mov bl, byte [esp + 0x41]
mov di, word [esp + 0x22]
test bl, bl
je 0x412d12
cmp byte [esp + 0x38], 0
je 0x412d1f
cmp byte [esp + 0x3a], 0
jne 0x412d1f
movzx edx, di
mov ecx, 0xd
call fcn.0042d9f0
test bl, bl
je 0x412d2a
cmp byte [esp + 0x38], 0
je 0x412d31
cmp byte [esp + 0x3b], 0
jne 0x412d55
mov al, byte [esp + 0x3f]
movzx cx, al
cmp word [esp + 0x24], cx
ja 0x412d48
cmp byte [0x260de54], al
jbe 0x412d55
movzx edx, di
mov ecx, 0xd
call fcn.0042d9f0
lea esi, [esp + 0x20]
call fcn.004346f0
test eax, eax
jge 0x412d6f
movzx edx, di
mov ecx, 0xb
call fcn.0042d9f0
mov dx, word [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov word [0x260dda6], dx
mov edx, dword [esp + 0x34]
mov dword [0x260de70], eax
mov eax, dword [esp + 0x38]
mov dword [0x260de74], ecx
mov ecx, dword [esp + 0x3c]
mov dword [0x260de78], edx
mov edx, dword [esp + 0x40]
mov dword [0x260de7c], eax
mov dword [0x260de80], ecx
mov dword [0x260de84], edx
jmp 0x412e3d
mov word [0x260dda6], ax
movzx eax, ax
shl eax, 4
neg cl
sbb cl, cl
and cl, 3
mov edx, 0xffff
mov dword [0x260de70], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x3f], cl
mov byte [esp + 0x40], cl
mov byte [esp + 0x38], 0
mov byte [esp + 0x39], 0
mov byte [esp + 0x3a], 1
mov byte [esp + 0x3b], 0
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x3c], 1
mov byte [esp + 0x3d], 1
mov byte [esp + 0x3e], 0
mov dword [0x260de78], edx
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x41], 1
mov byte [esp + 0x42], 0
mov byte [esp + 0x43], 3
mov dword [0x260de74], eax
mov eax, dword [esp + 0x40]
mov dword [0x260de7c], ecx
mov dword [0x260de80], edx
mov dword [0x260de84], eax
movzx ecx, word [0x260dd9c]
mov edx, dword [0x260de28]
lea edi, [ecx + edx + 0x4b9000]
mov cl, byte [0x260dd80]
mov dl, byte [esp + 0x13]
test cl, 2
je 0x412e64
test dl, dl
je 0x412e66
mov byte [edi], dl
mov eax, dword [esp + 0x58]
test cl, 4
je 0x412e73
cmp al, 0x20
je 0x412e7d
mov dword [edi + 1], eax
mov eax, dword [esp + 0x5c]
mov dword [edi + 5], eax
mov ax, word [esp + 0x160]
test cl, 8
je 0x412e8e
cmp al, 0x20
je 0x412e9c
mov cl, byte [esp + 0x162]
mov word [edi + 9], ax
mov byte [edi + 0xb], cl
mov eax, 1
xor ecx, ecx
cmp byte [eax + edi], 0x2a
jne 0x412eb0
mov ecx, 1
jmp 0x412eb4
test ecx, ecx
je 0x412eb8
mov byte [eax + edi], 0x3f
inc eax
cmp eax, 9
jl 0x412ea3
mov eax, 9
xor ecx, ecx
cmp byte [eax + edi], 0x2a
jne 0x412ed2
mov ecx, 1
jmp 0x412ed6
test ecx, ecx
je 0x412eda
mov byte [eax + edi], 0x3f
inc eax
cmp eax, 0xc
jl 0x412ec5
test dl, dl
je 0x412f1c
movzx esi, dl
dec esi
cmp esi, 0x19
ja 0x412f00
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edx, 1
mov ecx, esi
shl edx, cl
test edx, eax
jne 0x412f1c
mov byte [0x260dd80], 0xff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x660]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
push 0xb
push 0x3f
inc edi
push edi
call fcn.00484120
mov ecx, dword [esp + 0x678]
add esp, 0xc
pop edi
test eax, eax
pop esi
setne al
pop ebx
xor ecx, esp
mov byte [0x260dd80], al
call fcn.00482caa
mov esp, ebp
pop ebp
ret