Function at 0x4fe0d0
Capabilities:
Get disk size

Disassembly:
sub esp, 0x820
push ebx
push ebp
push esi
mov esi, dword [esp + 0x834]
push edi
mov dword [esp + 0x58], 1
lea eax, [esp + 0x3e0]
mov ecx, 0xf524
mov dword [esp + 0x3c], eax
xor eax, eax
mov edi, esi
xor ebx, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x834]
xor ebp, ebp
push ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebx
call fcn.004fc770
lea edx, [esp + 0x64]
mov byte [esi], al
mov eax, dword [esp + 0x838]
push 0x2a
push edx
push ebp
push eax
mov dword [esi + 0x10], 1
call fcn.004f55c0
add esp, 0x14
test eax, eax
jne 0x4fe16d
mov byte [esi + 0x3d46c], 2
mov byte [esi + 0x3d46d], 3
jmp 0x4fe18f
mov al, byte [esp + 0x62]
mov dword [esp + 0x1c], 1
mov cl, al
shr al, 2
and cl, 3
and al, 3
mov byte [esi + 0x3d46c], cl
mov byte [esi + 0x3d46d], al
mov eax, dword [esi + 0x10]
mov cl, byte [esi + 0x3d46c]
mov dl, byte [esi]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x3e0]
push 0x450
mov byte [esp + 0x27], cl
mov ecx, dword [esp + 0x838]
push eax
mov byte [esp + 0x1f], dl
mov dl, byte [esi + 0x3d46d]
push 2
push 1
push ecx
mov byte [esp + 0x36], dl
call fcn.004f51f0
add esp, 0x14
test eax, eax
je 0x4fe277
mov edx, dword [esp + 0x3e0]
mov eax, dword [esp + 0x3e1]
and edx, 0xff
and eax, 0xff
shl edx, 8
lea eax, [edx + eax + 2]
cmp eax, 4
mov dword [esp + 0x24], eax
jle 0x4fe277
cmp eax, 0x450
jbe 0x4fe3c6
mov ecx, eax
push ecx
call fcn.004df760
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x3c], edi
je 0x4fe277
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x834]
push edx
push edi
push 2
push 1
push eax
call fcn.004f51f0
add esp, 0x14
test eax, eax
jne 0x4fe3a8
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x834]
push ecx
push edi
push 2
push 1
push edx
call fcn.004f51f0
add esp, 0x14
test eax, eax
jne 0x4fe3a8
push edi
call fcn.005287ee
add esp, 4
mov ecx, 0xf524
xor eax, eax
mov edi, esi
mov ebp, dword [esp + 0x834]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x28]
mov al, byte [esp + 0x17]
mov dl, byte [esp + 0x23]
mov dword [esi + 0x10], ecx
lea ecx, [esp + 0xbc]
push 0x324
xor ebx, ebx
push ecx
mov byte [esi], al
mov al, byte [esp + 0x2a]
push ebx
push ebx
push ebp
mov byte [esi + 0x3d46c], dl
mov byte [esi + 0x3d46d], al
call fcn.004f51f0
add esp, 0x14
test eax, eax
jne 0x4fe700
mov ecx, 0xc9
lea edi, [esp + 0xbc]
lea edx, [esp + 0x28]
push ebx
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0xc4]
push 0x324
push eax
push ebx
push ebx
push 0x24000
push ebp
mov dword [esp + 0x48], ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4fe6f8
cmp dword [0x7f2fa8], 2
jge 0x4fe67b
push 0x800
call fcn.004df770
mov edi, eax
add esp, 4
cmp edi, ebx
mov ebx, 1
je 0x4fe680
push ebx
push 0x10
push edi
push 0
push ebp
call fcn.00471be0
add esp, 0x14
cmp eax, ebx
jne 0x4fe662
xor eax, eax
xor ecx, ecx
mov ah, byte [edi + 0x53]
mov cl, byte [edi + 0x51]
mov al, byte [edi + 0x52]
xor edx, edx
mov dl, byte [edi + 0x50]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
je 0x4fe662
cmp eax, 0x10000000
jae 0x4fe662
xor ebp, ebp
mov dword [esi + 0x10], ebx
mov dword [esi + 0x3d2bc], ebx
mov dword [esi + 0xc], ebx
mov byte [esi + 0x28], 2
mov dword [esi + 0x2c], ebp
mov dword [esi + 0x40], eax
mov dword [esi + 0x9cc], eax
mov dword [esi + 0x68], ebp
mov dword [esi + 0x3d464], 0x800
mov dword [esp + 0x10], ebx
jmp 0x4fe664
xor eax, eax
xor ecx, ecx
mov al, byte [edi]
mov cl, byte [edi + 1]
shl eax, 8
lea edx, [eax + ecx + 2]
mov eax, dword [esp + 0x24]
cmp eax, edx
jne 0x4fe277
jmp 0x4fe3ca
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
xor eax, eax
mov al, byte [edi + 3]
add ecx, 0xfffffffc
mov dword [esi + 0x3d2bc], eax
mov eax, 0xba2e8ba3
mul ecx
shr edx, 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x4c], edx
je 0x4fe606
mov edx, dword [esp + 0x34]
lea eax, [edi + 7]
mov edi, dword [esp + 0x48]
jmp 0x4fe409
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov cl, byte [eax - 3]
cmp ecx, edi
je 0x4fe42a
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x38], ebx
mov cl, byte [eax - 2]
and ecx, 0xfffffff0
cmp cl, 0x10
jne 0x4fe5ee
mov cl, byte [eax]
cmp cl, 0xa0
jne 0x4fe46c
xor ecx, ecx
mov cl, byte [eax + 5]
test ecx, ecx
mov dword [esp + 0x2c], ecx
je 0x4fe277
test edx, edx
je 0x4fe45e
inc edx
cmp ecx, edx
jne 0x4fe277
xor edx, edx
mov dl, byte [eax + 6]
mov dword [esp + 0x38], edx
jmp 0x4fe5ee
cmp cl, 0xa1
jne 0x4fe491
xor ecx, ecx
mov cl, byte [eax + 5]
test ecx, ecx
mov dword [esp + 0x30], ecx
je 0x4fe277
cmp ecx, dword [esp + 0x2c]
jl 0x4fe277
jmp 0x4fe5ee
cmp cl, 0xa2
jne 0x4fe4d3
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 5]
mov dl, byte [eax + 6]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 2]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ebx, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [eax + 7]
add ebx, ecx
cmp edi, 1
mov dword [esp + 0x44], ebx
jl 0x4fe5ee
mov dword [esi + edi*4 + 0x3d2c0], ebx
jmp 0x4fe5ee
cmp cl, 1
jb 0x4fe5ee
cmp cl, 0x63
ja 0x4fe5ee
and ecx, 0xff
mov edx, ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
mov dword [esp + 0x40], edx
je 0x4fe277
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4fe277
test ebx, ebx
je 0x4fe277
cmp edx, ecx
jl 0x4fe277
cmp edx, edi
jg 0x4fe277
mov ecx, dword [esp + 0x34]
inc ecx
cmp edx, ecx
jne 0x4fe277
test ebp, ebp
jne 0x4fe535
mov dword [esi + 0x10], edx
xor ecx, ecx
mov cl, byte [eax + 5]
lea ecx, [ecx + ecx*2]
lea edi, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [eax + 6]
lea ecx, [ecx + edi*4 - 2]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea edi, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [eax + 7]
add edi, ecx
lea ecx, [ebp + ebp*8]
lea ecx, [ebp + ecx*2]
lea ecx, [ebp + ecx*4]
shl ecx, 5
add ecx, esi
test ebp, ebp
mov dword [ecx + 0x2c], edi
jbe 0x4fe58b
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x40], edx
jle 0x4fe587
sub edi, dword [ecx - 0x974]
mov dword [ecx - 0x960], edi
mov edx, dword [esp + 0x40]
cmp edx, dword [esp + 0x30]
jne 0x4fe597
sub ebx, dword [ecx + 0x2c]
mov dword [ecx + 0x40], ebx
xor ebx, ebx
mov bl, byte [eax - 3]
dec ebx
mov dword [ecx + 0x68], ebx
mov bl, byte [eax - 2]
test bl, 4
jne 0x4fe5ae
mov byte [ecx + 0x28], 1
jmp 0x4fe5da
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x4fe5bc
mov byte [ecx + 0x28], 2
jmp 0x4fe5da
cmp edi, 0x10
je 0x4fe5d6
cmp edi, 1
je 0x4fe5d6
cmp edi, 0x20
je 0x4fe5d6
cmp edi, 2
je 0x4fe5d6
mov byte [ecx + 0x28], 2
jmp 0x4fe5da
mov byte [ecx + 0x28], 4
mov edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x44]
inc edi
inc ebp
mov dword [esi + 0xc], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
inc edx
add eax, 0xb
cmp edx, ecx
mov dword [esp + 0x18], edx
jb 0x4fe405
mov ecx, dword [esi + 0xc]
mov edi, 1
cmp ecx, edi
jl 0x4fe277
mov eax, dword [esi + 0x3d2bc]
cmp eax, edi
jl 0x4fe277
cmp ecx, eax
jl 0x4fe277
cmp dword [esp + 0x24], 0x450
jbe 0x4fe643
mov edx, dword [esp + 0x3c]
push edx
call fcn.004df7a0
add esp, 4
cmp byte [esi], 0xff
jne 0x4fe64b
mov byte [esi], 1
mov dword [esi + 0x3d464], 0x930
mov dword [esp + 0x10], edi
mov dword [esp + 0x54], edi
jmp 0x4fe91b
xor ebp, ebp
push edi
call fcn.004df7a0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, ebp
jne 0x4fe911
jmp 0x4fe682
mov ebx, 1
xor ebp, ebp
cmp dword [esp + 0x1c], ebp
je 0x4fe6d5
mov al, byte [esp + 0x62]
test al, 3
je 0x4fe6b9
mov ecx, dword [esp + 0x69]
mov edx, dword [esp + 0x64]
and ecx, 0xff
and edx, 0xff
shl ecx, 8
add ecx, edx
cmp ecx, ebx
jne 0x4fe911
test al, 0xc
jne 0x4fe911
mov dword [esi + 0x3d2bc], ebp
mov dword [esi + 0xc], ebp
mov dword [esi + 0x3d464], 0x800
mov dword [esp + 0x10], ebx
jmp 0x4fe91b
mov al, byte [esp + 0x17]
test al, al
jbe 0x4fe911
cmp al, 0xff
jae 0x4fe911
mov dword [esi + 0x3d464], ebp
mov dword [esp + 0x10], ebx
jmp 0x4fe91b
mov dword [esp + 0x5c], 1
cmp dword [esp + 0x1c], ebx
je 0x4fe726
mov eax, dword [esp + 0x69]
mov ecx, dword [esp + 0x64]
and eax, 0xff
and ecx, 0xff
shl eax, 8
add eax, ecx
mov dword [esi + 0x3d2bc], eax
jmp 0x4fe730
mov dword [esi + 0x3d2bc], 1
mov ecx, dword [esi + 0x3d2bc]
cmp ecx, ebx
je 0x4fef56
mov eax, dword [esp + 0xbe]
mov edx, dword [esp + 0xbf]
and eax, 0xff
and edx, 0xff
sub edx, eax
mov dword [esi + 0x10], eax
lea eax, [edx + 1]
cmp eax, 1
mov dword [esi + 0xc], eax
jl 0x4fef56
cmp eax, 0x64
jg 0x4fef56
cmp ecx, eax
jle 0x4fe77e
mov dword [esi + 0x3d2bc], eax
xor ebp, ebp
cmp eax, ebx
jle 0x4fe907
lea edi, [esp + 0xc5]
push ebp
push esi
call fcn.0043a180
mov ecx, dword [esp + 0x64]
add esp, 8
cmp ecx, ebx
jne 0x4fe7e4
xor ecx, ecx
xor edx, edx
mov cl, byte [edi - 1]
mov dl, byte [edi]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [edi + 1]
xor ebx, ebx
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [edi + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dword [eax + 4], ecx
mov bl, byte [edi + 7]
mov dl, byte [edi + 8]
shl ebx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [edi + 9]
shl edx, 8
add edx, ebx
shl edx, 8
jmp 0x4fe829
xor ecx, ecx
mov cl, byte [edi + 1]
mov edx, ecx
xor ecx, ecx
mov cl, byte [edi]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 2]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [edi + 2]
add ecx, edx
xor edx, edx
mov dword [eax + 4], ecx
mov dl, byte [edi + 8]
xor ebx, ebx
mov bl, byte [edi + 9]
lea edx, [edx + edx*2]
lea edx, [edx + edx*4]
lea edx, [ebx + edx*4 - 2]
lea edx, [edx + edx*2]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
xor ebx, ebx
mov bl, byte [edi + 0xa]
add edx, ebx
xor ebx, ebx
sub edx, ecx
mov ecx, edx
mov dword [eax + 0x18], edx
cmp ecx, ebx
jl 0x4fef56
mov cl, byte [esi]
test cl, cl
jbe 0x4fe84c
cmp cl, 0x10
jb 0x4fe851
cmp cl, 0xff
jne 0x4fe86c
mov ecx, dword [esi + 0x3d2bc]
mov edx, dword [esi + 0xc]
cmp ecx, edx
je 0x4fe87a
cmp ecx, 1
jne 0x4fef56
mov dword [eax + 0x40], ebx
jmp 0x4fe87d
cmp dword [esi + 0x3d2bc], 1
jne 0x4fe87a
mov dword [eax + 0x40], ebx
jmp 0x4fe87d
mov dword [eax + 0x40], ebp
test byte [edi - 4], 4
jne 0x4fe89b
mov byte [eax], 1
mov al, byte [esi]
cmp al, 0xff
mov dword [esi + 0x3d464], 0x930
jne 0x4fe8f8
mov byte [esi], 1
jmp 0x4fe8f8
mov cl, byte [esi]
test cl, cl
jbe 0x4fe8eb
cmp cl, 0x10
jae 0x4fe8eb
cmp dword [esp + 0x1c], ebx
je 0x4fe8dc
mov cl, byte [esp + 0x68]
test cl, cl
je 0x4fe8dc
cmp cl, 0x10
jne 0x4fe8c8
mov byte [eax], 4
mov dword [esi + 0x3d464], 0x930
jmp 0x4fe8f8
cmp cl, 0x20
jne 0x4fe8dc
mov byte [eax], 4
mov dword [esi + 0x3d464], 0x930
jmp 0x4fe8f8
mov byte [eax], 2
mov dword [esi + 0x3d464], 0x930
jmp 0x4fe8f8
mov byte [eax], 2
mov dword [esi + 0x3d464], 0x800
mov eax, dword [esi + 0xc]
inc ebp
add edi, 8
cmp ebp, eax
jl 0x4fe78f
mov dword [esp + 0x10], 1
jmp 0x4fe91b
cmp dword [esp + 0x10], ebx
jne 0x4fef56
cmp byte [esi], 0
jne 0x4fe93c
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x4fe93c
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4fe93c
mov dword [esp + 0x58], 0
jmp 0x4fe0e9
mov eax, dword [esp + 0x66]
mov ebx, dword [esp + 0x6b]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov ecx, dword [esi + 0xc]
cmp ebp, ecx
jl 0x4fe97f
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4fedb5
mov edx, dword [esp + 0x66]
mov eax, ebx
and eax, 0xff
and edx, 0xff
shl eax, 8
add eax, edx
cmp ebp, eax
jge 0x4fedb5
mov eax, dword [esp + 0x66]
mov edx, dword [esp + 0x840]
test edx, edx
je 0x4fe9ae
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x4fe9ae
and ebx, 0xff
and eax, 0xff
shl ebx, 8
add ebx, eax
cmp ecx, ebx
jne 0x4fe9ae
test ebp, ebp
jg 0x4fedb5
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x834]
lea eax, [esp + 0x8c]
push 0x30
add ecx, ebp
push eax
push ecx
push 1
push 0
push edx
call fcn.004f5640
add esp, 0x18
test eax, eax
jne 0x4fea0f
test ebp, ebp
jne 0x4fedb5
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x834]
lea eax, [esp + 0x8c]
push 0x30
push eax
push ecx
push 1
push ebp
push edx
call fcn.004f5640
add esp, 0x18
test eax, eax
je 0x4fedb5
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x95]
mov ecx, dword [esp + 0x96]
mov edi, dword [esp + 0xa4]
and edx, 0xff
and eax, 0xff
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x97]
shl edx, 8
and ecx, 0xff
and edi, 0xff
add edx, ecx
mov ecx, dword [esp + 0xa5]
shl edx, 8
and eax, 0xff
and ecx, 0xff
shl edi, 8
add edx, eax
mov eax, dword [esp + 0xa6]
add edi, ecx
mov ecx, dword [esp + 0xa7]
shl edi, 8
and eax, 0xff
and ecx, 0xff
add edi, eax
shl edi, 8
add edi, ecx
test ebp, ebp
jne 0x4feaa0
test edx, edx
jne 0x4fedb5
jmp 0x4feaa8
test edx, edx
je 0x4fedb5
test edi, edi
je 0x4fedb5
cmp dword [esi + 0x3d464], 0x930
jne 0x4feb8b
cmp ebp, dword [esi + 0xc]
jge 0x4feb8e
lea eax, [ebp + ebp*8]
lea ecx, [ebp + eax*2]
lea eax, [ebp + ecx*4]
shl eax, 5
add eax, esi
cmp edx, dword [eax + 0x2c]
jne 0x4feb8b
mov ecx, dword [eax + 0x40]
cmp edi, ecx
jg 0x4feb8b
sub ecx, edi
cmp ebp, 1
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x38], ecx
jl 0x4feb8b
mov ecx, dword [eax - 0x968]
cmp ecx, 0x98
jne 0x4feb36
mov ebx, dword [eax - 0x938]
cmp ebx, dword [eax + 0x68]
jne 0x4feb36
mov ecx, 2
mov dword [eax - 0x964], ecx
mov dword [eax - 0x968], ecx
mov ecx, 0x96
mov dword [eax + 0x34], ecx
mov dword [eax + 0x30], ecx
jmp 0x4feb8b
mov ebx, 0x96
cmp ecx, ebx
jne 0x4feb8b
mov ecx, dword [eax - 0x938]
cmp ecx, dword [eax + 0x68]
jne 0x4feb8b
xor ecx, ecx
mov dword [eax - 0x964], ecx
mov dword [eax - 0x968], ecx
mov dword [eax + 0x34], ebx
mov dword [eax + 0x30], ebx
cmp dword [0x6ffe80], 0xa
jne 0x4feb8b
mov ecx, dword [eax - 0x960]
mov ebx, 2
cmp ecx, ebx
jle 0x4feb8b
add ecx, 0xfffffffe
mov dword [eax - 0x960], ecx
mov dword [eax - 0x964], ebx
mov dword [eax - 0x968], ebx
cmp ebp, dword [esi + 0xc]
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x6b]
jl 0x4fec54
cmp byte [esi], 0x10
jb 0x4fedb5
mov eax, dword [esp + 0x66]
mov ebp, dword [esp + 0x8e]
and ebx, 0xff
and eax, 0xff
shl ebx, 8
add ebx, eax
mov eax, dword [esp + 0xac]
and eax, 0xff
and ebp, 0xff
shl eax, 8
add eax, ebp
cmp eax, ebx
jl 0x4fec45
mov al, byte [esi + 0x3d46d]
test al, al
je 0x4fedb5
test byte [esp + 0x93], 1
je 0x4fec45
mov ebx, dword [esp + 0x99]
mov eax, ecx
and eax, 0xff
and ebx, 0xff
shl eax, 8
add eax, ebx
mov ebx, dword [esp + 0x9a]
shl eax, 8
and ebx, 0xff
add eax, ebx
mov ebx, dword [esp + 0x9b]
shl eax, 8
and ebx, 0xff
add eax, ebx
cmp eax, edx
je 0x4fedb5
jle 0x4fec45
sub eax, edx
cmp eax, edi
jge 0x4fec45
mov edi, eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x6b]
mov ebp, dword [esp + 0x18]
inc eax
mov dword [esi + 0xc], eax
mov al, byte [esi]
cmp al, 0x22
je 0x4fec6a
cmp al, 0x25
je 0x4fec6a
cmp al, 0x2a
je 0x4fec6a
cmp al, 0x2e
jne 0x4fecf9
cmp dword [esi + 0xc], 1
jne 0x4fecf9
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4fecf9
mov eax, dword [esp + 0x66]
and ebx, 0xff
shl ebx, 8
and eax, 0xff
add ebx, eax
cmp ebx, 1
jne 0x4fecf5
test byte [esp + 0x93], bl
je 0x4fecf5
mov eax, dword [esp + 0x99]
and ecx, 0xff
shl ecx, 8
and eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x9a]
shl ecx, 8
and eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x9b]
shl ecx, 8
and eax, 0xff
add ecx, eax
cmp ecx, edx
jne 0x4feceb
mov al, byte [esi + 0x3d46d]
test al, al
je 0x4fed96
cmp ecx, edx
jle 0x4fecf5
sub ecx, edx
cmp ecx, edi
jge 0x4fecf5
mov edi, ecx
mov ebx, dword [esp + 0x6b]
lea ecx, [ebp + ebp*8]
lea eax, [ebp + ecx*2]
lea ecx, [ebp + eax*4]
shl ecx, 5
lea eax, [ecx + esi]
mov ecx, dword [esp + 0x8f]
and ecx, 0xff
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0xad]
and edx, 0xff
mov dword [eax + 0x40], edi
shl edx, 8
lea edx, [edx + ecx - 1]
mov dword [eax + 0x68], edx
mov cl, byte [esi]
cmp cl, 0x10
jae 0x4fed58
mov cl, byte [esp + 0x92]
and ecx, 0xf
dec ecx
je 0x4fed58
dec ecx
je 0x4fed84
sub ecx, 0xd
je 0x4fed6a
mov cl, byte [eax + 0x28]
test cl, cl
jne 0x4fed5c
mov byte [eax + 0x28], 2
mov eax, dword [esp + 0x66]
inc ebp
mov dword [esp + 0x18], ebp
jmp 0x4fe94a
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x4fed5c
inc ebp
mov byte [eax + 0x28], 1
mov eax, dword [esp + 0x66]
mov dword [esp + 0x18], ebp
jmp 0x4fe94a
inc ebp
mov byte [eax + 0x28], 4
mov eax, dword [esp + 0x66]
mov dword [esp + 0x18], ebp
jmp 0x4fe94a
mov byte [esi + 0x3d46c], 0
mov byte [esi + 0x3d46d], 0
mov dword [esi + 0x3d2bc], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x4fedd8
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
shl eax, 5
mov ecx, dword [eax + esi - 0x938]
inc ecx
mov dword [esi + 0x3d2bc], ecx
jmp 0x4fede2
mov dword [esi + 0x3d2bc], 0
mov edx, dword [esp + 0x83c]
push edx
call fcn.00478720
mov dword [esi + 0x3d458], eax
mov eax, dword [esi + 0xc]
mov edi, 1
add esp, 4
cmp eax, edi
jne 0x4fee36
mov al, byte [esi]
cmp al, 0x16
je 0x4fee22
cmp al, 0x1a
je 0x4fee22
cmp al, 0x14
je 0x4fee22
cmp al, 0x27
je 0x4fee22
cmp al, 0x28
je 0x4fee22
cmp al, 0x2c
je 0x4fee22
cmp al, 0x30
jne 0x4fee36
mov ebp, dword [esp + 0x834]
push esi
push eax
push ebp
call fcn.004fef70
add esp, 0xc
jmp 0x4fee3d
mov ebp, dword [esp + 0x834]
mov al, byte [esi]
cmp al, 0x13
jne 0x4fee51
mov byte [esi + 0x3d46c], 1
mov byte [esi + 0x3d46d], 1
cmp al, 0x27
je 0x4fee61
cmp al, 0x28
je 0x4fee61
cmp al, 0x2c
je 0x4fee61
cmp al, 0x30
jne 0x4fee78
cmp byte [esi + 0x3d46c], 2
jne 0x4fee78
mov byte [esi + 0x3d46c], 1
mov byte [esi + 0x3d46d], 1
cmp dword [esi + 0x3d2bc], edi
jg 0x4fee8b
cmp dword [esi + 0xc], edi
jg 0x4fee8b
cmp byte [esi + 0x28], 1
jne 0x4fee91
mov dword [esi + 0x3d454], edi
push esi
push ebp
call fcn.004fdcc0
add esp, 8
neg eax
sbb eax, eax
xor ebx, ebx
inc eax
mov dword [esi + 0x3d450], eax
mov eax, dword [esi + 0x3d458]
cmp eax, ebx
je 0x4fef4c
cmp dword [esi + 0xc], edi
jne 0x4fef2e
cmp dword [esi + 0x2c], 0xffffff6a
jne 0x4fef2e
cmp dword [esi + 0x40], ebx
jne 0x4fef2e
lea ecx, [esp + 0x28]
push ebx
push ecx
lea edx, [esp + 0x54]
push 8
push edx
xor eax, eax
push ebx
push ebx
mov dword [esp + 0x64], eax
push 0x7405c
push ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x70], eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4fef1f
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
push ebx
push 0x800
push eax
push ecx
mov dword [esi + 0x2c], ebx
call fcn.00526d20
mov dword [esi + 0x9cc], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x3d450], edi
jmp 0x4fef2e
mov ecx, 0xf524
xor eax, eax
mov edi, esi
mov dword [esp + 0x10], ebx
rep stosd dword es:[edi], eax
cmp dword [esi + 0x3d458], ebx
je 0x4fef4c
cmp byte [esi], 0xff
jne 0x4fef4c
cmp dword [esi + 0x40], 0x57e40
setl dl
dec edx
and edx, 0xf
inc edx
mov byte [esi], dl
push esi
push ebp
call fcn.004ff150
add esp, 8
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x820
ret