Function at 0x4f1ec0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9b6aab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x408
push esi
push edi
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x34], 0
push 0x9bb899
mov ecx, dword [ebp + 0xc]
call fcn.004736c0
mov byte [ebp - 0x18c], 0
xor eax, eax
mov dword [ebp - 0x18b], eax
mov dword [ebp - 0x187], eax
mov dword [ebp - 0x183], eax
mov dword [ebp - 0x17f], eax
mov dword [ebp - 0x17b], eax
mov dword [ebp - 0x177], eax
mov dword [ebp - 0x173], eax
mov dword [ebp - 0x16f], eax
mov byte [ebp - 0x16b], al
mov byte [ebp - 0x164], 0
push 0xff
push 0
lea ecx, [ebp - 0x163]
push ecx
call fcn.0094ea60
add esp, 0xc
push 0xa
lea edx, [ebp - 0x18c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00950a3a
add esp, 0xc
lea ecx, [ebp - 0x164]
add ecx, 0xffffffff
mov dword [ebp - 0x38c], ecx
mov edx, dword [ebp - 0x38c]
mov al, byte [edx + 1]
mov byte [ebp - 0x38d], al
add dword [ebp - 0x38c], 1
cmp byte [ebp - 0x38d], 0
jne 0x4f1f7a
mov edi, dword [ebp - 0x38c]
mov cx, word [0x9bdcb0]
mov word [edi], cx
mov dl, byte [0x9bdcb2]
mov byte [edi + 2], dl
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x4c], 0
fldz
fstp qword [ebp - 0x44]
fldz
fstp qword [ebp - 0x3c]
fldz
fstp qword [ebp - 0x3c]
jmp 0x4f1fdd
fld qword [ebp - 0x3c]
fadd qword [0x9b9c30]
fstp qword [ebp - 0x3c]
fld qword [0x9bdca8]
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x4f203c
fld qword [0x9bdca0]
fmul qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
fsubp st(1)
fld qword [0x9bb520]
fmul qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
fadd qword [0x9ba718]
fdivp st(1)
fadd qword [ebp - 0x44]
fstp qword [ebp - 0x44]
fld qword [0x9bdc98]
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 5
jp 0x4f203a
fld qword [0x9bdc90]
fmul qword [ebp - 0x3c]
fsubr qword [ebp - 0x44]
fstp qword [ebp - 0x44]
jmp 0x4f1fd1
fldz
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jne 0x4f208a
pushal
push 0x482b3c3c
cmp bh, byte [0x332b5a6b]
pop eax
sub esp, dword [ebx + 0x6a]
pop ecx
push eax
xor byte [esi + 0x29], bl
jbe 0x4f20ca
push 0x65
push esp
dec eax
inc eax
mov ecx, 0xbff8c3eb
out dx, al
sar al, 0xba
mov edi, 0xb6edbef3
in al, dx
mov ebx, 0xbbecbaee
out dx, al
mov esi, 0xbbf6b5ef
out dx, eax
mov edi, 0xe9ebbfed
ror byte [esi], 0
add bh, al
inc ebp
mov al, byte [0x4f2065]
mov dword [ebp - 0x60], 0x4f2065
mov dword [ebp - 0x4c], 0x4f2048
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x194], ecx
mov byte [ebp - 0x2b5], 0x21
mov dword [ebp - 0x2ac], 0
jmp 0x4f20cc
mov edx, dword [ebp - 0x2ac]
add edx, 1
mov dword [ebp - 0x2ac], edx
invalid
cmp dword [ebp - 0x2ac], 0x100
jae 0x4f20ed
mov eax, dword [ebp - 0x2ac]
mov cl, byte [ebp - 0x2ac]
mov byte [ebp + eax - 0x2a4], cl
jmp 0x4f20bd
mov dword [ebp - 0x19c], 0
mov byte [ebp - 0x2b6], 0
mov dword [ebp - 0x2ac], 0xff
jmp 0x4f2119
mov edx, dword [ebp - 0x2ac]
sub edx, 1
mov dword [ebp - 0x2ac], edx
cmp dword [ebp - 0x2ac], 0
jbe 0x4f2425
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c4], 1
mov eax, dword [ebp - 0x2c4]
cmp eax, dword [ebp - 0x2ac]
jae 0x4f215a
mov ecx, dword [ebp - 0x2c4]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x2c4], edx
jmp 0x4f213a
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x394], eax
cmp dword [ebp - 0x394], 3
ja case.default.0x4f2179
mov ecx, dword [ebp - 0x394]
jmp dword [ecx*4 + 0x4f3268]
movzx edx, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + edx - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x396]
movzx eax, word [ebp - 0x396]
or eax, 0xc00
mov dword [ebp - 0x39c], eax
fldcw word [ebp - 0x39c]
fistp qword [ebp - 0x3a4]
fldcw word [ebp - 0x396]
mov edx, dword [ebp - 0x3a4]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4f22fe
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x3a6]
movzx eax, word [ebp - 0x3a6]
or eax, 0xc00
mov dword [ebp - 0x3ac], eax
fldcw word [ebp - 0x3ac]
fistp qword [ebp - 0x3b4]
fldcw word [ebp - 0x3a6]
mov edx, dword [ebp - 0x3b4]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4f22fe
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x3b6]
movzx eax, word [ebp - 0x3b6]
or eax, 0xc00
mov dword [ebp - 0x3bc], eax
fldcw word [ebp - 0x3bc]
fistp qword [ebp - 0x3c4]
fldcw word [ebp - 0x3b6]
mov edx, dword [ebp - 0x3c4]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4f22fe
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x3c6]
movzx eax, word [ebp - 0x3c6]
or eax, 0xc00
mov dword [ebp - 0x3cc], eax
fldcw word [ebp - 0x3cc]
fistp qword [ebp - 0x3d4]
fldcw word [ebp - 0x3c6]
mov edx, dword [ebp - 0x3d4]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4f22fe
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
mov edx, dword [ebp - 0x194]
add edx, dword [ebp - 0x19c]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x2b6], cl
mov ecx, dword [ebp - 0x19c]
add ecx, 1
mov dword [ebp - 0x19c], ecx
movzx edx, byte [ebp - 0x2b5]
cmp dword [ebp - 0x19c], edx
jb 0x4f233c
mov dword [ebp - 0x19c], 0
movzx eax, byte [ebp - 0x2b5]
movzx ecx, byte [ebp - 0x2b6]
add ecx, eax
mov byte [ebp - 0x2b6], cl
movzx edx, byte [ebp - 0x2b6]
and edx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x2bc]
add eax, 1
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2bc], 0xb
jbe 0x4f237b
mov eax, dword [ebp - 0x2c0]
xor edx, edx
div dword [ebp - 0x2ac]
mov dword [ebp - 0x2c0], edx
mov ecx, dword [ebp - 0x2c0]
cmp ecx, dword [ebp - 0x2ac]
ja 0x4f215a
mov edx, dword [ebp - 0x2ac]
cmp edx, dword [ebp - 0x2c0]
je 0x4f2420
mov eax, dword [ebp - 0x2c0]
movzx ecx, byte [ebp + eax - 0x2a4]
mov edx, dword [ebp - 0x2ac]
movzx eax, byte [ebp + edx - 0x2a4]
xor eax, ecx
mov ecx, dword [ebp - 0x2ac]
mov byte [ebp + ecx - 0x2a4], al
mov edx, dword [ebp - 0x2ac]
movzx eax, byte [ebp + edx - 0x2a4]
mov ecx, dword [ebp - 0x2c0]
movzx edx, byte [ebp + ecx - 0x2a4]
xor edx, eax
mov eax, dword [ebp - 0x2c0]
mov byte [ebp + eax - 0x2a4], dl
mov ecx, dword [ebp - 0x2c0]
movzx edx, byte [ebp + ecx - 0x2a4]
mov eax, dword [ebp - 0x2ac]
movzx ecx, byte [ebp + eax - 0x2a4]
xor ecx, edx
mov edx, dword [ebp - 0x2ac]
mov byte [ebp + edx - 0x2a4], cl
jmp 0x4f210a
mov al, byte [ebp - 0x2a3]
mov byte [ebp - 0x2b7], al
mov cl, byte [ebp - 0x2a1]
mov byte [ebp - 0x19d], cl
mov dl, byte [ebp - 0x29f]
mov byte [ebp - 0x2a5], dl
mov al, byte [ebp - 0x29d]
mov byte [ebp - 0x2ad], al
movzx ecx, byte [ebp - 0x2b6]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x18d], dl
mov dword [ebp - 0x2b4], 0x20
cmp dword [ebp - 0x2b4], 2
jle 0x4f2f19
mov eax, dword [ebp - 0x2b4]
and eax, 1
jne 0x4f2f19
mov dword [ebp - 0x2e4], 0
mov dword [ebp - 0x2e0], 0
mov ecx, dword [ebp - 0x2e0]
add ecx, 1
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2c8], 0
mov edx, dword [ebp - 0x2e4]
shl edx, 1
mov dword [ebp - 0x2c8], edx
mov dword [ebp - 0x2f4], 0
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x2c8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x2f4]
mov dword [ebp - 0x2f4], ecx
mov dword [ebp - 0x2d0], 0
mov edx, dword [ebp - 0x2d0]
add edx, 0xb5
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2d8], 0
mov eax, dword [ebp - 0x2e4]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x2d8], ecx
mov dword [ebp - 0x304], 0
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d8]
movzx eax, byte [edx]
add eax, dword [ebp - 0x304]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f0], 0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xea
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x300], 0
mov edx, dword [ebp - 0x2f4]
sub edx, dword [ebp - 0x2d0]
add edx, dword [ebp - 0x300]
mov dword [ebp - 0x300], edx
mov dword [ebp - 0x2cc], 0
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x2f0]
add eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2fc], 0
mov ecx, dword [ebp - 0x300]
shl ecx, 4
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0x2ec], 0
mov edx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2dc], 0
mov eax, dword [ebp - 0x2fc]
or eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2dc], eax
mov byte [ebp - 0x2d1], 0
mov cl, byte [ebp - 0x2dc]
mov byte [ebp - 0x2d1], cl
mov byte [ebp - 0x2f5], 0
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + edx - 0x2a4]
mov byte [ebp - 0x2f5], al
movzx ecx, byte [ebp - 0x2b7]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp - 0x19d]
add eax, edx
mov byte [ebp - 0x19d], al
mov cl, byte [ebp - 0x2b7]
add cl, 1
mov byte [ebp - 0x2b7], cl
movzx edx, byte [ebp - 0x19d]
movzx eax, byte [ebp - 0x18d]
mov cl, byte [ebp + edx - 0x2a4]
mov byte [ebp + eax - 0x2a4], cl
movzx edx, byte [ebp - 0x2ad]
movzx eax, byte [ebp - 0x19d]
mov cl, byte [ebp + edx - 0x2a4]
mov byte [ebp + eax - 0x2a4], cl
movzx edx, byte [ebp - 0x2b7]
movzx eax, byte [ebp - 0x2ad]
mov cl, byte [ebp + edx - 0x2a4]
mov byte [ebp + eax - 0x2a4], cl
movzx edx, byte [ebp - 0x2b7]
mov al, byte [ebp - 0x2f5]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2f5]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp - 0x2a5]
add eax, edx
mov byte [ebp - 0x2a5], al
movzx ecx, byte [ebp - 0x2d1]
movzx edx, byte [ebp - 0x19d]
movzx eax, byte [ebp + edx - 0x2a4]
movzx edx, byte [ebp - 0x2b7]
movzx edx, byte [ebp + edx - 0x2a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x2a4]
xor ecx, eax
movzx edx, byte [ebp - 0x2ad]
movzx eax, byte [ebp + edx - 0x2a4]
movzx edx, byte [ebp - 0x18d]
movzx edx, byte [ebp + edx - 0x2a4]
add eax, edx
movzx edx, byte [ebp - 0x2a5]
movzx edx, byte [ebp + edx - 0x2a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp + eax - 0x2a4]
xor ecx, edx
mov byte [ebp - 0x2ad], cl
mov al, byte [ebp - 0x2d1]
mov byte [ebp - 0x18d], al
mov cl, byte [ebp - 0x2ad]
mov byte [ebp - 0x2e5], cl
cmp dword [ebp - 0x2e4], 0
jle 0x4f278b
mov edx, dword [ebp - 0x2e4]
mov al, byte [ebp - 0x2e5]
mov byte [ebp + edx - 0x31], al
mov ecx, dword [ebp - 0x2e0]
add ecx, 7
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x2e4]
add edx, 1
mov dword [ebp - 0x308], edx
jmp 0x4f27ba
mov eax, dword [ebp - 0x308]
add eax, 1
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
cmp ecx, dword [ebp - 0x2e0]
jge 0x4f2a16
mov edx, dword [ebp - 0x2e4]
add edx, 1
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x2e4]
shl eax, 1
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x2c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2d0], 0xb5
mov eax, dword [ebp - 0x2e4]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x2d8], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d8]
movzx eax, byte [edx]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f0], 0xea
mov ecx, dword [ebp - 0x2f4]
sub ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x300], ecx
mov edx, dword [ebp - 0x304]
sub edx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x300]
shl eax, 4
mov dword [ebp - 0x2fc], eax
mov ecx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2fc]
or edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2dc], edx
mov al, byte [ebp - 0x2dc]
mov byte [ebp - 0x2d1], al
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x2f5], dl
movzx eax, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x19d]
add edx, ecx
mov byte [ebp - 0x19d], dl
mov al, byte [ebp - 0x2b7]
add al, 1
mov byte [ebp - 0x2b7], al
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp - 0x19d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
movzx edx, byte [ebp - 0x2ad]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
mov dl, byte [ebp - 0x2f5]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2f5]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x2a5]
add edx, ecx
mov byte [ebp - 0x2a5], dl
movzx eax, byte [ebp - 0x2d1]
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
xor eax, edx
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x18d]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a5]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp + edx - 0x2a4]
xor eax, ecx
mov byte [ebp - 0x2ad], al
mov dl, byte [ebp - 0x2d1]
mov byte [ebp - 0x18d], dl
mov al, byte [ebp - 0x2ad]
mov byte [ebp - 0x2e5], al
cmp dword [ebp - 0x2e4], 0
jle 0x4f2a11
mov ecx, dword [ebp - 0x2e4]
mov dl, byte [ebp - 0x2e5]
mov byte [ebp + ecx - 0x31], dl
jmp 0x4f27ab
mov eax, dword [ebp - 0x2e0]
add eax, 1
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e0]
add ecx, 7
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x2e4]
add edx, 1
mov dword [ebp - 0x30c], edx
jmp 0x4f2a54
mov eax, dword [ebp - 0x30c]
add eax, 1
mov dword [ebp - 0x30c], eax
mov ecx, dword [ebp - 0x30c]
cmp ecx, dword [ebp - 0x2e0]
jge 0x4f2cb0
mov edx, dword [ebp - 0x2e4]
add edx, 1
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x2e4]
shl eax, 1
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x2c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2d0], 0xb5
mov eax, dword [ebp - 0x2e4]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x2d8], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d8]
movzx eax, byte [edx]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f0], 0xea
mov ecx, dword [ebp - 0x2f4]
sub ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x300], ecx
mov edx, dword [ebp - 0x304]
sub edx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x300]
shl eax, 4
mov dword [ebp - 0x2fc], eax
mov ecx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2fc]
or edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2dc], edx
mov al, byte [ebp - 0x2dc]
mov byte [ebp - 0x2d1], al
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x2f5], dl
movzx eax, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x19d]
add edx, ecx
mov byte [ebp - 0x19d], dl
mov al, byte [ebp - 0x2b7]
add al, 1
mov byte [ebp - 0x2b7], al
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp - 0x19d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
movzx edx, byte [ebp - 0x2ad]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
mov dl, byte [ebp - 0x2f5]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2f5]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x2a5]
add edx, ecx
mov byte [ebp - 0x2a5], dl
movzx eax, byte [ebp - 0x2d1]
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
xor eax, edx
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x18d]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a5]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp + edx - 0x2a4]
xor eax, ecx
mov byte [ebp - 0x2ad], al
mov dl, byte [ebp - 0x2d1]
mov byte [ebp - 0x18d], dl
mov al, byte [ebp - 0x2ad]
mov byte [ebp - 0x2e5], al
cmp dword [ebp - 0x2e4], 0
jle 0x4f2cab
mov ecx, dword [ebp - 0x2e4]
mov dl, byte [ebp - 0x2e5]
mov byte [ebp + ecx - 0x31], dl
jmp 0x4f2a45
mov eax, dword [ebp - 0x2e0]
add eax, 1
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e4]
add ecx, 1
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e0]
add edx, 1
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x2e4]
shl eax, 1
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x2c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2d0], 0xb5
mov eax, dword [ebp - 0x2e4]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x2d8], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d8]
movzx eax, byte [edx]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f0], 0xea
mov ecx, dword [ebp - 0x2f4]
sub ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x300], ecx
mov edx, dword [ebp - 0x304]
sub edx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x300]
shl eax, 4
mov dword [ebp - 0x2fc], eax
mov ecx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2fc]
or edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2dc], edx
mov al, byte [ebp - 0x2dc]
mov byte [ebp - 0x2d1], al
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x2f5], dl
movzx eax, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x19d]
add edx, ecx
mov byte [ebp - 0x19d], dl
mov al, byte [ebp - 0x2b7]
add al, 1
mov byte [ebp - 0x2b7], al
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp - 0x19d]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
movzx edx, byte [ebp - 0x2ad]
mov al, byte [ebp + ecx - 0x2a4]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x2b7]
mov dl, byte [ebp - 0x2f5]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2f5]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x2a5]
add edx, ecx
mov byte [ebp - 0x2a5], dl
movzx eax, byte [ebp - 0x2d1]
movzx ecx, byte [ebp - 0x19d]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x2b7]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
xor eax, edx
movzx ecx, byte [ebp - 0x2ad]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx ecx, byte [ebp - 0x18d]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a5]
movzx ecx, byte [ebp + ecx - 0x2a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp + edx - 0x2a4]
xor eax, ecx
mov byte [ebp - 0x2ad], al
mov dl, byte [ebp - 0x2d1]
mov byte [ebp - 0x18d], dl
mov al, byte [ebp - 0x2ad]
mov byte [ebp - 0x2e5], al
cmp dword [ebp - 0x2e4], 0
jle 0x4f2f13
mov ecx, dword [ebp - 0x2e4]
mov dl, byte [ebp - 0x2e5]
mov byte [ebp + ecx - 0x31], dl
mov byte [ebp - 0x21], 0
jmp 0x4f2f4a
mov dword [ebp - 0x310], 0
jmp 0x4f2f34
mov eax, dword [ebp - 0x310]
add eax, 1
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0x10
jge 0x4f2f4a
mov ecx, dword [ebp - 0x310]
mov byte [ebp + ecx - 0x30], 0
jmp 0x4f2f25
lea edx, [ebp - 0x30]
mov dword [ebp - 0x3d8], edx
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x3dc], eax
mov ecx, dword [ebp - 0x3d8]
mov dl, byte [ecx]
mov byte [ebp - 0x3dd], dl
add dword [ebp - 0x3d8], 1
cmp byte [ebp - 0x3dd], 0
jne 0x4f2f5f
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ebp - 0x3dc]
mov ecx, dword [ebp - 0x3dc]
mov dword [ebp - 0x3e4], ecx
mov dword [ebp - 0x3e8], eax
lea edx, [ebp - 0x164]
add edx, 0xffffffff
mov dword [ebp - 0x3ec], edx
mov eax, dword [ebp - 0x3ec]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3ed], cl
add dword [ebp - 0x3ec], 1
cmp byte [ebp - 0x3ed], 0
jne 0x4f2faa
mov edi, dword [ebp - 0x3ec]
mov esi, dword [ebp - 0x3e4]
mov edx, dword [ebp - 0x3e8]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x18c]
mov dword [ebp - 0x3f4], eax
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x3f8], ecx
mov edx, dword [ebp - 0x3f4]
mov al, byte [edx]
mov byte [ebp - 0x3f9], al
add dword [ebp - 0x3f4], 1
cmp byte [ebp - 0x3f9], 0
jne 0x4f3001
mov ecx, dword [ebp - 0x3f4]
sub ecx, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0x3f8]
mov dword [ebp - 0x400], edx
mov dword [ebp - 0x404], ecx
lea eax, [ebp - 0x164]
add eax, 0xffffffff
mov dword [ebp - 0x408], eax
mov ecx, dword [ebp - 0x408]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x409], dl
add dword [ebp - 0x408], 1
cmp byte [ebp - 0x409], 0
jne 0x4f304c
mov edi, dword [ebp - 0x408]
mov esi, dword [ebp - 0x400]
mov eax, dword [ebp - 0x404]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
push 0
push 3
push 0
push 3
push 0
lea ecx, [ebp - 0x164]
push ecx
mov edx, dword [ebp - 0x388]
mov eax, dword [edx + 0xdc]
call eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
jne 0x4f30c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4f3255
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x1c], 0
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x50], 0
push 0
lea eax, [ebp - 0x50]
push eax
push 8
lea ecx, [ebp - 0x1c]
push ecx
push 0xc
lea edx, [ebp - 0x5c]
push edx
push 0x2d1400
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x388]
mov edx, dword [ecx + 0xcc]
call edx
test eax, eax
jne 0x4f3134
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
jmp 0x4f3255
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0094edb7
add esp, 4
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x14]
push ecx
push 0
mov edx, dword [ebp - 0x48]
push edx
call fcn.0094ea60
add esp, 0xc
push 0
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x48]
push edx
push 0xc
lea eax, [ebp - 0x5c]
push eax
push 0x2d1400
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x388]
mov eax, dword [edx + 0xcc]
call eax
test eax, eax
jne 0x4f31c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 0x318]
push edx
call fcn.0094eda1
add esp, 4
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
jmp 0x4f3255
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x168]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4f3230
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x334]
call fcn.00495880
mov dword [ebp - 0x410], eax
mov edx, dword [ebp - 0x410]
mov dword [ebp - 0x414], edx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.004e1aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x334]
call fcn.004b3380
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x338], ecx
mov edx, dword [ebp - 0x338]
push edx
call fcn.0094eda1
add esp, 4
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8