453ecd:	5a                   	pop    %edx
453ece:	59                   	pop    %ecx
453ecf:	59                   	pop    %ecx
453ed0:	64 89 10             	mov    %edx,%fs:(%eax)
453ed3:	68 e8 3e 45 00       	push   $0x453ee8
453ed8:	8b 45 f4             	mov    -0xc(%ebp),%eax
453edb:	33 d2                	xor    %edx,%edx
453edd:	89 50 38             	mov    %edx,0x38(%eax)
453ee0:	c3                   	ret
453ee1:	e9 ca 01 fb ff       	jmp    0x4040b0
453ee6:	eb f0                	jmp    0x453ed8
453ee8:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
453eec:	5e                   	pop    %esi
453eed:	5b                   	pop    %ebx
453eee:	8b e5                	mov    %ebp,%esp
453ef0:	5d                   	pop    %ebp
453ef1:	c3                   	ret
453ef2:	8b c0                	mov    %eax,%eax
453ef4:	55                   	push   %ebp
453ef5:	8b ec                	mov    %esp,%ebp
453ef7:	53                   	push   %ebx
453ef8:	56                   	push   %esi
453ef9:	33 db                	xor    %ebx,%ebx
453efb:	8b 45 08             	mov    0x8(%ebp),%eax
453efe:	8b 40 fc             	mov    -0x4(%eax),%eax
453f01:	8b 70 14             	mov    0x14(%eax),%esi
453f04:	85 f6                	test   %esi,%esi
453f06:	74 16                	je     0x453f1e
453f08:	8b c6                	mov    %esi,%eax
453f0a:	e8 6d 02 00 00       	call   0x45417c
453f0f:	85 c0                	test   %eax,%eax
453f11:	74 04                	je     0x453f17
453f13:	b3 01                	mov    $0x1,%bl
453f15:	eb 07                	jmp    0x453f1e
453f17:	8b 76 14             	mov    0x14(%esi),%esi
453f1a:	85 f6                	test   %esi,%esi
453f1c:	75 ea                	jne    0x453f08
453f1e:	8b c3                	mov    %ebx,%eax
453f20:	5e                   	pop    %esi
453f21:	5b                   	pop    %ebx
453f22:	5d                   	pop    %ebp
453f23:	c3                   	ret
453f24:	55                   	push   %ebp
453f25:	8b ec                	mov    %esp,%ebp
453f27:	83 c4 ec             	add    $0xffffffec,%esp
453f2a:	53                   	push   %ebx
453f2b:	56                   	push   %esi
453f2c:	57                   	push   %edi
453f2d:	89 45 fc             	mov    %eax,-0x4(%ebp)
453f30:	8b 45 fc             	mov    -0x4(%ebp),%eax
453f33:	8b 40 04             	mov    0x4(%eax),%eax
453f36:	85 c0                	test   %eax,%eax
453f38:	0f 84 58 01 00 00    	je     0x454096
453f3e:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
453f42:	0f 84 4e 01 00 00    	je     0x454096
453f48:	8b 55 fc             	mov    -0x4(%ebp),%edx
453f4b:	8b 52 1c             	mov    0x1c(%edx),%edx
453f4e:	83 7a 6c 00          	cmpl   $0x0,0x6c(%edx)
453f52:	0f 85 3e 01 00 00    	jne    0x454096
453f58:	8b 55 fc             	mov    -0x4(%ebp),%edx
453f5b:	8b 52 14             	mov    0x14(%edx),%edx
453f5e:	0f b6 52 10          	movzbl 0x10(%edx),%edx
453f62:	88 90 90 00 00 00    	mov    %dl,0x90(%eax)
453f68:	ba 02 00 00 00       	mov    $0x2,%edx
453f6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
453f70:	e8 57 fd ff ff       	call   0x453ccc
453f75:	8b d8                	mov    %eax,%ebx
453f77:	ba 01 00 00 00       	mov    $0x1,%edx
453f7c:	8b 45 fc             	mov    -0x4(%ebp),%eax
453f7f:	e8 48 fd ff ff       	call   0x453ccc
453f84:	8b f0                	mov    %eax,%esi
453f86:	55                   	push   %ebp
453f87:	e8 68 ff ff ff       	call   0x453ef4
453f8c:	59                   	pop    %ecx
453f8d:	84 c0                	test   %al,%al
453f8f:	74 20                	je     0x453fb1
453f91:	8b 45 fc             	mov    -0x4(%ebp),%eax
453f94:	8b 40 14             	mov    0x14(%eax),%eax
453f97:	80 78 10 01          	cmpb   $0x1,0x10(%eax)
453f9b:	75 0b                	jne    0x453fa8
453f9d:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fa0:	8b 40 1c             	mov    0x1c(%eax),%eax
453fa3:	2b 58 0c             	sub    0xc(%eax),%ebx
453fa6:	eb 09                	jmp    0x453fb1
453fa8:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fab:	8b 40 1c             	mov    0x1c(%eax),%eax
453fae:	2b 70 0c             	sub    0xc(%eax),%esi
453fb1:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fb4:	e8 c3 01 00 00       	call   0x45417c
453fb9:	85 c0                	test   %eax,%eax
453fbb:	75 70                	jne    0x45402d
453fbd:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fc0:	8b 40 14             	mov    0x14(%eax),%eax
453fc3:	8b 55 fc             	mov    -0x4(%ebp),%edx
453fc6:	8b 52 1c             	mov    0x1c(%edx),%edx
453fc9:	3b 42 64             	cmp    0x64(%edx),%eax
453fcc:	74 2b                	je     0x453ff9
453fce:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fd1:	8b 40 14             	mov    0x14(%eax),%eax
453fd4:	0f b6 40 10          	movzbl 0x10(%eax),%eax
453fd8:	8b 55 fc             	mov    -0x4(%ebp),%edx
453fdb:	8b 52 1c             	mov    0x1c(%edx),%edx
453fde:	8b 52 64             	mov    0x64(%edx),%edx
453fe1:	3a 42 10             	cmp    0x10(%edx),%al
453fe4:	75 13                	jne    0x453ff9
453fe6:	8b 45 fc             	mov    -0x4(%ebp),%eax
453fe9:	e8 b2 00 00 00       	call   0x4540a0
453fee:	8b 55 fc             	mov    -0x4(%ebp),%edx
453ff1:	8b 52 1c             	mov    0x1c(%edx),%edx
453ff4:	3b 42 68             	cmp    0x68(%edx),%eax
453ff7:	7c 34                	jl     0x45402d
453ff9:	8b 45 fc             	mov    -0x4(%ebp),%eax
453ffc:	8b 40 14             	mov    0x14(%eax),%eax
453fff:	0f b6 40 10          	movzbl 0x10(%eax),%eax
454003:	8b 55 fc             	mov    -0x4(%ebp),%edx
454006:	8b 52 1c             	mov    0x1c(%edx),%edx
454009:	8b 52 64             	mov    0x64(%edx),%edx
45400c:	3a 42 10             	cmp    0x10(%edx),%al
45400f:	74 3c                	je     0x45404d
454011:	8b 45 fc             	mov    -0x4(%ebp),%eax
454014:	e8 87 00 00 00       	call   0x4540a0
454019:	8b f8                	mov    %eax,%edi
45401b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45401e:	8b 40 1c             	mov    0x1c(%eax),%eax
454021:	8b 40 64             	mov    0x64(%eax),%eax
454024:	e8 77 00 00 00       	call   0x4540a0
454029:	3b f8                	cmp    %eax,%edi
45402b:	7d 20                	jge    0x45404d
45402d:	8b 45 fc             	mov    -0x4(%ebp),%eax
454030:	8b 40 14             	mov    0x14(%eax),%eax
454033:	80 78 10 01          	cmpb   $0x1,0x10(%eax)
454037:	75 0b                	jne    0x454044
454039:	8b 45 fc             	mov    -0x4(%ebp),%eax
45403c:	8b 40 1c             	mov    0x1c(%eax),%eax
45403f:	2b 70 0c             	sub    0xc(%eax),%esi
454042:	eb 09                	jmp    0x45404d
454044:	8b 45 fc             	mov    -0x4(%ebp),%eax
454047:	8b 40 1c             	mov    0x1c(%eax),%eax
45404a:	2b 58 0c             	sub    0xc(%eax),%ebx
45404d:	56                   	push   %esi
45404e:	8d 45 ec             	lea    -0x14(%ebp),%eax
454051:	50                   	push   %eax
454052:	ba 01 00 00 00       	mov    $0x1,%edx
454057:	8b 45 fc             	mov    -0x4(%ebp),%eax
45405a:	e8 e9 fb ff ff       	call   0x453c48
45405f:	50                   	push   %eax
454060:	ba 02 00 00 00       	mov    $0x2,%edx
454065:	8b 45 fc             	mov    -0x4(%ebp),%eax
454068:	e8 db fb ff ff       	call   0x453c48
45406d:	8b cb                	mov    %ebx,%ecx
45406f:	5a                   	pop    %edx
454070:	e8 33 2d fc ff       	call   0x416da8
454075:	8d 4d ec             	lea    -0x14(%ebp),%ecx
454078:	8b 45 fc             	mov    -0x4(%ebp),%eax
45407b:	8b 50 04             	mov    0x4(%eax),%edx
45407e:	8b 45 fc             	mov    -0x4(%ebp),%eax
454081:	8b 40 1c             	mov    0x1c(%eax),%eax
454084:	8b 18                	mov    (%eax),%ebx
454086:	ff 13                	call   *(%ebx)
454088:	8d 55 ec             	lea    -0x14(%ebp),%edx
45408b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45408e:	8b 40 04             	mov    0x4(%eax),%eax
454091:	e8 0e 57 ff ff       	call   0x4497a4
454096:	5f                   	pop    %edi
454097:	5e                   	pop    %esi
454098:	5b                   	pop    %ebx
454099:	8b e5                	mov    %ebp,%esp
45409b:	5d                   	pop    %ebp
45409c:	c3                   	ret
45409d:	8d 40 00             	lea    0x0(%eax),%eax
4540a0:	53                   	push   %ebx
4540a1:	8b d8                	mov    %eax,%ebx
4540a3:	8b c3                	mov    %ebx,%eax
4540a5:	e8 d6 fa ff ff       	call   0x453b80
4540aa:	84 c0                	test   %al,%al
4540ac:	75 14                	jne    0x4540c2
4540ae:	8b c3                	mov    %ebx,%eax
4540b0:	e8 4b fa ff ff       	call   0x453b00
4540b5:	84 c0                	test   %al,%al
4540b7:	74 09                	je     0x4540c2
4540b9:	8b c3                	mov    %ebx,%eax
4540bb:	e8 f8 fa ff ff       	call   0x453bb8
4540c0:	5b                   	pop    %ebx
4540c1:	c3                   	ret
4540c2:	8b 43 20             	mov    0x20(%ebx),%eax
4540c5:	5b                   	pop    %ebx
4540c6:	c3                   	ret
4540c7:	90                   	nop
4540c8:	89 50 20             	mov    %edx,0x20(%eax)
4540cb:	c3                   	ret
4540cc:	8b 40 08             	mov    0x8(%eax),%eax
4540cf:	eb 02                	jmp    0x4540d3
4540d1:	8b c2                	mov    %edx,%eax
4540d3:	8b 50 0c             	mov    0xc(%eax),%edx
4540d6:	85 d2                	test   %edx,%edx
4540d8:	75 f7                	jne    0x4540d1
4540da:	c3                   	ret
4540db:	90                   	nop
4540dc:	53                   	push   %ebx
4540dd:	56                   	push   %esi
4540de:	57                   	push   %edi
4540df:	8b fa                	mov    %edx,%edi
4540e1:	8b d8                	mov    %eax,%ebx
4540e3:	8b d7                	mov    %edi,%edx
4540e5:	8b c3                	mov    %ebx,%eax
4540e7:	e8 dc ff ff ff       	call   0x4540c8
4540ec:	8b 5b 08             	mov    0x8(%ebx),%ebx
4540ef:	85 db                	test   %ebx,%ebx
4540f1:	74 24                	je     0x454117
4540f3:	8b c3                	mov    %ebx,%eax
4540f5:	e8 4e fa ff ff       	call   0x453b48
4540fa:	85 c0                	test   %eax,%eax
4540fc:	7e 12                	jle    0x454110
4540fe:	8b c3                	mov    %ebx,%eax
454100:	e8 c7 ff ff ff       	call   0x4540cc
454105:	8b f0                	mov    %eax,%esi
454107:	8b d7                	mov    %edi,%edx
454109:	8b c6                	mov    %esi,%eax
45410b:	e8 cc ff ff ff       	call   0x4540dc
454110:	8b 5b 0c             	mov    0xc(%ebx),%ebx
454113:	85 db                	test   %ebx,%ebx
454115:	75 dc                	jne    0x4540f3
454117:	5f                   	pop    %edi
454118:	5e                   	pop    %esi
454119:	5b                   	pop    %ebx
45411a:	c3                   	ret
45411b:	90                   	nop
45411c:	53                   	push   %ebx
45411d:	56                   	push   %esi
45411e:	57                   	push   %edi
45411f:	8b f0                	mov    %eax,%esi
454121:	8b 5e 08             	mov    0x8(%esi),%ebx
454124:	85 db                	test   %ebx,%ebx
454126:	74 4f                	je     0x454177
454128:	8b c3                	mov    %ebx,%eax
45412a:	e8 71 ff ff ff       	call   0x4540a0
45412f:	8b f8                	mov    %eax,%edi
454131:	8b c3                	mov    %ebx,%eax
454133:	e8 80 fa ff ff       	call   0x453bb8
454138:	3b f8                	cmp    %eax,%edi
45413a:	7c 14                	jl     0x454150
45413c:	8b c3                	mov    %ebx,%eax
45413e:	e8 5d ff ff ff       	call   0x4540a0
454143:	8b f8                	mov    %eax,%edi
454145:	8b c6                	mov    %esi,%eax
454147:	e8 b4 fa ff ff       	call   0x453c00
45414c:	3b f8                	cmp    %eax,%edi
45414e:	7e 19                	jle    0x454169
454150:	8b c6                	mov    %esi,%eax
454152:	e8 2d fc ff ff       	call   0x453d84
454157:	8b 7e 1c             	mov    0x1c(%esi),%edi
45415a:	57                   	push   %edi
45415b:	68 58 5f 45 00       	push   $0x455f58
454160:	8b d6                	mov    %esi,%edx
454162:	8b c7                	mov    %edi,%eax
454164:	e8 f3 02 00 00       	call   0x45445c
454169:	8b c3                	mov    %ebx,%eax
45416b:	e8 ac ff ff ff       	call   0x45411c
454170:	8b 5b 0c             	mov    0xc(%ebx),%ebx
454173:	85 db                	test   %ebx,%ebx
454175:	75 b1                	jne    0x454128
454177:	5f                   	pop    %edi
454178:	5e                   	pop    %esi
454179:	5b                   	pop    %ebx
45417a:	c3                   	ret
45417b:	90                   	nop
45417c:	8b 40 0c             	mov    0xc(%eax),%eax
45417f:	e8 60 f9 ff ff       	call   0x453ae4
454184:	c3                   	ret
454185:	8d 40 00             	lea    0x0(%eax),%eax
454188:	53                   	push   %ebx
454189:	8b 58 18             	mov    0x18(%eax),%ebx
45418c:	eb 03                	jmp    0x454191
45418e:	8b 5b 18             	mov    0x18(%ebx),%ebx
454191:	85 db                	test   %ebx,%ebx
454193:	74 0b                	je     0x4541a0
454195:	8b c3                	mov    %ebx,%eax
454197:	e8 e4 f9 ff ff       	call   0x453b80
45419c:	84 c0                	test   %al,%al
45419e:	74 ee                	je     0x45418e
4541a0:	8b c3                	mov    %ebx,%eax
4541a2:	5b                   	pop    %ebx
4541a3:	c3                   	ret
4541a4:	8b 40 08             	mov    0x8(%eax),%eax
4541a7:	e8 38 f9 ff ff       	call   0x453ae4
4541ac:	c3                   	ret
4541ad:	8d 40 00             	lea    0x0(%eax),%eax
4541b0:	55                   	push   %ebp
4541b1:	8b ec                	mov    %esp,%ebp
4541b3:	83 c4 f4             	add    $0xfffffff4,%esp
4541b6:	53                   	push   %ebx
4541b7:	56                   	push   %esi
4541b8:	57                   	push   %edi
4541b9:	84 d2                	test   %dl,%dl
4541bb:	74 08                	je     0x4541c5
4541bd:	83 c4 f0             	add    $0xfffffff0,%esp
4541c0:	e8 7b fa fa ff       	call   0x403c40
4541c5:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4541c8:	88 55 fb             	mov    %dl,-0x5(%ebp)
4541cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4541ce:	33 d2                	xor    %edx,%edx
4541d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4541d3:	e8 14 f7 fa ff       	call   0x4038ec
4541d8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4541db:	c7 40 0c 04 00 00 00 	movl   $0x4,0xc(%eax)
4541e2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4541e5:	8b 55 f4             	mov    -0xc(%ebp),%edx
4541e8:	89 50 14             	mov    %edx,0x14(%eax)
4541eb:	8b 45 fc             	mov    -0x4(%ebp),%eax
4541ee:	c7 40 70 00 00 08 00 	movl   $0x80000,0x70(%eax)
4541f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4541f8:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4541ff:	8b 45 f4             	mov    -0xc(%ebp),%eax
454202:	0f b6 40 5b          	movzbl 0x5b(%eax),%eax
454206:	3c 01                	cmp    $0x1,%al
454208:	74 04                	je     0x45420e
45420a:	3c 02                	cmp    $0x2,%al
45420c:	75 04                	jne    0x454212
45420e:	33 c0                	xor    %eax,%eax
454210:	eb 02                	jmp    0x454214
454212:	b0 01                	mov    $0x1,%al
454214:	8b 55 fc             	mov    -0x4(%ebp),%edx
454217:	88 42 1c             	mov    %al,0x1c(%edx)
45421a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45421d:	b2 01                	mov    $0x1,%dl
45421f:	a1 ec 61 44 00       	mov    0x4461ec,%eax
454224:	e8 fb f8 ff ff       	call   0x453b24
454229:	8b 55 fc             	mov    -0x4(%ebp),%edx
45422c:	89 42 64             	mov    %eax,0x64(%edx)
45422f:	b2 01                	mov    $0x1,%dl
454231:	a1 0c 28 42 00       	mov    0x42280c,%eax
454236:	e8 0d 05 fd ff       	call   0x424748
45423b:	8b d8                	mov    %eax,%ebx
45423d:	8b 45 fc             	mov    -0x4(%ebp),%eax
454240:	89 58 10             	mov    %ebx,0x10(%eax)
454243:	ba ff ff ff 00       	mov    $0xffffff,%edx
454248:	33 c0                	xor    %eax,%eax
45424a:	e8 c1 76 fd ff       	call   0x42b910
45424f:	8b d0                	mov    %eax,%edx
454251:	8b c3                	mov    %ebx,%eax
454253:	e8 6c 06 fd ff       	call   0x4248c4
454258:	8b 45 fc             	mov    -0x4(%ebp),%eax
45425b:	e8 24 01 00 00       	call   0x454384
454260:	33 c0                	xor    %eax,%eax
454262:	55                   	push   %ebp
454263:	68 bd 42 45 00       	push   $0x4542bd
454268:	64 ff 30             	push   %fs:(%eax)
45426b:	64 89 20             	mov    %esp,%fs:(%eax)
45426e:	8b 45 f4             	mov    -0xc(%ebp),%eax
454271:	e8 8e 9a ff ff       	call   0x44dd04