Function at 0x48c624
Capabilities:
Get disk information
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x8f0
push ebx
push esi
mov eax, 0x4d88a8
push edi
push eax
mov dword [ebp + 0x50], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebp + 0x78]
cmp word [esi], 0x2a
push 2
sete byte [ebp + 0x62]
xor edi, edi
cmp byte [ebp + 0x62], 0
pop ebx
je 0x48c65c
add esi, ebx
mov dword [ebp + 0x78], esi
push ebx
push esi
push 0x4c86b0
call fcn.0043f11b
add esp, 0xc
test al, al
mov byte [ebp + 0x3e], al
jne 0x48c689
push ebx
push esi
push 0x4c86ac
call fcn.0043f11b
add esp, 0xc
test al, al
mov byte [ebp + 0x6f], 0
je 0x48c68d
mov byte [ebp + 0x6f], 1
push ebx
push esi
push 0x4c445c
call fcn.0043f11b
push 3
push esi
push 0x4c86a8
mov byte [ebp + 0x6d], al
call fcn.0043f11b
push ebx
push esi
push 0x4c4450
mov byte [ebp - 0x19], al
call fcn.0043f11b
add esp, 0x24
cmp byte [ebp + 0x6f], 0
mov byte [ebp + 0x61], al
jne 0x48c6d7
cmp byte [ebp + 0x6d], 0
jne 0x48c6d7
cmp byte [ebp - 0x19], 0
jne 0x48c6d7
test al, al
mov dword [ebp + 0x10], edi
je 0x48c6de
mov dword [ebp + 0x10], 1
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
pop ecx
push 5
lea ecx, [ebp + 0x58]
call fcn.004441bf
push 0x14
lea ecx, [ebp + 0x48]
call fcn.004441bf
lea ecx, [ebp + 0x24]
call fcn.004441a1
or dword [ebp + 0x20], 0xffffffff
mov eax, dword [ebp + 0x10]
cmp byte [ebp + 0x61], 0
mov dword [ebp + 0xc], eax
sete al
dec al
push 0x43
pop edx
mov dword [ebp + 0x30], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x2c], edi
and eax, 0x55
mov dword [ebp - 0x54], edi
mov dword [ebp + 0x64], edi
mov byte [ebp + 0x6b], al
mov dword [ebp - 0x44], edi
push 6
pop ebx
xor eax, eax
mov byte [ebp - 0xec], 0
mov ecx, ebx
lea edi, [ebp - 0xeb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov ecx, ebx
lea edi, [ebp - 0xcf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0xec]
push eax
push edx
mov dword [ebp - 0x40], 0x3e8
mov byte [ebp + 0x42], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x6c], 0
mov byte [ebp + 0x29], 0
mov dword [ebp - 0x34], edx
mov byte [ebp + 0x43], dl
mov byte [ebp - 2], 0
mov byte [ebp + 0x63], 0
mov dword [ebp + 0x1c], eax
mov byte [ebp - 0xd0], 0
call fcn.00441d41
pop ecx
mov byte [ebp + 0x41], 0
mov byte [ebp + 0x60], 0
mov byte [ebp + 0x57], 0
pop ecx
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
cmp ax, 0x2d
je 0x48c7bb
cmp ax, 0x3d
jne 0x48ca8e
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4c86a4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x48c7d8
mov byte [ebp + 0x42], 1
jmp 0x48c7a5
push ebx
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.004460ea
add esp, 0xc
test al, al
je 0x48c7f7
mov dword [ebp - 0x54], 1
jmp 0x48c7a5
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c56ec
call fcn.004460ea
add esp, 0xc
test al, al
je 0x48c814
mov byte [ebp + 0x57], 0x10
jmp 0x48c7a5
push ebx
lea eax, [ebp + 0x78]
push eax
push 0x4c1ab4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x48c833
mov byte [ebp + 0x60], 1
jmp 0x48c7a5
push ebx
push dword [ebp + 0x78]
push str._from:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48c892
mov edi, dword [ebp + 0x78]
add edi, 0xc
xor esi, esi
mov si, word [edi]
lea eax, [ebp + 0x78]
push eax
and esi, 0xffdf
call fcn.00408ddd
cmp si, 0x41
pop ecx
jb 0x48c7a5
cmp si, 0x5a
ja 0x48c7a5
push dword [ebp + 0x78]
lea eax, [ebp - 0xec]
push edi
push eax
mov dword [ebp - 0x34], esi
call fcn.0044943b
add esp, 0xc
jmp 0x48c7a5
push ebx
push dword [ebp + 0x78]
push str._SKIP
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48c8df
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], 0x42
call fcn.004504ce
mov al, byte [ebp + 4]
mov byte [ebp - 2], al
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
add esp, 0x10
jmp 0x48c7a5
push 8
push dword [ebp + 0x78]
push str._skiptp:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48c9c1
add dword [ebp + 0x78], 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
cmp word [ebp - 0x44], 0x3c
pop ecx
jge 0x48ca47
xor eax, eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
lea edi, [ebp - 0xa4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
movzx eax, byte [ebp + 0x63]
mov edi, dword [ebp + 0x78]
mov ecx, eax
shl ecx, 4
lea esi, [ebp + ecx - 0x880]
add esi, eax
push 1
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00452591
add esp, 0xc
test eax, eax
setge al
test al, al
mov byte [esi], al
jne 0x48c986
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.00488005
test eax, eax
pop ecx
pop ecx
jle 0x48ca47
push 0x10
lea eax, [ebp - 0xb4]
push eax
inc esi
push esi
call fcn.00413fe3
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
add esp, 0xc
inc byte [ebp + 0x63]
test ax, ax
je 0x48ca47
call fcn.0040f4c7
test al, al
jne 0x48ca47
add dword [ebp + 0x78], 2
jmp 0x48c912
push 8
push dword [ebp + 0x78]
push str._skippt:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48ca55
add dword [ebp + 0x78], 0x10
or eax, 0xffffffff
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
jmp 0x48ca40
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0048825f
test eax, eax
pop ecx
pop ecx
jle 0x48ca47
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0048825f
test eax, eax
pop ecx
pop ecx
jle 0x48ca47
movsx eax, word [ebp - 0x44]
mov cx, word [ebp - 0x88]
shl eax, 2
inc dword [ebp - 0x44]
mov word [ebp + eax - 0x1dc], cx
mov cx, word [ebp - 0x74]
mov word [ebp + eax - 0x1da], cx
cmp word [ebp - 0x44], 0x3c
jl 0x48c9f2
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
jmp 0x48c7a4
push ebx
lea eax, [ebp + 0x78]
push eax
push 0x4c867c
call fcn.004460ea
add esp, 0xc
test al, al
je 0x48ca74
mov byte [ebp + 0x41], 1
jmp 0x48c7a5
push ebx
lea eax, [ebp + 0x78]
push eax
push 0x4c8674
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x48c7a5
mov edx, dword [ebp + 0x78]
mov ax, word [edx]
test ax, ax
je 0x48caf5
xor esi, esi
inc esi
cmp ax, 0x2a
jne 0x48cac0
lea ecx, [edx + 2]
cmp word [ecx], ax
jne 0x48cab5
mov edx, ecx
mov dword [ebp + 0xc], esi
mov byte [ebp + 0x57], 0x10
jmp 0x48cae8
cmp ax, 0x2a
jne 0x48cac0
mov dword [ebp + 0xc], esi
jmp 0x48cae8
cmp ax, 0x26
jne 0x48cacc
or dword [ebp - 0x18], 8
jmp 0x48cae8
cmp ax, 0x2d
jne 0x48caf5
xor eax, eax
mov ax, word [edx + 2]
push eax
call fcn.00443c3d
add esp, 4
test al, al
jne 0x48caf5
mov dword [ebp + 0x2c], esi
inc edx
inc edx
mov ax, word [edx]
test ax, ax
mov dword [ebp + 0x78], edx
jne 0x48ca9c
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
call fcn.00441d6a
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
test ax, ax
jne 0x48cb1d
or dword [ebp + 0x64], 0xffffffff
or dword [ebp + 0x20], 0xffffffff
and dword [ebp - 0x78], 0
and dword [ebp + 8], 0
test ax, ax
push 0x2c
pop esi
je 0x48ce28
push esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00446f11
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], si
jne 0x48cb99
add dword [ebp + 0x78], 2
mov esi, dword [ebp + 0x78]
push 0x2c
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00446f11
xor eax, eax
mov ax, word [esi]
mov edi, 0xffdf
add esp, 0xc
and eax, edi
cmp ax, 0x41
jb 0x48cb94
cmp ax, 0x5a
ja 0x48cb94
push dword [ebp + 0x78]
mov byte [ebp + 0x43], al
mov byte [ebp + 0x6b], al
lea eax, [ebp - 0xd0]
push esi
push eax
call fcn.0044943b
add esp, 0xc
push 0x2c
pop esi
jmp 0x48cb9e
mov edi, 0xffdf
mov eax, dword [ebp + 0x78]
cmp word [eax], si
jne 0x48cbbb
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044715e
add esp, 0xc
mov eax, dword [ebp + 0x78]
cmp word [eax], si
jne 0x48cc3a
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov dword [ebp + 4], eax
lea eax, [ebp + 4]
push eax
call fcn.0043dcd9
push esi
lea eax, [ebp + 0x78]
call fcn.00405636
mov edx, dword [ebp + 4]
pop ecx
pop ecx
xor ecx, ecx
mov cx, word [edx]
mov eax, ecx
and eax, edi
cmp dword [ebp + 0x64], 0
jg 0x48cbfc
push 0x2a
pop ebx
cmp cx, bx
jne 0x48cbfc
mov dword [ebp - 0x78], ebx
cmp ax, 0x41
jb 0x48cc23
cmp ax, 0x5a
ja 0x48cc23
push dword [ebp + 0x78]
mov byte [ebp + 0x43], al
mov byte [ebp + 0x6b], al
push edx
lea eax, [ebp - 0xd0]
push eax
call fcn.0044943b
add esp, 0xc
jmp 0x48cc3a
cmp cx, 0x3f
jne 0x48cc3a
cmp byte [ebp + 0x6f], 0
jne 0x48cc35
cmp byte [ebp + 0x6d], 0
je 0x48cc3a
mov al, byte [edx]
mov byte [ebp + 0x6b], al
mov edx, dword [ebp + 0x78]
cmp word [edx], si
jne 0x48cccc
xor eax, eax
lea ecx, [edx + 2]
mov ax, word [ecx]
push eax
call fcn.00443c3d
add esp, 4
test al, al
je 0x48cc7a
push esi
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], ecx
call fcn.0044715e
mov edx, dword [ebp + 0x78]
add esp, 0xc
cmp word [edx], 0
je 0x48cc7a
inc edx
inc edx
cmp word [edx], si
jne 0x48cccc
inc edx
lea eax, [ebp + 4]
inc edx
push eax
mov dword [ebp + 0x78], edx
mov dword [ebp + 4], edx
call fcn.0043dcd9
push esi
lea eax, [ebp + 0x78]
call fcn.00405636
pop ecx
pop ecx
mov ecx, dword [ebp + 4]
xor eax, eax
mov ax, word [ecx]
and eax, edi
cmp ax, 0x41
jb 0x48cccc
cmp ax, 0x5a
ja 0x48cccc
push dword [ebp + 0x78]
movsx ax, al
mov word [ebp - 0x34], ax
push ecx
lea eax, [ebp - 0xec]
push eax
call fcn.0044943b
add esp, 0xc
mov esi, dword [ebp + 0x24]
xor edx, edx
mov dx, word [esi]
mov dword [ebp + 0x78], esi
mov ecx, edx
push edx
and ecx, edi
call fcn.00443c3d
add esp, 4
test al, al
jne 0x48cd5a
cmp dx, 0x2d
jne 0x48cd01
xor eax, eax
mov ax, word [esi + 2]
push eax
call fcn.00443c3d
add esp, 4
test al, al
jne 0x48cd5a
cmp cx, 0x46
jne 0x48cd1a
add esi, 2
or dword [ebp + 8], 0xffffffff
mov byte [ebp + 0x6e], 0xc
mov dword [ebp + 0x78], esi
jmp 0x48cd9b
cmp cx, 0x55
je 0x48cd43
cmp cx, 0x52
je 0x48cd43
cmp dx, 0x3a
je 0x48cd9b
cmp dx, 0x23
je 0x48cd9b
xor ebx, ebx
cmp dword [ebp + 0x2c], ebx
jne 0x48cd9d
cmp dx, bx
je 0x48cd9d
jmp 0x48d060
add esi, 2
mov byte [ebp + 0x6e], 0xc
mov dword [ebp + 8], 1
mov dword [ebp + 0x78], esi
mov byte [ebp + 0x29], 1
jmp 0x48cd9b
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x60], esi
call fcn.0044073a
movzx esi, word [esi]
test si, si
pop ecx
pop ecx
je 0x48cd91
mov eax, esi
cmp ax, 0x3a
je 0x48cd91
cmp ax, 0x23
je 0x48cd91
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
test ax, ax
jne 0x48cd76
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
xor ebx, ebx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x48cdb4
mov eax, dword [ebp + 0x58]
cmp word [eax], bx
je 0x48cdb4
mov dword [ebp + 0x2c], 1
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
cmp ax, 0x3a
pop ecx
je 0x48cdd4
cmp ax, 0x23
jne 0x48ce2a
mov byte [ebp + 0x6c], 1
cmp byte [ebp + 0x6e], 0
jne 0x48cddf
cmp dword [ebp + 0x20], ebx
jge 0x48cde3
mov byte [ebp + 0x6c], 0
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
pop ecx
jne 0x48ce14
movzx eax, word [eax + 2]
push eax
call fcn.00443c3d
add esp, 4
test al, al
jne 0x48ce14
mov dword [ebp + 0x2c], 1
jmp 0x48ce2a
push 0x2c
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044715e
add esp, 0xc
jmp 0x48ce2a
xor ebx, ebx
cmp byte [ebp + 0x6c], 0
mov edi, dword [ebp + 0x64]
push 4
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x2c], edi
pop ecx
je 0x48ce7a
cmp edi, ebx
jg 0x48ce4c
xor esi, esi
inc esi
jmp 0x48d065
cmp edi, ecx
jg 0x48ce53
dec edi
jmp 0x48ce5a
lea edi, [edi*4 - 0x10]
cmp edi, ebx
mov dword [ebp + 0x64], edi
jl 0x48ce68
cmp edi, ecx
jge 0x48ce6c
inc edi
jmp 0x48ce77
cmp edi, ecx
jl 0x48ce7a
mov eax, edi
cdq
mov esi, ecx
idiv esi
add eax, ecx
mov edi, eax
mov dword [ebp + 0x64], edi
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 5
push eax
lea ecx, [ebp + 0x58]
call fcn.004441e6
mov esi, dword [ebp + 0x58]
mov ax, word [esi]
cmp ax, 0x61
jb 0x48cea6
cmp ax, 0x7a
ja 0x48cea6
add word [esi], 0xffe0
cmp byte [ebp + 0x6e], 0
mov byte [ebp - 1], 0
jne 0x48cef0
cmp dword [ebp + 0x2c], ebx
jne 0x48cef0
mov ax, word [esi]
cmp ax, 0x100
jae 0x48cef0
cmp ax, 0x41
jb 0x48ceca
cmp ax, 0x5a
jbe 0x48cef0
cmp dword [ebp + 0x20], ebx
mov word [esi], bx
jl 0x48ceda
cmp edi, 1
jl 0x48ceda
mov dword [ebp - 0x28], edi
cmp byte [ebp + 0x6c], 0
je 0x48cef0
cmp dword [ebp + 0x20], ebx
jl 0x48cef0
cmp edi, ebx
jl 0x48cef0
mov dword [ebp - 0x28], edi
mov byte [ebp - 1], 1
cmp dword [ebp + 0x10], ebx
je 0x48ceff
test byte [ebp + 0x30], 1
mov byte [ebp + 0x40], 1
jne 0x48cf03
mov byte [ebp + 0x40], 0
cmp dword [ebp + 0x10], ebx
je 0x48cf12
test byte [ebp + 0x30], 2
je 0x48cf12
mov byte [ebp + 0x41], 1
cmp byte [ebp + 0x3e], 0
jne 0x48cf27
cmp dword [ebp + 0x10], ebx
je 0x48cf23
test byte [ebp + 0x30], 4
jne 0x48cf27
xor cl, cl
jmp 0x48cf29
mov cl, 1
mov al, byte [ebp + 0x30]
and al, 0x10
mov byte [ebp - 0x4d], al
mov al, byte [ebp + 0x30]
and al, 0x40
test byte [ebp + 0x30], 0x20
mov byte [ebp - 0x4e], al
je 0x48cf46
mov dword [ebp - 0x54], 1
test cl, cl
je 0x48d01a
mov bl, byte [ebp + 0x63]
push 0x10
movzx eax, bl
pop edi
shl eax, 2
and word [ebp + eax - 0x1dc], 0
push edi
lea esi, [ebp + eax - 0x1da]
push 0
push esi
call fcn.004aa0a0
inc bl
movzx eax, bl
shl eax, 2
mov word [esi], 0xee
and word [ebp + eax - 0x1dc], 0
push edi
lea esi, [ebp + eax - 0x1da]
push 0
push esi
call fcn.004aa0a0
inc bl
movzx eax, bl
shl eax, 2
mov word [esi], 0xef
push edi
mov word [ebp + eax - 0x1dc], 1
lea eax, [ebp + eax - 0x1da]
push 0x4c8664
push eax
call fcn.00413fe3
inc bl
movzx eax, bl
shl eax, 2
push edi
mov word [ebp + eax - 0x1dc], 1
lea eax, [ebp + eax - 0x1da]
push 0x4c8654
push eax
call fcn.00413fe3
inc bl
movzx eax, bl
shl eax, 2
push edi
mov word [ebp + eax - 0x1dc], 1
lea eax, [ebp + eax - 0x1da]
push 0x4c8644
push eax
call fcn.00413fe3
mov esi, dword [ebp + 0x58]
add esp, 0x3c
inc bl
mov byte [ebp + 0x63], bl
xor ebx, ebx
cmp dword [ebp + 0x20], ebx
mov dword [ebp - 0x4c], ebx
jl 0x48d02b
cmp dword [ebp + 0x64], ebx
jle 0x48d02b
mov al, 1
jmp 0x48d02d
xor al, al
xor edi, edi
inc edi
test al, al
mov dword [ebp - 0x20], ebx
je 0x48d03a
mov dword [ebp - 0x20], edi
mov ax, word [esi]
push 0x64
lea ecx, [ebp + 0x48]
mov word [ebp], ax
call fcn.004441e6
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
cmp byte [ebp + 0x61], 0
mov dword [ebp - 0x48], eax
je 0x48d087
cmp byte [ebp + 0x6b], 0
jne 0x48d087
mov esi, 0x80070057
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
push 0x4d88a8
jmp 0x48e4de
cmp dword [ebp + 8], ebx
jg 0x48d092
cmp byte [ebp + 0x61], 0
je 0x48d0ba
cmp byte [ebp - 0xd0], 0
movsx ax, byte [ebp + 0x6b]
mov word [ebp - 0x34], ax
je 0x48d0ad
lea eax, [ebp - 0xd0]
mov dword [ebp + 0x1c], eax
cmp byte [ebp + 0x61], 0
je 0x48d0ba
mov byte [ebp + 0x6e], 0xc
mov dword [ebp + 8], edi
cmp dword [ebp + 0x10], ebx
jne 0x48d0cb
cmp dword [ebp + 8], ebx
jle 0x48d0cb
mov byte [ebp + 0x6e], 0xb
mov dword [ebp + 8], ebx
cmp dword [ebp + 0x2c], ebx
mov dword [ebp - 0x60], edi
jne 0x48d2db
cmp dword [ebp - 0x2c], ebx
jle 0x48d0e6
cmp byte [ebp + 0x60], 0
jne 0x48d2db
cmp dword [ebp + 0x20], ebx
mov byte [ebp + 0x2b], 1
jl 0x48d2df
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x3f], 1
mov byte [ebp + 0x3e], 1
jg 0x48d104
mov byte [ebp + 0x3e], 0
xor eax, eax
cmp dword [ebp + 8], ebx
push 0x3960
setle al
lea ecx, [ebp + 0x18]
mov dword [ebp + 4], eax
call fcn.0044404a
cmp dword [ebp - 0x54], ebx
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x98], edi
jle 0x48d135
mov dword [ebp - 0x98], 9
cmp byte [ebp + 0x6f], 0
jne 0x48d141
cmp byte [ebp + 0x6d], 0
je 0x48d15f
cmp byte [ebp + 0x6b], 0x3f
jne 0x48d15f
push 0x1b
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.00413fe3
add esp, 0xc
cmp dword [ebp + 0x10], ebx
mov byte [ebp + 0x60], 0
jg 0x48d171
cmp dword [ebp - 0x2c], ebx
jg 0x48d171
mov byte [ebp + 0x60], 1
cmp byte [ebp + 0x6c], 0
jne 0x48d18d
cmp byte [ebp + 0x42], 0
je 0x48d18d
cmp dword [ebp + 0x20], ebx
jl 0x48d18d
cmp dword [ebp - 0x2c], ebx
jle 0x48d18d
mov eax, dword [ebp + 0x64]
mov dword [ebp - 0x28], eax
cmp byte [ebp + 0x3f], 0
jne 0x48d1d6
cmp byte [ebp + 0x62], 0
jne 0x48d1d6
cmp byte [ebp + 0x6e], 0
jne 0x48d1d6
cmp dword [ebp - 0x28], ebx
jge 0x48d1d6
cmp byte [ebp + 0x6c], 0
jne 0x48d1d6
cmp word [esi], bx
jne 0x48d1ba
cmp dword [ebp - 0x2c], ebx
je 0x48d1d6
cmp dword [ebp - 0x2c], 0xffffffff
je 0x48d1d6
cmp dword [ebp + 0x2c], ebx
je 0x48e3b7
cmp dword [ebp + 0x20], ebx
jl 0x48e3b2
cmp dword [ebp - 0x2c], 1
jl 0x48e3b2
push 0x10fa28
lea ecx, [ebp + 0x5c]
call fcn.0044404a
push dword [ebp - 0x98]
mov edi, dword [ebp + 0x5c]
lea esi, [edi + 0x10c000]
push edi
push esi
call fcn.00451c53
add esp, 0xc
cmp byte [ebp + 0x40], 0
je 0x48d20c
cmp byte [ebp - 0x11], 0
jne 0x48d291
cmp byte [ebp - 0x4e], 0
je 0x48d276
push 0x1a
add esi, 0x10
pop ebx
mov eax, dword [esi]
test eax, eax
jle 0x48d26b
cmp byte [ebp - 0xec], 0
lea ecx, [ebp - 0xec]
je 0x48d241
mov dl, byte [ebp - 0xec]
movsx edx, dl
cmp edx, eax
je 0x48d26b
inc ecx
mov dl, byte [ecx]
test dl, dl
jne 0x48d233
cmp byte [ebp - 0xd0], 0
lea ecx, [ebp - 0xd0]
je 0x48d264
mov dl, byte [ebp - 0xd0]
movsx edx, dl
cmp edx, eax
je 0x48d26b
inc ecx
mov dl, byte [ecx]
test dl, dl
jne 0x48d256
or eax, 0xe000
mov dword [esi], eax
add esi, 0x220
dec ebx
jne 0x48d218
xor ebx, ebx
push 0x3960
lea eax, [edi + 0x10c000]
push eax
push dword [ebp + 0x18]
call fcn.00413fe3
add esp, 0xc
mov byte [ebp - 0x11], 1
mov eax, dword [ebp]
mov word [ebp + 0x34], ax
mov word [ebp - 0x10], ax
xor eax, eax
cmp byte [ebp + 0x6e], 5
mov word [ebp + 0x36], 0x3a
sete al
mov word [ebp + 0x38], bx
mov word [ebp - 0xe], 0x3a
mov word [ebp - 0xc], 0x5c
mov word [ebp - 0xa], bx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x20]
cmp eax, ebx
jl 0x48d2e8
mov dword [ebp - 0x68], 0x7530
jmp 0x48d308
mov byte [ebp + 0x2b], 0
mov byte [ebp + 0x3f], 0
jmp 0x48d100
mov dword [ebp - 0x68], ebx
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], ebx
jle 0x48e13a
cmp word [ebp - 0x68], 0x3e80
jge 0x48e13a
mov eax, dword [ebp - 0x68]
xor ebx, ebx
cmp dword [ebp - 0x3c], ebx
mov dword [ebp + 0x14], eax
mov ecx, str..CDROM_d
jne 0x48d31a
mov ecx, str..PhysicalDrive_d
movsx eax, word [ebp + 0x14]
mov esi, dword [ebp + 0x5c]
push eax
push ecx
add esi, 0x10f960
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
xor ebx, ebx
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0x80000000
push esi
lea ecx, [ebp + 0x4c]
mov dword [ebp + 0x4c], ebx
call fcn.0040569f
mov edi, dword [ebp + 0x4c]
cmp edi, ebx
je 0x48e109
or eax, 0xffffffff
cmp byte [ebp + 0x2b], bl
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
je 0x48d393
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x78]
push eax
push edi
call fcn.004527fa
add esp, 0xc
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp byte [ebp + 0x6e], 0
je 0x48d417
push 0x800
push 1
push dword [ebp + 0x5c]
push edi
call fcn.00448ed5
add esp, 0x10
cmp byte [ebp + 0x6e], 5
mov esi, eax
je 0x48d3c2
cmp esi, 0xb
jne 0x48d3c2
cmp byte [ebp + 0x6e], al
jne 0x48e113
cmp dword [ebp + 8], ebx
jne 0x48d3cd
cmp byte [ebp + 0x29], 0
jle 0x48d3fd
push edi
push ebx
call fcn.00445fff
cmp dword [ebp + 8], ebx
pop ecx
pop ecx
jg 0x48d3e1
cmp byte [ebp + 0x29], 0
jle 0x48d3ea
cmp eax, 7
jne 0x48e113
cmp dword [ebp + 8], ebx
jge 0x48d3fb
cmp eax, 7
je 0x48e113
cmp dword [ebp + 8], ebx
jne 0x48d405
cmp esi, 0xc
jne 0x48d405
push 0xb
pop esi
cmp byte [ebp + 0x6e], 5
je 0x48d417
movsx eax, byte [ebp + 0x6e]
cmp esi, eax
jne 0x48e113
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x5c]
mov dword [ebp - 0x38], ebx
push edi
call fcn.00441953
add esp, 0xc
cmp eax, ebx
je 0x48e113
cmp dword [eax], 1
mov esi, dword [eax + 0x28]
lea ecx, [eax + 0x30]
push 0x200
push edi
mov dword [ebp - 0x58], ecx
sete byte [ebp + 0x7b]
call fcn.00441575
cmp byte [ebp + 0x6c], 0
pop ecx
pop ecx
mov edi, eax
je 0x48d4d4
cmp byte [ebp + 0x7b], 0
je 0x48d4b9
mov ebx, dword [ebp + 0x5c]
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push edi
push esi
add ebx, 0x100000
lea eax, [ebp + 0x4c]
push ebx
push eax
call fcn.00448d3f
add esp, 0x24
cmp dword [ebp - 0x2c], esi
jg 0x48e113
mov eax, dword [ebp - 0x2c]
push 1
push edi
push dword [ebp - 0x38]
shl eax, 6
push dword [ebp - 0x58]
add eax, edi
lea eax, [ebx + eax*2 - 0x80]
push eax
call fcn.00448c16
add esp, 0x14
test eax, eax
mov dword [ebp + 0x64], eax
jl 0x48e113
cmp byte [ebp - 1], 0
je 0x48d4e0
mov dword [ebp - 0x28], eax
jmp 0x48d4e0
mov eax, dword [ebp - 0x2c]
cmp eax, ebx
jle 0x48d4d7
cmp eax, 4
lea ecx, [eax - 1]
jle 0x48d4cf
lea ecx, [eax*4 - 0x10]
mov dword [ebp + 0x64], ecx
jmp 0x48d4d7
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x38]
jg 0x48e113
push dword [ebp + 0x4c]
xor edi, edi
push edi
call fcn.00445fff
cmp eax, 7
pop ecx
pop ecx
je 0x48d529
cmp byte [ebp + 0x7b], 0
jne 0x48d529
cmp dword [ebp - 0x38], 4
mov esi, dword [ebp - 0x58]
jne 0x48d52c
mov al, byte [ebp - 2]
cmp al, byte [esi + 0x20]
jne 0x48d52c
cmp byte [esi + 0xb0], 0
jne 0x48d52c
cmp byte [esi + 0x140], 0
jne 0x48d52c
cmp byte [esi + 0x1d0], 0
jne 0x48d52c
jmp 0x48e113
mov esi, dword [ebp - 0x58]
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], edi
mov dword [ebp - 0x64], edi
mov dword [ebp + 0x30], edi
jle 0x48e113
jmp 0x48d543
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp + 0x30]
mov ebx, dword [ebp - 0x38]
cmp edi, ebx
jge 0x48e113
lea ecx, [ebp + 0x50]
mov dword [ebp - 0x80], edi
call fcn.0043db72
cmp dword [ebp - 0x3c], 0
je 0x48d56b
lea eax, [ebx + 0x186a0]
mov dword [ebp + 0x30], eax
cmp byte [ebp + 0x6c], 0
je 0x48d58e
cmp dword [ebp + 0x64], 0
jl 0x48d58e
mov edi, dword [ebp + 0x64]
cmp edi, ebx
lea eax, [ebx + 0x186a0]
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x80], edi
jge 0x48e113
cmp byte [ebp + 0x7b], 0
je 0x48d59e
mov ebx, 0xff07
mov dword [ebp - 8], ebx
jmp 0x48d5ae
lea eax, [edi + edi*8]
shl eax, 4
movzx eax, byte [eax + esi + 0x20]
mov dword [ebp - 8], eax
mov ebx, eax
lea eax, [edi + edi*8]
shl eax, 4
add esi, eax
movsx eax, word [ebp - 0x44]
movsx edx, word [esi + 0x18]
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x24], esi
mov dword [ebp + 0x44], edx
jle 0x48d5e9
mov si, word [ebp + 0x14]
cmp si, word [ebp + ecx*4 - 0x1dc]
jne 0x48d5e4
movsx esi, word [ebp + ecx*4 - 0x1da]
cmp edx, esi
je 0x48d5e9
inc ecx
cmp ecx, eax
jl 0x48d5ca
cmp ecx, eax
jl 0x48e0f7
cmp byte [ebp + 0x63], 0
jbe 0x48d64e
cmp byte [ebp + 0x7b], 0
movzx edi, byte [ebp + 0x63]
sete bl
and dword [ebp - 0x30], 0
dec bl
and bl, 0xf
inc bl
test edi, edi
jle 0x48d642
lea esi, [ebp - 0x87f]
mov al, byte [ebp + 0x7b]
cmp al, byte [esi - 1]
jne 0x48d637
movzx eax, bl
push eax
mov eax, dword [ebp - 0x24]
add eax, 0x20
push esi
push eax
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x48d642
inc dword [ebp - 0x30]
add esi, 0x11
cmp dword [ebp - 0x30], edi
jl 0x48d617
cmp dword [ebp - 0x30], edi
jl 0x48e0f7
mov ebx, dword [ebp - 8]
xor edi, edi
cmp byte [ebp + 0x62], 0
je 0x48d65b
cmp dword [ebp + 0x64], edi
jge 0x48d678
cmp byte [ebp + 0x3e], 0
je 0x48d71b
cmp byte [ebp + 0x6c], 0
jne 0x48d71b
cmp dword [ebp + 0x64], edi
jle 0x48d71b
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp + 0x64]
jne 0x48e0f7
cmp byte [ebp + 0x62], 0
je 0x48d70e
test bl, 0x10
jne 0x48e24a
cmp ebx, 0x84
je 0x48e24a
cmp ebx, 0xef
je 0x48e24a
xor edi, edi
cmp byte [ebp + 0x7b], 0
je 0x48d710
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x44]
and ecx, 0xc0000000
xor eax, eax
or eax, ecx
je 0x48d710
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], edi
je 0x48d707
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x48e586
xor edi, edi
mov eax, dword [ebp - 0x38]
add eax, 0x186a0
mov dword [ebp + 0x30], eax
cmp byte [ebp + 0x2b], 0
je 0x48d764
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
cmp ecx, edi
jl 0x48d764
jg 0x48d734
cmp eax, edi
jbe 0x48d764
cmp dword [ebp - 0x74], eax
jne 0x48d73e
cmp dword [ebp - 0x70], ecx
je 0x48d74e
cmp dword [ebp - 0x88], eax
jne 0x48d764
cmp dword [ebp - 0x84], ecx
jne 0x48d764
cmp word [ebp - 0x78], di
je 0x48e0f7
cmp dword [ebp + 0x44], 0
jle 0x48e0f7
jmp 0x48d7b0
cmp dword [ebp - 0x3c], edi
jne 0x48d78f
cmp ebx, edi
je 0x48e0f7
cmp dword [ebp + 0x44], 0
jle 0x48e0f7
cmp ebx, 5
je 0x48e0f7
cmp ebx, 0xf
je 0x48e0f7
xor edi, edi
cmp dword [ebp + 0x64], edi
jg 0x48d7dd
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x14], edi
jg 0x48d7dd
jl 0x48d7a7
cmp dword [eax + 0x10], 0x200
ja 0x48d7dd
test bl, 0x10
je 0x48e0f7
movzx ecx, byte [ebp + 0x57]
xor eax, eax
push eax
push eax
push 1
or ecx, 1
push ecx
push eax
movsx eax, word [ebp + 0x14]
push dword [ebp + 0x44]
push eax
mov eax, dword [ebp + 0x5c]
add eax, 0x10c000
push eax
call fcn.004415c3
add esp, 0x20
jmp 0x48e0f7
inc dword [ebp - 0x94]
cmp byte [ebp + 0x6c], 0
jne 0x48d7fc
mov eax, dword [ebp - 0x28]
cmp eax, 1
jl 0x48d7fc
cmp eax, dword [ebp + 0x44]
jne 0x48e0f7
xor edi, edi
cmp dword [ebp - 0x28], edi
jl 0x48d80c
mov eax, dword [ebp - 0x38]
add eax, 0x3e8
mov dword [ebp + 0x30], eax
cmp byte [ebp + 0x6c], 0
jne 0x48dfa7
cmp dword [ebp + 0x64], edi
jl 0x48d82b
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x64], eax
jne 0x48d82b
cmp eax, edi
jg 0x48dfa7
cmp word [ebp - 0x78], di
jne 0x48e0f7
xor edi, edi
cmp dword [ebp + 0x2c], edi
jne 0x48d854
cmp dword [ebp - 0x28], edi
jge 0x48d854
mov eax, dword [ebp + 0x64]
cmp eax, edi
jle 0x48d854
cmp dword [ebp - 0x94], eax
jge 0x48e125
mov esi, dword [ebp + 0x64]
or dword [ebp - 0x5c], 0xffffffff
cmp esi, edi
je 0x48d865
cmp byte [ebp + 0x62], 0
je 0x48d8c7
cmp byte [ebp + 0x7b], 0
jne 0x48dadb
test bl, 0x10
jne 0x48d888
cmp ebx, 0x84
je 0x48d888
cmp ebx, 0xef
jne 0x48daf1
cmp byte [ebp - 0x4d], 0
je 0x48d8c7
xor edx, edx
movsx eax, dx
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [ebp + 0x5c]
shl ecx, 5
add eax, 0x10c000
add eax, ecx
movsx ecx, word [ebp + 0x14]
cmp dword [eax + 4], ecx
jne 0x48d8c0
mov ecx, dword [ebp + 0x44]
cmp dword [eax], ecx
jne 0x48d8c0
cmp dword [eax + 0x10], edi
jg 0x48db05
inc edx
cmp dx, 0x1a
jl 0x48d890
cmp byte [ebp + 0x3f], 0
je 0x48d8d2
cmp esi, dword [ebp + 0x44]
je 0x48d8eb
cmp esi, edi
jl 0x48d8eb
cmp dword [ebp + 0x2c], edi
je 0x48d8e0
cmp esi, dword [ebp + 0x44]
je 0x48d8eb
cmp dword [ebp - 0x28], edi
jl 0x48e0f7
xor edi, edi
mov byte [ebp + 0x2a], 0
mov dword [ebp - 0x6c], edi
xor ebx, ebx
movsx eax, bx
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [ebp + 0x5c]
add eax, 0x10c000
shl ecx, 5
lea esi, [ecx + eax]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 8]
cmp eax, 5
je 0x48d926
cmp dword [ebp - 0x3c], 0
je 0x48d930
cmp eax, 5
jne 0x48da02
cmp dword [ebp - 0x3c], 0
je 0x48da02
movsx edi, word [ebp + 0x14]
cmp dword [esi + 4], edi
jne 0x48da02
mov eax, dword [ebp + 0x44]
cmp dword [esi], eax
jne 0x48da02
cmp dword [esi + 0x10], 0
jle 0x48da02
cmp dword [ebp + 0x2c], 0
movzx ax, byte [esi + 0x10]
mov byte [ebp + 0x2a], 1
mov word [ebp - 0x6c], ax
je 0x48da17
push dword [ebp - 0x30]
push dword [ebp - 0x6c]
call fcn.00441bee
mov eax, dword [ebp - 0x38]
mov si, word [esi + 0x10]
add eax, 0x3e8
cmp dword [ebp + 0x10], 0
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
mov word [ebp + 0x34], si
mov word [ebp - 0x10], si
je 0x48d9ad
movzx eax, si
push eax
push dword [ebp + 0x44]
push edi
push str.unshow_pt:__d:_d__c_r_n
push 0x4d80e0
call fcn.00410bfe
add esp, 0x14
cmp dword [ebp + 0xc], 0
je 0x48d9c7
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
test eax, eax
jne 0x48d9c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x48]
mov ax, word [ecx]
neg ax
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
or eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x48d9f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0xc], 0
je 0x48da02
push dword [ebp + 0x34]
call fcn.00441443
pop ecx
inc ebx
cmp bx, 0x1a
jl 0x48d8f4
cmp dword [ebp + 0x2c], 0
jne 0x48e0f7
cmp word [ebp - 0x5c], 0
jg 0x48da6a
cmp byte [ebp + 0x62], 0
je 0x48da6a
cmp byte [ebp + 0x7b], 0
jne 0x48da54
test byte [ebp - 8], 0x10
jne 0x48e0f7
cmp dword [ebp - 8], 0x84
je 0x48e0f7
cmp dword [ebp - 8], 0xef
je 0x48e0f7
cmp byte [ebp + 0x7b], 0
je 0x48da6a
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x44]
and ecx, 0xc0000000
xor eax, eax
or eax, ecx
jne 0x48e0f7
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
xor eax, eax
cmp dword [ebp + 0x10], eax
mov ebx, edi
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], eax
je 0x48dd4f
cmp byte [ebp + 0x40], al
jne 0x48da94
cmp byte [ebp + 0x41], al
je 0x48db27
xor esi, esi
mov ecx, dword [ebp + 0x18]
movsx eax, si
mov edx, eax
shl edx, 4
add edx, eax
shl edx, 5
lea eax, [edx + ecx]
mov edx, dword [eax + 8]
cmp edx, 5
je 0x48dabc
cmp dword [ebp - 0x3c], 0
je 0x48dac2
cmp edx, 5
jne 0x48dad2
cmp dword [ebp - 0x3c], 0
je 0x48dad2
movsx edx, word [ebp + 0x14]
cmp dword [eax + 4], edx
jne 0x48dad2
mov eax, dword [eax]
cmp eax, dword [ebp + 0x44]
je 0x48db11
inc esi
cmp si, 0x1a
jl 0x48da96
jmp 0x48db27
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x44]
and ecx, 0xc0000000
xor eax, eax
or eax, ecx
jne 0x48d888
cmp esi, edi
mov dword [ebp - 0x5c], 2
je 0x48d8eb
jmp 0x48d8c7
mov dword [ebp - 0x5c], 1
jmp 0x48d8eb
movsx eax, si
mov edx, eax
shl edx, 4
add edx, eax
shl edx, 5
mov ax, word [edx + ecx + 0x10]
mov word [ebp - 8], ax
inc dword [ebp - 0x64]
xor esi, esi
inc esi
lea ecx, [edi - 0x41]
shl esi, cl
cmp byte [ebp - 0x19], 0
je 0x48db53
cmp byte [ebp + 0x6d], 0
je 0x48db64
cmp dword [ebp - 0x80], 4
jle 0x48db64
inc dword [ebp - 0x64]
cmp byte [ebp + 0x6d], 1
je 0x48e0f7
jmp 0x48db64
cmp byte [ebp + 0x6d], 1
jne 0x48db64
mov eax, dword [ebp - 0x38]
add eax, 0x3e8
mov dword [ebp + 0x30], eax
cmp byte [ebp + 0x6d], 2
mov ebx, dword [ebp - 0x6c]
jne 0x48db7c
test bx, bx
je 0x48db7c
cmp dword [ebp - 0x64], 1
je 0x48e0f7
cmp byte [ebp + 0x40], 0
je 0x48db97
cmp word [ebp - 8], 0
je 0x48e0f7
test byte [ebp - 7], 0x20
jne 0x48e0f7
cmp word [ebp - 0x9c], bx
je 0x48e0f7
mov eax, dword [ebp - 0x34]
cmp word [ebp - 0x9c], ax
jne 0x48dbc6
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x48e0f7
inc dword [ebp + 0x1c]
mov eax, dword [ebp + 0x1c]
movsx ax, byte [eax]
push dword [ebp - 0x3c]
lea ecx, [ebp + 0x1c]
push ecx
push dword [ebp - 0x44]
lea ecx, [ebp - 0x1dc]
push ecx
mov ecx, dword [ebp + 0x5c]
add ecx, 0x10c000
push ecx
push eax
mov dword [ebp - 0x30], ecx
call fcn.00441c77
mov ecx, dword [ebp + 0x1c]
add esp, 0x18
cmp ax, 0x5a
mov word [ebp - 0x10], ax
mov word [ebp + 0x34], ax
mov dword [ebp - 0x34], eax
mov dword [ebp], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x5c], ecx
ja 0x48e0f7
mov eax, ecx
cmp byte [eax], 0
je 0x48dc23
inc eax
mov dword [ebp + 0x1c], eax
movsx ax, byte [eax]
mov word [ebp - 0x34], ax
jmp 0x48dc2a
mov dword [ebp - 0x34], 0x5b
mov edi, dword [ebp]
cmp bx, di
jne 0x48dc50
cmp dword [ebp + 4], 0
je 0x48e0f7
lea eax, [ebp - 0xd0]
push eax
push edi
call fcn.00441c30
pop ecx
pop ecx
jmp 0x48e0f7
test dword [ebp - 0x48], esi
je 0x48dcc2
push dword [ebp - 0x30]
push edi
call fcn.00441bee
movzx eax, di
push eax
push str.unshow_int1__c_r_n
push 0x4d80e0
mov word [ebp - 0x10], di
mov word [ebp + 0x34], di
call fcn.00410bfe
add esp, 0x14
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
test eax, eax
jne 0x48dc90
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
or eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x48dcb0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0xc], 0
je 0x48dcbf
push dword [ebp + 0x34]
call fcn.00441443
pop ecx
mov dword [ebp - 0x24], edi
test bx, bx
je 0x48dd46
push dword [ebp - 0x30]
push ebx
call fcn.00441bee
movzx esi, bx
push esi
push str.unshow_int2__c_r_n
push 0x4d80e0
mov word [ebp - 0x10], bx
mov word [ebp + 0x34], bx
call fcn.00410bfe
add esp, 0x14
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
test eax, eax
jne 0x48dd02
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
or eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x48dd22
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0xc], 0
je 0x48dd31
push dword [ebp + 0x34]
call fcn.00441443
pop ecx
xor eax, eax
inc eax
lea ecx, [esi - 0x41]
shl eax, cl
mov word [ebp - 0x10], di
mov word [ebp + 0x34], di
not eax
and dword [ebp - 0x48], eax
mov ebx, dword [ebp - 0x80]
mov byte [ebp + 0x2a], 0
jmp 0x48dd52
mov edi, dword [ebp]
cmp byte [ebp + 0x2a], 0
je 0x48dd6e
test di, di
je 0x48e0f7
cmp byte [ebp + 0x42], 0
jne 0x48e0f7
mov edi, dword [ebp]
xor esi, esi
cmp dword [ebp - 0x3c], esi
mov eax, str..CDROM_d
jne 0x48dd7f
mov eax, str.DeviceHarddisk_dPartition_d
movsx ecx, word [ebp + 0x44]
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
push eax
push dword [ebp + 0x48]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp di, si
je 0x48dda1
cmp byte [ebp + 0x60], 0
je 0x48ddc2
push dword [ebp + 0x1c]
xor eax, eax
mov al, byte [ebp + 0x43]
sub al, 0x41
push eax
lea eax, [ebp - 0x48]
push 0xc
push eax
call fcn.0044149e
add esp, 0x10
mov word [ebp - 0x10], ax
mov word [ebp + 0x34], ax
cmp word [ebp + 0x34], 0x41
jb 0x48e283
cmp word [ebp + 0x34], 0x5a
ja 0x48e283
cmp word [ebp - 0x10], si
je 0x48df56
cmp di, word [ebp - 0x10]
jne 0x48ddf2
cmp dword [ebp + 0x10], 0
jne 0x48ddf2
mov byte [ebp + 0x60], 1
push dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push dword [ebp - 0x18]
push eax
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x48]
call fcn.00451422
add esp, 0x14
test eax, eax
je 0x48de15
and dword [ebp - 0x20], 0
jmp 0x48de1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x20], eax
xor esi, esi
inc esi
test byte [ebp + 0x57], 0x10
je 0x48de38
movzx eax, word [ebp - 0x10]
push 0x32
push 2
push eax
call fcn.00413492
add esp, 0xc
xor edi, edi
cmp byte [ebp + 0x41], 0
je 0x48df0b
cmp word [ebp - 8], di
jne 0x48df0b
mov ax, word [ebp - 0x10]
mov word [ebp - 0xac], ax
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0xac]
push eax
mov word [ebp - 0xaa], 0x3a
mov word [ebp - 0xa8], 0x5c
mov word [ebp - 0xa6], 0x4e
mov word [ebp - 0xa4], 0x55
mov word [ebp - 0xa2], 0x4c
mov word [ebp - 0xa0], di
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x48debc
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x10]
add ecx, 0xffffffbf
mov eax, esi
shl eax, cl
or dword [ebp - 0x48], eax
jmp 0x48df0b
mov eax, dword [ebp - 0x5c]
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x34], ebx
mov dword [ebp], edi
xor esi, esi
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
test eax, eax
jne 0x48dede
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
or eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x48defd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0xc], edi
je 0x48df0b
push dword [ebp + 0x34]
call fcn.00441443
pop ecx
cmp dword [ebp + 0x10], edi
je 0x48df30
movzx eax, word [ebp + 0x34]
push esi
push eax
push dword [ebp + 0x44]
movsx eax, word [ebp + 0x14]
push eax
push str.show_pt:__d:_d__c__d_r_n
push 0x4d80e0
call fcn.00410bfe
add esp, 0x18
cmp esi, edi
je 0x48df56
cmp byte [ebp + 0x6f], 0
jne 0x48df40
cmp byte [ebp + 0x6d], 0
je 0x48df56
cmp dword [ebp + 4], edi
je 0x48df56
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0x10]
call fcn.00441c30
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
test ax, ax
je 0x48e0f7
add eax, 0xffffffbf
cmp word [ebp], 0
je 0x48df72
movsx ecx, word [ebp + 0x14]
jmp 0x48df75
push 0xfffffffffffffff1
pop ecx
movsx eax, ax
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ebp - 0x30]
shl edx, 5
add eax, edx
cmp word [ebp], 0
mov dword [eax + 4], ecx
je 0x48df96
mov ecx, dword [ebp + 0x44]
jmp 0x48df99
push 0xfffffffffffffff1
pop ecx
mov dword [eax], ecx
movzx ecx, word [ebp]
mov dword [eax + 0x10], ecx
jmp 0x48e0f7
movsx esi, word [ebp + 0x14]
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x48]
mov eax, dword [ebp + 0x10]
push dword [ebp + 0xc]
shl eax, 8
or eax, dword [ebp + 0x2c]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
push eax
push dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
add eax, 0x10c000
push esi
push eax
call fcn.004415c3
add esp, 0x20
cmp word [ebp - 0x78], di
jne 0x48e0f7
cmp dword [ebp + 0x2c], edi
jne 0x48e2cb
cmp byte [ebp + 0x62], 0
je 0x48e031
test bl, 0x10
jne 0x48e0f7
cmp ebx, 0x84
je 0x48e0f7
cmp ebx, 0xef
je 0x48e0f7
cmp byte [ebp + 0x7b], 0
je 0x48e031
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x44]
and edx, 0xc0000000
xor ecx, ecx
or ecx, edx
jne 0x48e0f7
cmp eax, edi
je 0x48e049
cmp word [ebp], di
je 0x48e2cb
cmp byte [ebp + 0x42], 0
jne 0x48e2cb
movsx eax, word [ebp + 0x44]
push eax
push esi
push str.DeviceHarddisk_dPartition_d
push dword [ebp + 0x48]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp word [ebp + 0x34], di
jne 0x48e087
push dword [ebp + 0x1c]
xor eax, eax
mov al, byte [ebp + 0x43]
sub al, 0x41
push eax
lea eax, [ebp - 0x48]
push 0xc
push eax
call fcn.0044149e
add esp, 0x10
mov word [ebp - 0x10], ax
mov word [ebp + 0x34], ax
cmp word [ebp + 0x34], 0x41
jb 0x48e33c
cmp word [ebp + 0x34], 0x5a
ja 0x48e33c
cmp word [ebp - 0x10], di
je 0x48e0ee
cmp dword [ebp + 0x10], edi
je 0x48e0c3
movzx eax, word [ebp + 0x34]
push eax
push dword [ebp + 0x44]
push esi
push str.unshow_pt:__d:_d__c_r_n
push 0x4d80e0
call fcn.00410bfe
add esp, 0x14
push dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push dword [ebp - 0x18]
push eax
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x48]
call fcn.00451422
add esp, 0x14
test eax, eax
je 0x48e0e5
mov dword [ebp - 0x20], edi
jmp 0x48e0ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x20], eax
cmp dword [ebp + 0x64], edi
jge 0x48e303
inc dword [ebp + 0x30]
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0
jg 0x48d540
jmp 0x48e113
inc dword [ebp - 0x7c]
cmp word [ebp - 0x7c], 0x20
jge 0x48e132
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
inc dword [ebp - 0x68]
xor ebx, ebx
jmp 0x48d2eb
movsx eax, word [ebp + 0x14]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x64], eax
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
mov cl, byte [ebp + 0x6d]
inc dword [ebp - 0x60]
cmp cl, 1
jne 0x48e14b
mov byte [ebp + 0x6d], 2
jmp 0x48e159
cmp byte [ebp + 0x61], 1
jne 0x48e16b
mov byte [ebp + 0x61], 2
mov byte [ebp + 0x6e], 0xb
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov esi, dword [ebp + 0x58]
xor ebx, ebx
jmp 0x48d171
cmp byte [ebp + 0x6f], 0
jne 0x48e179
test cl, cl
je 0x48e374
cmp byte [ebp + 0x6b], 0
je 0x48e374
cmp byte [ebp + 0x6f], 1
je 0x48e1ef
cmp cl, 2
je 0x48e1ef
cmp byte [ebp + 0x6f], 3
je 0x48e1d1
cmp cl, 3
je 0x48e1d1
cmp byte [ebp + 0x6f], 4
je 0x48e1cb
cmp cl, 4
je 0x48e1cb
cmp byte [ebp + 0x6f], 5
je 0x48e1b3
cmp cl, 5
jne 0x48e374
mov byte [ebp + 0x6e], 0xb
cmp byte [ebp + 0x6f], 0
je 0x48e1c0
inc byte [ebp + 0x6f]
test cl, cl
je 0x48e159
inc cl
mov byte [ebp + 0x6d], cl
jmp 0x48e159
mov byte [ebp + 0x6e], 0xc
jmp 0x48e1b7
cmp byte [ebp + 0x6f], 0
je 0x48e1da
inc byte [ebp + 0x6f]
test cl, cl
je 0x48e1e3
inc cl
mov byte [ebp + 0x6d], cl
mov dword [ebp + 8], 1
jmp 0x48e159
xor eax, eax
xor edx, edx
cmp dword [ebp - 0x54], edx
sete al
cmp byte [ebp + 0x6f], dl
lea eax, [eax + eax + 3]
je 0x48e205
mov byte [ebp + 0x6f], al
test cl, cl
je 0x48e20c
mov byte [ebp + 0x6d], al
cmp byte [ebp + 0x6b], 0x3f
je 0x48e227
lea eax, [ebp - 0xd0]
mov dword [ebp + 0x1c], eax
movsx ax, byte [ebp - 0xd0]
mov word [ebp - 0x34], ax
cmp dword [ebp - 0x54], edx
sete al
dec al
and al, 0xf9
add al, 0xc
cmp dword [ebp - 0x54], edx
mov byte [ebp + 0x6e], al
jne 0x48e242
mov dword [ebp + 8], 1
mov dword [ebp + 4], edx
jmp 0x48e159
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], 0
jmp 0x48d6fc
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], esi
je 0x48e2c1
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x80070057
jmp 0x48e586
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], edi
jmp 0x48e578
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], 0
jmp 0x48e578
lea ecx, [ebp + 0x4c]
call fcn.00402c9f
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], edi
jmp 0x48e2b6
xor esi, esi
cmp dword [ebp + 0x64], esi
jle 0x48e54d
cmp dword [ebp - 0x28], esi
jge 0x48e54d
cmp dword [ebp + 0x2c], esi
jne 0x48e54d
cmp byte [ebp + 0x6c], 0
jne 0x48e54d
cmp byte [ebp + 0x3f], 0
jne 0x48e54d
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov esi, dword [ebp + 0x58]
xor ebx, ebx
cmp dword [ebp + 0x2c], ebx
jne 0x48e3f7
cmp dword [ebp + 0x20], ebx
jl 0x48e3c1
cmp dword [ebp + 0x64], ebx
jg 0x48e3f7
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], ebx
je 0x48e3ef
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
inc eax
jmp 0x48e586
cmp dword [ebp + 0x20], ebx
jl 0x48e41f
cmp dword [ebp + 0x64], ebx
jle 0x48e41f
movsx eax, word [ebp + 0x64]
mov edi, dword [ebp + 0x48]
push eax
movsx eax, word [ebp + 0x20]
push eax
push str.DeviceHarddisk_dPartition_d
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x48e422
mov edi, dword [ebp + 0x48]
mov word [esi + 2], 0x3a
mov ax, word [esi]
cmp ax, 0x2c
jne 0x48e438
mov word [esi], 0xff0c
jmp 0x48e45d
cmp ax, 0x3b
jne 0x48e445
mov word [esi], 0xff1b
jmp 0x48e45d
cmp ax, 0x3a
jne 0x48e452
mov word [esi], 0xff1a
jmp 0x48e45d
cmp ax, 0x3d
jne 0x48e45d
mov word [esi], 0xff1d
mov word [esi + 4], 0x5c
mov word [esi + 6], bx
mov ax, word [esi]
mov word [ebp - 0x90], ax
mov word [ebp - 0x8e], 0x3a
mov word [ebp - 0x8c], bx
cmp word [edi], bx
je 0x48e4eb
cmp dword [ebp + 0x2c], ebx
jne 0x48e4eb
push dword [ebp + 0xc]
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
push eax
push esi
lea eax, [ebp - 0x90]
push eax
push edi
call fcn.00451422
add esp, 0x14
cmp eax, ebx
je 0x48e4ae
xor esi, esi
jmp 0x48e4b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], ebx
je 0x48e4e4
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x48e586
cmp dword [ebp + 0xc], ebx
je 0x48e501
push esi
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
test eax, eax
jne 0x48e501
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ax, word [edi]
neg ax
sbb eax, eax
and eax, edi
push eax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x18]
or eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
je 0x48e52b
xor esi, esi
jmp 0x48e533
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp dword [ebp + 0xc], ebx
je 0x48e4b6
push dword [ebp - 0x90]
call fcn.00441443
pop ecx
jmp 0x48e4b6
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
lea ecx, [ebp + 0x18]
call fcn.0043dd41
lea ecx, [ebp + 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp + 0x50], esi
je 0x48e583
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8