Function at 0x4ff930
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9ba16b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4e0
push esi
push edi
mov dword [ebp - 0x460], ecx
mov dword [ebp - 0x34], 0
push 0x9beba9
mov ecx, dword [ebp + 0xc]
call fcn.00478830
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.00952100
add esp, 0xc
push 0xa
lea edx, [ebp - 0x18c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.009540da
add esp, 0xc
lea ecx, [ebp - 0x164]
add ecx, 0xffffffff
mov dword [ebp - 0x464], ecx
mov edx, dword [ebp - 0x464]
mov al, byte [edx + 1]
mov byte [ebp - 0x465], al
add dword [ebp - 0x464], 1
cmp byte [ebp - 0x465], 0
jne 0x4ff9ea
mov edi, dword [ebp - 0x464]
mov cx, word [0x9c13f8]
mov word [edi], cx
mov dl, byte [0x9c13fa]
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 0x4ffa4d
fld qword [ebp - 0x3c]
fadd qword [0x9bccf0]
fstp qword [ebp - 0x3c]
fld qword [0x9c13f0]
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x4ffaac
fld qword [0x9c13e8]
fmul qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
pushfd
add ah, bl
dec ebp
invalid
invalid
fsubp st(1)
fld qword [0x9c13e0]
fmul qword [ebp - 0x3c]
fmul qword [ebp - 0x3c]
fadd qword [0x9c13d8]
fdivp st(1)
fadd qword [ebp - 0x44]
fstp qword [ebp - 0x44]
fld qword [0x9c13d0]
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 5
jp 0x4ffaaa
fld qword [0x9c13c8]
fmul qword [ebp - 0x3c]
fsubr qword [ebp - 0x44]
fstp qword [ebp - 0x44]
jmp 0x4ffa41
fldz
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jne 0x4ffaef
xchg esi, eax
insb byte es:[edi], dx
xchg ebp, eax
push 0xffffffffffffff9c
imul edx, dword [ecx - 0x6589638f], 0x9769986c
je 0x4ffa61
insd dword es:[edi], dx
xchg ebp, eax
jbe 0x4ffa65
outsd dx, dword [esi]
cdq
push 0xffffffffffffff9e
push 0xffffffffffffff94
jne 0x4ffa68
jae 0x4ffa6f
ja 0x4ffb03
cmp byte [edi + ebp*2], ah
pop eax
je 0x4ffb40
inc eax
pop eax
dec edi
dec ebx
jae 0x4ffb4f
jl 0x4ffb63
jp 0x4ffb66
jmp 0x501a87
mov dword [ebp - 0x60], 0x4ffab8
mov dword [ebp - 0x4c], 0x4ffad8
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x194], ecx
mov byte [ebp - 0x2b5], 0x16
mov dword [ebp - 0x2ac], 0
jmp 0x4ffb31
invalid
mov edx, dword [ebp - 0x2ac]
add edx, 1
mov dword [ebp - 0x2ac], edx
cmp dword [ebp - 0x2ac], 0x100
jae 0x4ffb52
mov eax, dword [ebp - 0x2ac]
mov cl, byte [ebp - 0x2ac]
mov byte [ebp + eax - 0x2a4], cl
jmp 0x4ffb22
std
invalid
invalid
mov dword [ebp - 0x19c], 0
mov byte [ebp - 0x2b6], 0
mov dword [ebp - 0x2ac], 0xff
jmp 0x4ffb7e
std
invalid
mov edx, dword [ebp - 0x2ac]
sub edx, 1
mov dword [ebp - 0x2ac], edx
cmp dword [ebp - 0x2ac], 0
jbe 0x4ffe8a
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c4], 1
mov eax, dword [ebp - 0x2c4]
cmp eax, dword [ebp - 0x2ac]
jae 0x4ffbbf
mov ecx, dword [ebp - 0x2c4]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x2c4], edx
jmp 0x4ffb9f
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 3
ja case.default.0x4ffbde
mov ecx, dword [ebp - 0x46c]
jmp dword [ecx*4 + 0x501da4]
movzx edx, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + edx - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x46e]
movzx eax, word [ebp - 0x46e]
or eax, 0xc00
mov dword [ebp - 0x474], eax
fldcw word [ebp - 0x474]
fistp qword [ebp - 0x47c]
fldcw word [ebp - 0x46e]
mov edx, dword [ebp - 0x47c]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4ffd63
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x47e]
movzx eax, word [ebp - 0x47e]
or eax, 0xc00
mov dword [ebp - 0x484], eax
fldcw word [ebp - 0x484]
fistp qword [ebp - 0x48c]
fldcw word [ebp - 0x47e]
mov edx, dword [ebp - 0x48c]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4ffd63
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x48e]
movzx eax, word [ebp - 0x48e]
or eax, 0xc00
mov dword [ebp - 0x494], eax
fldcw word [ebp - 0x494]
fistp qword [ebp - 0x49c]
fldcw word [ebp - 0x48e]
mov edx, dword [ebp - 0x49c]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4ffd63
movzx eax, byte [ebp - 0x2b6]
movzx ecx, byte [ebp + eax - 0x2a4]
fld qword [ebp - 0x44]
fnstcw word [ebp - 0x49e]
movzx eax, word [ebp - 0x49e]
or eax, 0xc00
mov dword [ebp - 0x4a4], eax
fldcw word [ebp - 0x4a4]
fistp qword [ebp - 0x4ac]
fldcw word [ebp - 0x49e]
mov edx, dword [ebp - 0x4ac]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x2b6], cl
jmp 0x4ffd63
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 0x4ffda1
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 0x4ffde0
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 0x4ffbbf
mov edx, dword [ebp - 0x2ac]
cmp edx, dword [ebp - 0x2c0]
je 0x4ffe85
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 0x4ffb6f
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 0x501a56
mov eax, dword [ebp - 0x2b4]
and eax, 1
jne 0x501a56
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x358], 0
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov dword [ebp - 0x2d0], 0
mov edx, dword [ebp - 0x35c]
shl edx, 1
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x388], 0
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x2d0]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x388]
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x308], 0
mov edx, dword [ebp - 0x308]
add edx, 0x8f
mov dword [ebp - 0x308], edx
mov dword [ebp - 0x33c], 0
mov eax, dword [ebp - 0x35c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x33c], ecx
mov dword [ebp - 0x3a4], 0
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x33c]
movzx eax, byte [edx]
add eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x384], 0
mov ecx, dword [ebp - 0x384]
add ecx, 0x68
mov dword [ebp - 0x384], ecx
mov dword [ebp - 0x3a0], 0
mov edx, dword [ebp - 0x388]
sub edx, dword [ebp - 0x308]
add edx, dword [ebp - 0x3a0]
mov dword [ebp - 0x3a0], edx
mov dword [ebp - 0x2e0], 0
mov eax, dword [ebp - 0x3a4]
sub eax, dword [ebp - 0x384]
add eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x39c], 0
mov ecx, dword [ebp - 0x3a0]
shl ecx, 4
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x380], 0
mov edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], edx
mov dword [ebp - 0x354], 0
mov eax, dword [ebp - 0x39c]
or eax, dword [ebp - 0x380]
mov dword [ebp - 0x354], eax
mov byte [ebp - 0x319], 0
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x319], cl
mov byte [ebp - 0x395], 0
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + edx - 0x2a4]
mov byte [ebp - 0x395], 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 - 0x395]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x395]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp - 0x2a5]
add eax, edx
mov byte [ebp - 0x2a5], al
movzx ecx, byte [ebp - 0x319]
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 - 0x319]
mov byte [ebp - 0x18d], al
mov cl, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], cl
cmp dword [ebp - 0x35c], 0
jle 0x5001ed
mov edx, dword [ebp - 0x35c]
mov al, byte [ebp - 0x379]
mov byte [ebp + edx - 0x31], al
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
mov edx, dword [ebp - 0x358]
add edx, 1
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x35c]
shl eax, 1
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x2d0]
movzx edx, byte [ecx]
mov dword [ebp - 0x388], edx
mov dword [ebp - 0x308], 0x8f
mov eax, dword [ebp - 0x35c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x33c], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x33c]
movzx eax, byte [edx]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x384], 0x68
mov ecx, dword [ebp - 0x388]
sub ecx, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], ecx
mov edx, dword [ebp - 0x3a4]
sub edx, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x3a0]
shl eax, 4
mov dword [ebp - 0x39c], eax
fld dword [0x9c13c4]
fstp dword [ebp - 0x2f0]
fld dword [0x9c13c0]
fstp dword [ebp - 0x350]
fld dword [0x9c13bc]
fstp dword [ebp - 0x360]
fld dword [0x9bdc98]
fstp dword [ebp - 0x318]
fld dword [0x9c13b8]
fstp dword [ebp - 0x338]
fld dword [0x9bee68]
fstp dword [ebp - 0x378]
fld dword [ebp - 0x350]
fsub dword [ebp - 0x378]
fstp dword [ebp - 0x350]
fld dword [ebp - 0x338]
fmul dword [ebp - 0x378]
fstp dword [ebp - 0x338]
fld dword [ebp - 0x318]
fadd dword [ebp - 0x378]
fstp dword [ebp - 0x318]
fld dword [ebp - 0x2f0]
fmul dword [ebp - 0x378]
fstp dword [ebp - 0x2f0]
fld dword [ebp - 0x338]
fadd dword [ebp - 0x378]
fstp dword [ebp - 0x338]
fld dword [ebp - 0x2f0]
fsub dword [ebp - 0x378]
fstp dword [ebp - 0x2f0]
fld dword [ebp - 0x378]
fld dword [ebp - 0x2f0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x5003dd
fld dword [ebp - 0x350]
fsub dword [ebp - 0x360]
fstp dword [ebp - 0x350]
fld dword [ebp - 0x338]
fadd dword [ebp - 0x378]
fstp dword [ebp - 0x338]
fld dword [ebp - 0x378]
fsub dword [ebp - 0x2f0]
fstp dword [ebp - 0x378]
fld dword [ebp - 0x2f0]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x2f0]
fld dword [ebp - 0x318]
fmul dword [ebp - 0x338]
fstp dword [ebp - 0x318]
fld dword [ebp - 0x338]
fmul dword [ebp - 0x378]
fstp dword [ebp - 0x338]
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], ecx
jmp 0x500449
fld dword [ebp - 0x350]
fsub dword [ebp - 0x318]
fstp dword [ebp - 0x350]
fld dword [ebp - 0x318]
fadd dword [ebp - 0x378]
fstp dword [ebp - 0x318]
fld dword [ebp - 0x338]
fadd dword [ebp - 0x2f0]
fstp dword [ebp - 0x338]
fld dword [ebp - 0x338]
fadd dword [ebp - 0x2f0]
fstp dword [ebp - 0x338]
fld dword [ebp - 0x350]
fdiv dword [ebp - 0x318]
fstp dword [ebp - 0x350]
fld dword [ebp - 0x378]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x378]
mov edx, dword [ebp - 0x39c]
or edx, dword [ebp - 0x380]
mov dword [ebp - 0x354], edx
mov al, byte [ebp - 0x354]
mov byte [ebp - 0x319], al
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x395], 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 - 0x395]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x395]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x2a5]
add edx, ecx
mov byte [ebp - 0x2a5], dl
movzx eax, byte [ebp - 0x319]
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 - 0x319]
mov byte [ebp - 0x18d], dl
mov al, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], al
cmp dword [ebp - 0x35c], 0
jle 0x5005e4
mov ecx, dword [ebp - 0x35c]
mov dl, byte [ebp - 0x379]
mov byte [ebp + ecx - 0x31], dl
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
fld qword [0x9c13b0]
fstp qword [ebp - 0x394]
fld qword [0x9c13a8]
fstp qword [ebp - 0x324]
fld qword [0x9c13a0]
fstp qword [ebp - 0x344]
fld qword [ebp - 0x324]
fmul qword [ebp - 0x344]
fstp qword [ebp - 0x324]
fld qword [ebp - 0x394]
fmul qword [ebp - 0x344]
fstp qword [ebp - 0x394]
fld qword [ebp - 0x394]
fmul qword [ebp - 0x344]
fstp qword [ebp - 0x394]
fld qword [ebp - 0x344]
fcomp qword [ebp - 0x394]
fnstsw ax
test ah, 0x41
jne 0x500698
fld qword [ebp - 0x344]
fadd qword [ebp - 0x324]
fstp qword [ebp - 0x344]
fld qword [ebp - 0x344]
fadd qword [ebp - 0x324]
fstp qword [ebp - 0x344]
fld qword [ebp - 0x344]
fmul qword [ebp - 0x324]
fstp qword [ebp - 0x344]
jmp 0x5006dd
fld qword [ebp - 0x324]
fsub qword [ebp - 0x394]
fstp qword [ebp - 0x324]
fld qword [ebp - 0x344]
fmul qword [ebp - 0x324]
fstp qword [ebp - 0x344]
fld qword [ebp - 0x394]
fsub qword [ebp - 0x344]
fstp qword [ebp - 0x394]
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov edx, dword [ebp - 0x35c]
shl edx, 1
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x2d0]
movzx ecx, byte [eax]
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x308], 0x8f
mov edx, dword [ebp - 0x35c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x33c]
movzx edx, byte [ecx]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x384], 0x68
fld qword [0x9c1398]
fstp qword [ebp - 0x304]
fld qword [0x9c1390]
fstp qword [ebp - 0x374]
fld qword [0x9c1388]
fstp qword [ebp - 0x2dc]
fld qword [0x9c1380]
fstp qword [ebp - 0x2ec]
fld qword [0x9c1378]
fstp qword [ebp - 0x2cc]
fld qword [ebp - 0x374]
fmul qword [ebp - 0x2cc]
fstp qword [ebp - 0x374]
fld qword [ebp - 0x374]
fmul qword [ebp - 0x2cc]
fstp qword [ebp - 0x374]
fld qword [ebp - 0x2ec]
fadd qword [ebp - 0x2cc]
fstp qword [ebp - 0x2ec]
fld qword [ebp - 0x374]
fsub qword [ebp - 0x2cc]
fstp qword [ebp - 0x374]
fld qword [ebp - 0x2ec]
fadd qword [ebp - 0x2cc]
fstp qword [ebp - 0x2ec]
fld qword [ebp - 0x2cc]
fcomp qword [ebp - 0x374]
fnstsw ax
test ah, 0x41
jne 0x50083e
fld qword [ebp - 0x2cc]
fmul qword [ebp - 0x304]
fstp qword [ebp - 0x2cc]
fld qword [ebp - 0x304]
fdiv qword [ebp - 0x374]
fstp qword [ebp - 0x304]
fld qword [ebp - 0x2dc]
fadd qword [ebp - 0x2ec]
fstp qword [ebp - 0x2dc]
fld qword [ebp - 0x304]
fdiv qword [ebp - 0x374]
fstp qword [ebp - 0x304]
fld qword [ebp - 0x2ec]
fmul qword [ebp - 0x2cc]
fstp qword [ebp - 0x2ec]
jmp 0x5008aa
fld qword [ebp - 0x2dc]
fsub qword [ebp - 0x2ec]
fstp qword [ebp - 0x2dc]
fld qword [ebp - 0x2ec]
fmul qword [ebp - 0x2cc]
fstp qword [ebp - 0x2ec]
fld qword [ebp - 0x2dc]
fsub qword [ebp - 0x2ec]
fstp qword [ebp - 0x2dc]
fld qword [ebp - 0x304]
fmul qword [ebp - 0x374]
fstp qword [ebp - 0x304]
fld qword [ebp - 0x2ec]
fsub qword [ebp - 0x2cc]
fstp qword [ebp - 0x2ec]
mov eax, dword [ebp - 0x388]
sub eax, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], eax
mov ecx, dword [ebp - 0x3a4]
sub ecx, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x3a0]
shl edx, 4
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x39c]
or ecx, dword [ebp - 0x380]
mov dword [ebp - 0x354], ecx
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x319], dl
movzx eax, byte [ebp - 0x18d]
mov cl, byte [ebp + eax - 0x2a4]
mov byte [ebp - 0x395], cl
movzx edx, byte [ebp - 0x2b7]
movzx eax, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp - 0x19d]
add ecx, eax
mov byte [ebp - 0x19d], cl
mov dl, byte [ebp - 0x2b7]
add dl, 1
mov byte [ebp - 0x2b7], dl
movzx eax, byte [ebp - 0x19d]
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2ad]
movzx ecx, byte [ebp - 0x19d]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2b7]
movzx ecx, byte [ebp - 0x2ad]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2b7]
mov cl, byte [ebp - 0x395]
mov byte [ebp + eax - 0x2a4], cl
movzx edx, byte [ebp - 0x395]
movzx eax, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp - 0x2a5]
add ecx, eax
mov byte [ebp - 0x2a5], cl
movzx edx, byte [ebp - 0x319]
movzx eax, byte [ebp - 0x19d]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx eax, byte [ebp - 0x2b7]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x2a4]
xor edx, ecx
movzx eax, byte [ebp - 0x2ad]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx eax, byte [ebp - 0x18d]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
movzx eax, byte [ebp - 0x2a5]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp + ecx - 0x2a4]
xor edx, eax
mov byte [ebp - 0x2ad], dl
mov cl, byte [ebp - 0x319]
mov byte [ebp - 0x18d], cl
mov dl, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], dl
cmp dword [ebp - 0x35c], 0
jle 0x500a73
mov eax, dword [ebp - 0x35c]
mov cl, byte [ebp - 0x379]
mov byte [ebp + eax - 0x31], cl
mov edx, dword [ebp - 0x358]
add edx, 5
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x3a8], eax
jmp 0x500aa2
mov ecx, dword [ebp - 0x3a8]
add ecx, 1
mov dword [ebp - 0x3a8], ecx
mov edx, dword [ebp - 0x3a8]
cmp edx, dword [ebp - 0x358]
jge 0x501002
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x35c]
shl ecx, 1
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d0]
movzx eax, byte [edx]
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x308], 0x8f
mov ecx, dword [ebp - 0x35c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x33c]
movzx ecx, byte [eax]
mov dword [ebp - 0x3a4], ecx
mov dword [ebp - 0x384], 0x68
mov edx, dword [ebp - 0x388]
sub edx, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], edx
mov eax, dword [ebp - 0x3a4]
sub eax, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x3a0]
shl ecx, 4
mov dword [ebp - 0x39c], ecx
mov edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x39c]
or eax, dword [ebp - 0x380]
mov dword [ebp - 0x354], eax
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x319], cl
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + edx - 0x2a4]
mov byte [ebp - 0x395], 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
fld dword [0x9c1374]
fstp dword [ebp - 0x3b0]
fld dword [0x9c1370]
fstp dword [ebp - 0x3b4]
fld dword [0x9c136c]
fstp dword [ebp - 0x3b8]
fld dword [0x9c1368]
fstp dword [ebp - 0x3c0]
fld dword [0x9c1364]
fstp dword [ebp - 0x3ac]
fld dword [0x9c1360]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3ac]
fmul dword [ebp - 0x3bc]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b0]
fmul dword [ebp - 0x3bc]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3b0]
fsub dword [ebp - 0x3bc]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3b0]
fsub dword [ebp - 0x3bc]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3ac]
fmul dword [ebp - 0x3bc]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b0]
fadd dword [ebp - 0x3bc]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3bc]
fld dword [ebp - 0x3ac]
fcompp
fnstsw ax
test ah, 0x41
jne 0x500d17
fld dword [ebp - 0x3bc]
fmul dword [ebp - 0x3b0]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3b8]
fmul dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b8]
fld dword [ebp - 0x3c0]
fsub dword [ebp - 0x3ac]
fstp dword [ebp - 0x3c0]
fld dword [ebp - 0x3b0]
fmul dword [ebp - 0x3b4]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3ac]
fmul dword [ebp - 0x3bc]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3bc]
fadd dword [ebp - 0x3b0]
fstp dword [ebp - 0x3bc]
movzx edx, byte [ebp - 0x19d]
movzx eax, byte [ebp - 0x18d]
mov cl, byte [ebp + edx - 0x2a4]
mov byte [ebp + eax - 0x2a4], cl
jmp 0x500ede
fld dword [ebp - 0x3bc]
fdiv dword [ebp - 0x3b4]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3ac]
fdiv dword [ebp - 0x3b0]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b0]
fdiv dword [ebp - 0x3b8]
fstp dword [ebp - 0x3b0]
fld dword [ebp - 0x3bc]
fsub dword [ebp - 0x3b4]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3b4]
fsub dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b4]
fld dword [ebp - 0x3ac]
fdiv dword [ebp - 0x3b0]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b8]
fadd dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b8]
fld dword [ebp - 0x3ac]
fadd dword [ebp - 0x3bc]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b8]
fmul dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b8]
fld dword [ebp - 0x3b8]
fadd dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b8]
fld dword [ebp - 0x3bc]
fdiv dword [ebp - 0x3b0]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3c0]
fsub dword [ebp - 0x3ac]
fstp dword [ebp - 0x3c0]
fld dword [ebp - 0x3c0]
fld dword [ebp - 0x3bc]
fcompp
fnstsw ax
test ah, 5
jp 0x500e72
fld dword [ebp - 0x3b8]
fadd dword [ebp - 0x3ac]
fstp dword [ebp - 0x3b8]
fld dword [ebp - 0x3c0]
fadd dword [ebp - 0x3bc]
fstp dword [ebp - 0x3c0]
fld dword [ebp - 0x3ac]
fmul dword [ebp - 0x3b0]
fstp dword [ebp - 0x3ac]
fld dword [ebp - 0x3b4]
fadd dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b4]
fld dword [ebp - 0x3bc]
fadd dword [ebp - 0x3b4]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3b8]
fsub dword [ebp - 0x3ac]
fstp dword [ebp - 0x3b8]
jmp 0x500ede
fld dword [ebp - 0x3c0]
fdiv dword [ebp - 0x3ac]
fstp dword [ebp - 0x3c0]
fld dword [ebp - 0x3b4]
fsub dword [ebp - 0x3b8]
fstp dword [ebp - 0x3b4]
fld dword [ebp - 0x3bc]
fsub dword [ebp - 0x3b0]
fstp dword [ebp - 0x3bc]
fld dword [ebp - 0x3b4]
fadd dword [ebp - 0x3b8]
fstp dword [ebp - 0x3b4]
fld dword [ebp - 0x3b4]
fdiv dword [ebp - 0x3b8]
fstp dword [ebp - 0x3b4]
fld dword [ebp - 0x3b8]
fadd dword [ebp - 0x3c0]
fstp dword [ebp - 0x3b8]
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 - 0x395]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x395]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp - 0x2a5]
add eax, edx
mov byte [ebp - 0x2a5], al
movzx ecx, byte [ebp - 0x319]
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 - 0x319]
mov byte [ebp - 0x18d], al
mov cl, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], cl
cmp dword [ebp - 0x35c], 0
jle 0x500ffd
mov edx, dword [ebp - 0x35c]
mov al, byte [ebp - 0x379]
mov byte [ebp + edx - 0x31], al
jmp 0x500a93
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
mov eax, dword [ebp - 0x358]
add eax, 1
mov dword [ebp - 0x358], eax
mov ecx, dword [ebp - 0x35c]
shl ecx, 1
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x2d0]
movzx eax, byte [edx]
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x308], 0x8f
mov ecx, dword [ebp - 0x35c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x33c]
movzx ecx, byte [eax]
mov dword [ebp - 0x3a4], ecx
mov dword [ebp - 0x384], 0x68
mov edx, dword [ebp - 0x388]
sub edx, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], edx
mov eax, dword [ebp - 0x3a4]
sub eax, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x3a0]
shl ecx, 4
mov dword [ebp - 0x39c], ecx
mov edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x39c]
or eax, dword [ebp - 0x380]
mov dword [ebp - 0x354], eax
fld qword [0x9bf1c8]
fstp qword [ebp - 0x314]
fld qword [0x9be230]
fstp qword [ebp - 0x334]
fld qword [0x9bf1c0]
fstp qword [ebp - 0x36c]
fld qword [0x9c1358]
fstp qword [ebp - 0x32c]
fld qword [0x9bf1b8]
fstp qword [ebp - 0x34c]
fld qword [0x9c1350]
fstp qword [ebp - 0x2fc]
fld qword [ebp - 0x314]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x334]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x34c]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x34c]
fld qword [ebp - 0x334]
fsub qword [ebp - 0x2fc]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x36c]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x36c]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x314]
fcomp qword [ebp - 0x2fc]
fnstsw ax
test ah, 0x41
jne 0x501220
fld qword [ebp - 0x36c]
fmul qword [ebp - 0x32c]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x314]
fsub qword [ebp - 0x334]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
fmul qword [ebp - 0x334]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
fmul qword [ebp - 0x334]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x34c]
fadd qword [ebp - 0x2fc]
fstp qword [ebp - 0x34c]
fld qword [ebp - 0x34c]
fsub qword [ebp - 0x2fc]
fstp qword [ebp - 0x34c]
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x319], cl
jmp 0x5013e5
fld qword [ebp - 0x34c]
fmul qword [ebp - 0x314]
fstp qword [ebp - 0x34c]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x2fc]
fmul qword [ebp - 0x334]
fstp qword [ebp - 0x2fc]
fld qword [ebp - 0x2fc]
fdiv qword [ebp - 0x334]
fstp qword [ebp - 0x2fc]
fld qword [ebp - 0x2fc]
fsub qword [ebp - 0x334]
fstp qword [ebp - 0x2fc]
fld qword [ebp - 0x334]
fadd qword [ebp - 0x32c]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x334]
fsub qword [ebp - 0x32c]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x34c]
fmul qword [ebp - 0x314]
fstp qword [ebp - 0x34c]
fld qword [ebp - 0x314]
fsub qword [ebp - 0x36c]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x334]
fmul qword [ebp - 0x32c]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x334]
fcomp qword [ebp - 0x2fc]
fnstsw ax
test ah, 5
jp 0x501379
fld qword [ebp - 0x36c]
fmul qword [ebp - 0x32c]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x34c]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x32c]
fadd qword [ebp - 0x34c]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x36c]
fdiv qword [ebp - 0x32c]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x314]
fmul qword [ebp - 0x334]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x334]
fmul qword [ebp - 0x36c]
fstp qword [ebp - 0x334]
jmp 0x5013e5
fld qword [ebp - 0x36c]
fadd qword [ebp - 0x34c]
fstp qword [ebp - 0x36c]
fld qword [ebp - 0x314]
fmul qword [ebp - 0x36c]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x32c]
fmul qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x334]
fdiv qword [ebp - 0x32c]
fstp qword [ebp - 0x334]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
fld qword [ebp - 0x32c]
fdiv qword [ebp - 0x2fc]
fstp qword [ebp - 0x32c]
movzx edx, byte [ebp - 0x18d]
mov al, byte [ebp + edx - 0x2a4]
mov byte [ebp - 0x395], 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 - 0x395]
mov byte [ebp + edx - 0x2a4], al
movzx ecx, byte [ebp - 0x395]
movzx edx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp - 0x2a5]
add eax, edx
mov byte [ebp - 0x2a5], al
movzx ecx, byte [ebp - 0x319]
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 - 0x319]
mov byte [ebp - 0x18d], al
mov cl, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], cl
cmp dword [ebp - 0x35c], 0
jle 0x501561
mov edx, dword [ebp - 0x35c]
mov al, byte [ebp - 0x379]
mov byte [ebp + edx - 0x31], al
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
mov edx, dword [ebp - 0x358]
add edx, 1
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x35c]
shl eax, 1
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x2d0]
movzx edx, byte [ecx]
mov dword [ebp - 0x388], edx
mov dword [ebp - 0x308], 0x8f
mov eax, dword [ebp - 0x35c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x33c], ecx
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x33c]
movzx eax, byte [edx]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x384], 0x68
mov ecx, dword [ebp - 0x388]
sub ecx, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], ecx
mov edx, dword [ebp - 0x3a4]
sub edx, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x3a0]
shl eax, 4
mov dword [ebp - 0x39c], eax
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0x39c]
or edx, dword [ebp - 0x380]
mov dword [ebp - 0x354], edx
mov al, byte [ebp - 0x354]
mov byte [ebp - 0x319], al
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + ecx - 0x2a4]
mov byte [ebp - 0x395], 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 - 0x395]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x395]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx edx, byte [ebp - 0x2a5]
add edx, ecx
mov byte [ebp - 0x2a5], dl
movzx eax, byte [ebp - 0x319]
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 - 0x319]
mov byte [ebp - 0x18d], dl
mov al, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], al
cmp dword [ebp - 0x35c], 0
jle 0x5017b5
mov ecx, dword [ebp - 0x35c]
mov dl, byte [ebp - 0x379]
mov byte [ebp + ecx - 0x31], dl
mov eax, dword [ebp - 0x358]
add eax, 6
mov dword [ebp - 0x358], eax
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x3c4], ecx
jmp 0x5017e4
mov edx, dword [ebp - 0x3c4]
add edx, 1
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp - 0x3c4]
cmp eax, dword [ebp - 0x358]
jge 0x501a41
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
mov edx, dword [ebp - 0x35c]
shl edx, 1
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x2d0]
movzx ecx, byte [eax]
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x308], 0x8f
mov edx, dword [ebp - 0x35c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x33c]
movzx edx, byte [ecx]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x384], 0x68
mov eax, dword [ebp - 0x388]
sub eax, dword [ebp - 0x308]
mov dword [ebp - 0x3a0], eax
mov ecx, dword [ebp - 0x3a4]
sub ecx, dword [ebp - 0x384]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x3a0]
shl edx, 4
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x39c]
or ecx, dword [ebp - 0x380]
mov dword [ebp - 0x354], ecx
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x319], dl
movzx eax, byte [ebp - 0x18d]
mov cl, byte [ebp + eax - 0x2a4]
mov byte [ebp - 0x395], cl
movzx edx, byte [ebp - 0x2b7]
movzx eax, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp - 0x19d]
add ecx, eax
mov byte [ebp - 0x19d], cl
mov dl, byte [ebp - 0x2b7]
add dl, 1
mov byte [ebp - 0x2b7], dl
movzx eax, byte [ebp - 0x19d]
movzx ecx, byte [ebp - 0x18d]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2ad]
movzx ecx, byte [ebp - 0x19d]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2b7]
movzx ecx, byte [ebp - 0x2ad]
mov dl, byte [ebp + eax - 0x2a4]
mov byte [ebp + ecx - 0x2a4], dl
movzx eax, byte [ebp - 0x2b7]
mov cl, byte [ebp - 0x395]
mov byte [ebp + eax - 0x2a4], cl
movzx edx, byte [ebp - 0x395]
movzx eax, byte [ebp + edx - 0x2a4]
movzx ecx, byte [ebp - 0x2a5]
add ecx, eax
mov byte [ebp - 0x2a5], cl
movzx edx, byte [ebp - 0x319]
movzx eax, byte [ebp - 0x19d]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx eax, byte [ebp - 0x2b7]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x2a4]
xor edx, ecx
movzx eax, byte [ebp - 0x2ad]
movzx ecx, byte [ebp + eax - 0x2a4]
movzx eax, byte [ebp - 0x18d]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
movzx eax, byte [ebp - 0x2a5]
movzx eax, byte [ebp + eax - 0x2a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x2a4]
movzx eax, byte [ebp + ecx - 0x2a4]
xor edx, eax
mov byte [ebp - 0x2ad], dl
mov cl, byte [ebp - 0x319]
mov byte [ebp - 0x18d], cl
mov dl, byte [ebp - 0x2ad]
mov byte [ebp - 0x379], dl
cmp dword [ebp - 0x35c], 0
jle 0x501a3c
mov eax, dword [ebp - 0x35c]
mov cl, byte [ebp - 0x379]
mov byte [ebp + eax - 0x31], cl
jmp 0x5017d5
mov edx, dword [ebp - 0x358]
add edx, 1
mov dword [ebp - 0x358], edx
mov byte [ebp - 0x21], 0
jmp 0x501a87
mov dword [ebp - 0x3c8], 0
jmp 0x501a71
mov eax, dword [ebp - 0x3c8]
add eax, 1
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0x10
jge 0x501a87
mov ecx, dword [ebp - 0x3c8]
mov byte [ebp + ecx - 0x30], 0
jmp 0x501a62
lea edx, [ebp - 0x30]
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x4b0]
mov dword [ebp - 0x4b4], eax
mov ecx, dword [ebp - 0x4b0]
mov dl, byte [ecx]
mov byte [ebp - 0x4b5], dl
add dword [ebp - 0x4b0], 1
cmp byte [ebp - 0x4b5], 0
jne 0x501a9c
mov eax, dword [ebp - 0x4b0]
sub eax, dword [ebp - 0x4b4]
mov ecx, dword [ebp - 0x4b4]
mov dword [ebp - 0x4bc], ecx
mov dword [ebp - 0x4c0], eax
lea edx, [ebp - 0x164]
add edx, 0xffffffff
mov dword [ebp - 0x4c4], edx
mov eax, dword [ebp - 0x4c4]
mov cl, byte [eax + 1]
mov byte [ebp - 0x4c5], cl
add dword [ebp - 0x4c4], 1
cmp byte [ebp - 0x4c5], 0
jne 0x501ae7
mov edi, dword [ebp - 0x4c4]
mov esi, dword [ebp - 0x4bc]
mov edx, dword [ebp - 0x4c0]
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 - 0x4cc], eax
mov ecx, dword [ebp - 0x4cc]
mov dword [ebp - 0x4d0], ecx
mov edx, dword [ebp - 0x4cc]
mov al, byte [edx]
mov byte [ebp - 0x4d1], al
add dword [ebp - 0x4cc], 1
cmp byte [ebp - 0x4d1], 0
jne 0x501b3e
mov ecx, dword [ebp - 0x4cc]
sub ecx, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4d8], edx
mov dword [ebp - 0x4dc], ecx
lea eax, [ebp - 0x164]
add eax, 0xffffffff
mov dword [ebp - 0x4e0], eax
mov ecx, dword [ebp - 0x4e0]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x4e1], dl
add dword [ebp - 0x4e0], 1
cmp byte [ebp - 0x4e1], 0
jne 0x501b89
mov edi, dword [ebp - 0x4e0]
mov esi, dword [ebp - 0x4d8]
mov eax, dword [ebp - 0x4dc]
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 - 0x460]
mov eax, dword [edx + 0xdc]
call eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
jne 0x501bfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x501d92
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 - 0x460]
mov edx, dword [ecx + 0xcc]
call edx
test eax, eax
jne 0x501c71
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 0x501d92
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00952457
add esp, 4
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x14]
push ecx
push 0
mov edx, dword [ebp - 0x48]
push edx
call fcn.00952100
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 - 0x460]
mov eax, dword [edx + 0xcc]
call eax
test eax, eax
jne 0x501d06
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x3d0], ecx
mov edx, dword [ebp - 0x3d0]
push edx
call fcn.00952441
add esp, 4
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
jmp 0x501d92
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 0x501d6d
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x3ec]
call fcn.0049b700
mov dword [ebp - 0x4e8], eax
mov edx, dword [ebp - 0x4e8]
mov dword [ebp - 0x4ec], edx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x4ec]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.004ec9d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3ec]
call fcn.004ba200
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x3f0], ecx
mov edx, dword [ebp - 0x3f0]
push edx
call fcn.00952441
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