45ff77:	ff 76 04             	push   0x4(%esi)
45ff7a:	ff 36                	push   (%esi)
45ff7c:	e8 de 7f ff ff       	call   0x457f5f
45ff81:	83 c4 10             	add    $0x10,%esp
45ff84:	89 5e 34             	mov    %ebx,0x34(%esi)
45ff87:	84 c0                	test   %al,%al
45ff89:	0f b7 07             	movzwl (%edi),%eax
45ff8c:	74 0b                	je     0x45ff99
45ff8e:	d1 e8                	shr    $1,%eax
45ff90:	89 46 38             	mov    %eax,0x38(%esi)
45ff93:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
45ff97:	eb 17                	jmp    0x45ffb0
45ff99:	89 46 38             	mov    %eax,0x38(%esi)
45ff9c:	eb 0e                	jmp    0x45ffac
45ff9e:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
45ffa5:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
45ffac:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
45ffb0:	5f                   	pop    %edi
45ffb1:	5e                   	pop    %esi
45ffb2:	b0 01                	mov    $0x1,%al
45ffb4:	5b                   	pop    %ebx
45ffb5:	c3                   	ret
45ffb6:	8b ff                	mov    %edi,%edi
45ffb8:	55                   	push   %ebp
45ffb9:	8b ec                	mov    %esp,%ebp
45ffbb:	51                   	push   %ecx
45ffbc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
45ffc0:	8d 45 fc             	lea    -0x4(%ebp),%eax
45ffc3:	56                   	push   %esi
45ffc4:	50                   	push   %eax
45ffc5:	8b f1                	mov    %ecx,%esi
45ffc7:	e8 bd 6e ff ff       	call   0x456e89
45ffcc:	84 c0                	test   %al,%al
45ffce:	74 60                	je     0x460030
45ffd0:	8b ce                	mov    %esi,%ecx
45ffd2:	e8 d6 be ff ff       	call   0x45bead
45ffd7:	84 c0                	test   %al,%al
45ffd9:	74 53                	je     0x46002e
45ffdb:	53                   	push   %ebx
45ffdc:	57                   	push   %edi
45ffdd:	8b 7d fc             	mov    -0x4(%ebp),%edi
45ffe0:	85 ff                	test   %edi,%edi
45ffe2:	74 36                	je     0x46001a
45ffe4:	8b 5f 04             	mov    0x4(%edi),%ebx
45ffe7:	85 db                	test   %ebx,%ebx
45ffe9:	74 2f                	je     0x46001a
45ffeb:	ff 76 2c             	push   0x2c(%esi)
45ffee:	0f b7 46 32          	movzwl 0x32(%esi),%eax
45fff2:	50                   	push   %eax
45fff3:	ff 76 04             	push   0x4(%esi)
45fff6:	ff 36                	push   (%esi)
45fff8:	e8 62 7f ff ff       	call   0x457f5f
45fffd:	83 c4 10             	add    $0x10,%esp
460000:	89 5e 34             	mov    %ebx,0x34(%esi)
460003:	84 c0                	test   %al,%al
460005:	0f b7 07             	movzwl (%edi),%eax
460008:	74 0b                	je     0x460015
46000a:	d1 e8                	shr    $1,%eax
46000c:	89 46 38             	mov    %eax,0x38(%esi)
46000f:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
460013:	eb 17                	jmp    0x46002c
460015:	89 46 38             	mov    %eax,0x38(%esi)
460018:	eb 0e                	jmp    0x460028
46001a:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
460021:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
460028:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
46002c:	5f                   	pop    %edi
46002d:	5b                   	pop    %ebx
46002e:	b0 01                	mov    $0x1,%al
460030:	5e                   	pop    %esi
460031:	8b e5                	mov    %ebp,%esp
460033:	5d                   	pop    %ebp
460034:	c3                   	ret
460035:	8b ff                	mov    %edi,%edi
460037:	53                   	push   %ebx
460038:	56                   	push   %esi
460039:	8b f1                	mov    %ecx,%esi
46003b:	57                   	push   %edi
46003c:	83 46 14 04          	addl   $0x4,0x14(%esi)
460040:	8b 46 14             	mov    0x14(%esi),%eax
460043:	8b 78 fc             	mov    -0x4(%eax),%edi
460046:	85 ff                	test   %edi,%edi
460048:	74 36                	je     0x460080
46004a:	8b 5f 04             	mov    0x4(%edi),%ebx
46004d:	85 db                	test   %ebx,%ebx
46004f:	74 2f                	je     0x460080
460051:	ff 76 2c             	push   0x2c(%esi)
460054:	0f b7 46 32          	movzwl 0x32(%esi),%eax
460058:	50                   	push   %eax
460059:	ff 76 04             	push   0x4(%esi)
46005c:	ff 36                	push   (%esi)
46005e:	e8 fc 7e ff ff       	call   0x457f5f
460063:	83 c4 10             	add    $0x10,%esp
460066:	89 5e 34             	mov    %ebx,0x34(%esi)
460069:	84 c0                	test   %al,%al
46006b:	0f b7 07             	movzwl (%edi),%eax
46006e:	74 0b                	je     0x46007b
460070:	d1 e8                	shr    $1,%eax
460072:	89 46 38             	mov    %eax,0x38(%esi)
460075:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
460079:	eb 17                	jmp    0x460092
46007b:	89 46 38             	mov    %eax,0x38(%esi)
46007e:	eb 0e                	jmp    0x46008e
460080:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
460087:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
46008e:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
460092:	5f                   	pop    %edi
460093:	5e                   	pop    %esi
460094:	b0 01                	mov    $0x1,%al
460096:	5b                   	pop    %ebx
460097:	c3                   	ret
460098:	8b ff                	mov    %edi,%edi
46009a:	53                   	push   %ebx
46009b:	56                   	push   %esi
46009c:	8b f1                	mov    %ecx,%esi
46009e:	57                   	push   %edi
46009f:	83 46 14 04          	addl   $0x4,0x14(%esi)
4600a3:	8b 46 14             	mov    0x14(%esi),%eax
4600a6:	8b 78 fc             	mov    -0x4(%eax),%edi
4600a9:	85 ff                	test   %edi,%edi
4600ab:	74 36                	je     0x4600e3
4600ad:	8b 5f 04             	mov    0x4(%edi),%ebx
4600b0:	85 db                	test   %ebx,%ebx
4600b2:	74 2f                	je     0x4600e3
4600b4:	ff 76 2c             	push   0x2c(%esi)
4600b7:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4600bb:	50                   	push   %eax
4600bc:	ff 76 04             	push   0x4(%esi)
4600bf:	ff 36                	push   (%esi)
4600c1:	e8 99 7e ff ff       	call   0x457f5f
4600c6:	83 c4 10             	add    $0x10,%esp
4600c9:	89 5e 34             	mov    %ebx,0x34(%esi)
4600cc:	84 c0                	test   %al,%al
4600ce:	0f b7 07             	movzwl (%edi),%eax
4600d1:	74 0b                	je     0x4600de
4600d3:	d1 e8                	shr    $1,%eax
4600d5:	89 46 38             	mov    %eax,0x38(%esi)
4600d8:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4600dc:	eb 17                	jmp    0x4600f5
4600de:	89 46 38             	mov    %eax,0x38(%esi)
4600e1:	eb 0e                	jmp    0x4600f1
4600e3:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
4600ea:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
4600f1:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
4600f5:	5f                   	pop    %edi
4600f6:	5e                   	pop    %esi
4600f7:	b0 01                	mov    $0x1,%al
4600f9:	5b                   	pop    %ebx
4600fa:	c3                   	ret
4600fb:	8b ff                	mov    %edi,%edi
4600fd:	55                   	push   %ebp
4600fe:	8b ec                	mov    %esp,%ebp
460100:	51                   	push   %ecx
460101:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
460105:	8d 45 fc             	lea    -0x4(%ebp),%eax
460108:	56                   	push   %esi
460109:	50                   	push   %eax
46010a:	8b f1                	mov    %ecx,%esi
46010c:	e8 44 6e ff ff       	call   0x456f55
460111:	84 c0                	test   %al,%al
460113:	74 60                	je     0x460175
460115:	8b ce                	mov    %esi,%ecx
460117:	e8 a7 bd ff ff       	call   0x45bec3
46011c:	84 c0                	test   %al,%al
46011e:	74 53                	je     0x460173
460120:	53                   	push   %ebx
460121:	57                   	push   %edi
460122:	8b 7d fc             	mov    -0x4(%ebp),%edi
460125:	85 ff                	test   %edi,%edi
460127:	74 36                	je     0x46015f
460129:	8b 5f 04             	mov    0x4(%edi),%ebx
46012c:	85 db                	test   %ebx,%ebx
46012e:	74 2f                	je     0x46015f
460130:	ff 76 2c             	push   0x2c(%esi)
460133:	0f b7 46 32          	movzwl 0x32(%esi),%eax
460137:	50                   	push   %eax
460138:	ff 76 04             	push   0x4(%esi)
46013b:	ff 36                	push   (%esi)
46013d:	e8 1d 7e ff ff       	call   0x457f5f
460142:	83 c4 10             	add    $0x10,%esp
460145:	89 5e 34             	mov    %ebx,0x34(%esi)
460148:	84 c0                	test   %al,%al
46014a:	0f b7 07             	movzwl (%edi),%eax
46014d:	74 0b                	je     0x46015a
46014f:	d1 e8                	shr    $1,%eax
460151:	89 46 38             	mov    %eax,0x38(%esi)
460154:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
460158:	eb 17                	jmp    0x460171
46015a:	89 46 38             	mov    %eax,0x38(%esi)
46015d:	eb 0e                	jmp    0x46016d
46015f:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
460166:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
46016d:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
460171:	5f                   	pop    %edi
460172:	5b                   	pop    %ebx
460173:	b0 01                	mov    $0x1,%al
460175:	5e                   	pop    %esi
460176:	8b e5                	mov    %ebp,%esp
460178:	5d                   	pop    %ebp
460179:	c3                   	ret
46017a:	8b ff                	mov    %edi,%edi
46017c:	53                   	push   %ebx
46017d:	56                   	push   %esi
46017e:	8b f1                	mov    %ecx,%esi
460180:	57                   	push   %edi
460181:	83 46 14 04          	addl   $0x4,0x14(%esi)
460185:	8b 46 14             	mov    0x14(%esi),%eax
460188:	8b 78 fc             	mov    -0x4(%eax),%edi
46018b:	85 ff                	test   %edi,%edi
46018d:	74 36                	je     0x4601c5
46018f:	8b 5f 04             	mov    0x4(%edi),%ebx
460192:	85 db                	test   %ebx,%ebx
460194:	74 2f                	je     0x4601c5
460196:	ff 76 2c             	push   0x2c(%esi)
460199:	0f b7 46 32          	movzwl 0x32(%esi),%eax
46019d:	50                   	push   %eax
46019e:	ff 76 04             	push   0x4(%esi)
4601a1:	ff 36                	push   (%esi)
4601a3:	e8 b7 7d ff ff       	call   0x457f5f
4601a8:	83 c4 10             	add    $0x10,%esp
4601ab:	89 5e 34             	mov    %ebx,0x34(%esi)
4601ae:	84 c0                	test   %al,%al
4601b0:	0f b7 07             	movzwl (%edi),%eax
4601b3:	74 0b                	je     0x4601c0
4601b5:	d1 e8                	shr    $1,%eax
4601b7:	89 46 38             	mov    %eax,0x38(%esi)
4601ba:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4601be:	eb 17                	jmp    0x4601d7
4601c0:	89 46 38             	mov    %eax,0x38(%esi)
4601c3:	eb 0e                	jmp    0x4601d3
4601c5:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
4601cc:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
4601d3:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
4601d7:	5f                   	pop    %edi
4601d8:	5e                   	pop    %esi
4601d9:	b0 01                	mov    $0x1,%al
4601db:	5b                   	pop    %ebx
4601dc:	c3                   	ret
4601dd:	8b ff                	mov    %edi,%edi
4601df:	55                   	push   %ebp
4601e0:	8b ec                	mov    %esp,%ebp
4601e2:	51                   	push   %ecx
4601e3:	51                   	push   %ecx
4601e4:	56                   	push   %esi
4601e5:	8b f1                	mov    %ecx,%esi
4601e7:	57                   	push   %edi
4601e8:	83 4e 20 10          	orl    $0x10,0x20(%esi)
4601ec:	8b 46 28             	mov    0x28(%esi),%eax
4601ef:	85 c0                	test   %eax,%eax
4601f1:	79 1d                	jns    0x460210
4601f3:	8a 46 31             	mov    0x31(%esi),%al
4601f6:	3c 61                	cmp    $0x61,%al
4601f8:	74 0d                	je     0x460207
4601fa:	3c 41                	cmp    $0x41,%al
4601fc:	74 09                	je     0x460207
4601fe:	c7 46 28 06 00 00 00 	movl   $0x6,0x28(%esi)
460205:	eb 1d                	jmp    0x460224
460207:	c7 46 28 0d 00 00 00 	movl   $0xd,0x28(%esi)
46020e:	eb 14                	jmp    0x460224
460210:	75 12                	jne    0x460224
460212:	8a 46 31             	mov    0x31(%esi),%al
460215:	3c 67                	cmp    $0x67,%al
460217:	74 04                	je     0x46021d
460219:	3c 47                	cmp    $0x47,%al
46021b:	75 07                	jne    0x460224
46021d:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
460224:	8b 46 28             	mov    0x28(%esi),%eax
460227:	8d 7e 40             	lea    0x40(%esi),%edi
46022a:	53                   	push   %ebx
46022b:	bb 5d 01 00 00       	mov    $0x15d,%ebx
460230:	8b cf                	mov    %edi,%ecx
460232:	03 c3                	add    %ebx,%eax
460234:	50                   	push   %eax
460235:	e8 ab 57 ff ff       	call   0x4559e5
46023a:	84 c0                	test   %al,%al
46023c:	75 0c                	jne    0x46024a
46023e:	8b cf                	mov    %edi,%ecx
460240:	e8 55 57 ff ff       	call   0x45599a
460245:	2b c3                	sub    %ebx,%eax
460247:	89 46 28             	mov    %eax,0x28(%esi)
46024a:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
460250:	85 c0                	test   %eax,%eax
460252:	75 02                	jne    0x460256
460254:	8b c7                	mov    %edi,%eax
460256:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46025a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46025e:	89 46 34             	mov    %eax,0x34(%esi)
460261:	83 46 14 08          	addl   $0x8,0x14(%esi)
460265:	8b 4e 14             	mov    0x14(%esi),%ecx
460268:	8b 41 f8             	mov    -0x8(%ecx),%eax
46026b:	89 45 f8             	mov    %eax,-0x8(%ebp)
46026e:	8b 41 fc             	mov    -0x4(%ecx),%eax
460271:	8b cf                	mov    %edi,%ecx
460273:	89 45 fc             	mov    %eax,-0x4(%ebp)
460276:	e8 1f 57 ff ff       	call   0x45599a
46027b:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
460281:	8b c8                	mov    %eax,%ecx
460283:	85 db                	test   %ebx,%ebx
460285:	75 02                	jne    0x460289
460287:	8b df                	mov    %edi,%ebx
460289:	ff 76 08             	push   0x8(%esi)
46028c:	0f be 46 31          	movsbl 0x31(%esi),%eax
460290:	ff 76 04             	push   0x4(%esi)
460293:	ff 36                	push   (%esi)
460295:	ff 76 28             	push   0x28(%esi)
460298:	50                   	push   %eax
460299:	51                   	push   %ecx
46029a:	8b cf                	mov    %edi,%ecx
46029c:	e8 ce 7f ff ff       	call   0x45826f
4602a1:	50                   	push   %eax
4602a2:	8b cf                	mov    %edi,%ecx
4602a4:	e8 f1 56 ff ff       	call   0x45599a
4602a9:	50                   	push   %eax
4602aa:	8d 45 f8             	lea    -0x8(%ebp),%eax
4602ad:	53                   	push   %ebx
4602ae:	50                   	push   %eax
4602af:	e8 78 7d 01 00       	call   0x47802c
4602b4:	8b 46 20             	mov    0x20(%esi),%eax
4602b7:	83 c4 28             	add    $0x28,%esp
4602ba:	c1 e8 05             	shr    $0x5,%eax
4602bd:	5b                   	pop    %ebx
4602be:	a8 01                	test   $0x1,%al
4602c0:	74 13                	je     0x4602d5
4602c2:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
4602c6:	75 0d                	jne    0x4602d5
4602c8:	ff 76 08             	push   0x8(%esi)
4602cb:	ff 76 34             	push   0x34(%esi)
4602ce:	e8 c5 9f ff ff       	call   0x45a298
4602d3:	59                   	pop    %ecx
4602d4:	59                   	pop    %ecx
4602d5:	8a 46 31             	mov    0x31(%esi),%al
4602d8:	3c 67                	cmp    $0x67,%al
4602da:	74 04                	je     0x4602e0
4602dc:	3c 47                	cmp    $0x47,%al
4602de:	75 17                	jne    0x4602f7
4602e0:	8b 46 20             	mov    0x20(%esi),%eax
4602e3:	c1 e8 05             	shr    $0x5,%eax
4602e6:	a8 01                	test   $0x1,%al
4602e8:	75 0d                	jne    0x4602f7
4602ea:	ff 76 08             	push   0x8(%esi)
4602ed:	ff 76 34             	push   0x34(%esi)
4602f0:	e8 d0 9c ff ff       	call   0x459fc5
4602f5:	59                   	pop    %ecx
4602f6:	59                   	pop    %ecx
4602f7:	8b 46 34             	mov    0x34(%esi),%eax
4602fa:	80 38 2d             	cmpb   $0x2d,(%eax)
4602fd:	75 08                	jne    0x460307
4602ff:	83 4e 20 40          	orl    $0x40,0x20(%esi)
460303:	40                   	inc    %eax
460304:	89 46 34             	mov    %eax,0x34(%esi)