410fc5:	f7 d8                	neg    %eax
410fc7:	1b c0                	sbb    %eax,%eax
410fc9:	25 05 40 00 80       	and    $0x80004005,%eax
410fce:	5d                   	pop    %ebp
410fcf:	c2 04 00             	ret    $0x4
410fd2:	8b ff                	mov    %edi,%edi
410fd4:	55                   	push   %ebp
410fd5:	8b ec                	mov    %esp,%ebp
410fd7:	81 ec 58 02 00 00    	sub    $0x258,%esp
410fdd:	a1 f4 51 41 00       	mov    0x4151f4,%eax
410fe2:	33 c5                	xor    %ebp,%eax
410fe4:	89 45 f8             	mov    %eax,-0x8(%ebp)
410fe7:	53                   	push   %ebx
410fe8:	56                   	push   %esi
410fe9:	8b 75 14             	mov    0x14(%ebp),%esi
410fec:	33 c0                	xor    %eax,%eax
410fee:	57                   	push   %edi
410fef:	8b 7d 0c             	mov    0xc(%ebp),%edi
410ff2:	bb 00 01 00 00       	mov    $0x100,%ebx
410ff7:	53                   	push   %ebx
410ff8:	50                   	push   %eax
410ff9:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
410fff:	89 85 ac fd ff ff    	mov    %eax,-0x254(%ebp)
411005:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
41100b:	50                   	push   %eax
41100c:	e8 e0 1a 00 00       	call   0x412af1
411011:	53                   	push   %ebx
411012:	33 db                	xor    %ebx,%ebx
411014:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
41101a:	53                   	push   %ebx
41101b:	50                   	push   %eax
41101c:	e8 d0 1a 00 00       	call   0x412af1
411021:	ff 75 10             	push   0x10(%ebp)
411024:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
41102a:	68 1c 45 40 00       	push   $0x40451c
41102f:	68 80 00 00 00       	push   $0x80
411034:	50                   	push   %eax
411035:	e8 98 a0 ff ff       	call   0x40b0d2
41103a:	8b 45 18             	mov    0x18(%ebp),%eax
41103d:	83 c4 28             	add    $0x28,%esp
411040:	85 c0                	test   %eax,%eax
411042:	75 09                	jne    0x41104d
411044:	ff 15 68 61 41 00    	call   *0x416168
41104a:	89 45 18             	mov    %eax,0x18(%ebp)
41104d:	50                   	push   %eax
41104e:	68 24 45 40 00       	push   $0x404524
411053:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
411059:	68 80 00 00 00       	push   $0x80
41105e:	50                   	push   %eax
41105f:	e8 6e a0 ff ff       	call   0x40b0d2
411064:	83 c4 10             	add    $0x10,%esp
411067:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
41106d:	8b cf                	mov    %edi,%ecx
41106f:	50                   	push   %eax
411070:	6a fe                	push   $0xfffffffe
411072:	5a                   	pop    %edx
411073:	e8 cf c4 ff ff       	call   0x40d547
411078:	85 c0                	test   %eax,%eax
41107a:	0f 88 b7 00 00 00    	js     0x411137
411080:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
411086:	8b ce                	mov    %esi,%ecx
411088:	50                   	push   %eax
411089:	6a fe                	push   $0xfffffffe
41108b:	5a                   	pop    %edx
41108c:	e8 b6 c4 ff ff       	call   0x40d547
411091:	85 c0                	test   %eax,%eax
411093:	0f 88 9e 00 00 00    	js     0x411137
411099:	8b 85 b0 fd ff ff    	mov    -0x250(%ebp),%eax
41109f:	83 c0 02             	add    $0x2,%eax
4110a2:	89 bd b4 fd ff ff    	mov    %edi,-0x24c(%ebp)
4110a8:	89 85 bc fd ff ff    	mov    %eax,-0x244(%ebp)
4110ae:	8d 45 10             	lea    0x10(%ebp),%eax
4110b1:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
4110b7:	8b 85 ac fd ff ff    	mov    -0x254(%ebp),%eax
4110bd:	83 c0 02             	add    $0x2,%eax
4110c0:	89 9d b8 fd ff ff    	mov    %ebx,-0x248(%ebp)
4110c6:	6a 04                	push   $0x4
4110c8:	59                   	pop    %ecx
4110c9:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
4110cf:	8d 45 18             	lea    0x18(%ebp),%eax
4110d2:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
4110d8:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4110de:	50                   	push   %eax
4110df:	51                   	push   %ecx
4110e0:	68 78 2c 40 00       	push   $0x402c78
4110e5:	ff 35 4c 56 41 00    	push   0x41564c
4110eb:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
4110f1:	ff 35 48 56 41 00    	push   0x415648
4110f7:	89 9d c8 fd ff ff    	mov    %ebx,-0x238(%ebp)
4110fd:	89 8d cc fd ff ff    	mov    %ecx,-0x234(%ebp)
411103:	89 9d d0 fd ff ff    	mov    %ebx,-0x230(%ebp)
411109:	89 b5 d4 fd ff ff    	mov    %esi,-0x22c(%ebp)
41110f:	89 9d d8 fd ff ff    	mov    %ebx,-0x228(%ebp)
411115:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
41111b:	89 9d e8 fd ff ff    	mov    %ebx,-0x218(%ebp)
411121:	89 8d ec fd ff ff    	mov    %ecx,-0x214(%ebp)
411127:	89 9d f0 fd ff ff    	mov    %ebx,-0x210(%ebp)
41112d:	ff 15 98 60 41 00    	call   *0x416098
411133:	85 c0                	test   %eax,%eax
411135:	74 05                	je     0x41113c
411137:	b8 05 40 00 80       	mov    $0x80004005,%eax
41113c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41113f:	5f                   	pop    %edi
411140:	5e                   	pop    %esi
411141:	33 cd                	xor    %ebp,%ecx
411143:	5b                   	pop    %ebx
411144:	e8 a7 0e 00 00       	call   0x411ff0
411149:	c9                   	leave
41114a:	c2 14 00             	ret    $0x14
41114d:	8b ff                	mov    %edi,%edi
41114f:	55                   	push   %ebp
411150:	8b ec                	mov    %esp,%ebp
411152:	83 ec 10             	sub    $0x10,%esp
411155:	53                   	push   %ebx
411156:	56                   	push   %esi
411157:	57                   	push   %edi
411158:	6a 04                	push   $0x4
41115a:	5b                   	pop    %ebx
41115b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41115e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
411161:	50                   	push   %eax
411162:	33 f6                	xor    %esi,%esi
411164:	8b fa                	mov    %edx,%edi
411166:	6a 01                	push   $0x1
411168:	56                   	push   %esi
411169:	68 30 45 40 00       	push   $0x404530
41116e:	68 02 00 00 80       	push   $0x80000002
411173:	89 75 fc             	mov    %esi,-0x4(%ebp)
411176:	89 75 f8             	mov    %esi,-0x8(%ebp)
411179:	89 75 f4             	mov    %esi,-0xc(%ebp)
41117c:	ff 15 04 60 41 00    	call   *0x416004
411182:	85 c0                	test   %eax,%eax
411184:	74 11                	je     0x411197
411186:	7f 04                	jg     0x41118c
411188:	8b f0                	mov    %eax,%esi
41118a:	eb 32                	jmp    0x4111be
41118c:	0f b7 f0             	movzwl %ax,%esi
41118f:	81 ce 00 00 07 80    	or     $0x80070000,%esi
411195:	eb 27                	jmp    0x4111be
411197:	8d 45 f8             	lea    -0x8(%ebp),%eax
41119a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41119d:	50                   	push   %eax
41119e:	8d 45 f4             	lea    -0xc(%ebp),%eax
4111a1:	50                   	push   %eax
4111a2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4111a5:	50                   	push   %eax
4111a6:	56                   	push   %esi
4111a7:	68 58 34 40 00       	push   $0x403458
4111ac:	ff 75 fc             	push   -0x4(%ebp)
4111af:	ff 15 1c 60 41 00    	call   *0x41601c
4111b5:	85 c0                	test   %eax,%eax
4111b7:	75 cd                	jne    0x411186
4111b9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4111bc:	89 07                	mov    %eax,(%edi)
4111be:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4111c2:	74 09                	je     0x4111cd
4111c4:	ff 75 fc             	push   -0x4(%ebp)
4111c7:	ff 15 18 60 41 00    	call   *0x416018
4111cd:	5f                   	pop    %edi
4111ce:	8b c6                	mov    %esi,%eax
4111d0:	5e                   	pop    %esi
4111d1:	5b                   	pop    %ebx
4111d2:	c9                   	leave
4111d3:	c2 04 00             	ret    $0x4
4111d6:	8b ff                	mov    %edi,%edi
4111d8:	55                   	push   %ebp
4111d9:	8b ec                	mov    %esp,%ebp
4111db:	83 ec 18             	sub    $0x18,%esp
4111de:	53                   	push   %ebx
4111df:	56                   	push   %esi
4111e0:	8b da                	mov    %edx,%ebx
4111e2:	8b f1                	mov    %ecx,%esi
4111e4:	33 d2                	xor    %edx,%edx
4111e6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4111e9:	57                   	push   %edi
4111ea:	85 f6                	test   %esi,%esi
4111ec:	75 14                	jne    0x411202
4111ee:	68 03 40 00 80       	push   $0x80004003
4111f3:	68 08 46 40 00       	push   $0x404608
4111f8:	68 c8 02 00 00       	push   $0x2c8
4111fd:	e9 e3 01 00 00       	jmp    0x4113e5
411202:	85 db                	test   %ebx,%ebx
411204:	75 14                	jne    0x41121a
411206:	68 03 40 00 80       	push   $0x80004003
41120b:	68 08 46 40 00       	push   $0x404608
411210:	68 c9 02 00 00       	push   $0x2c9
411215:	e9 cb 01 00 00       	jmp    0x4113e5
41121a:	39 55 08             	cmp    %edx,0x8(%ebp)
41121d:	75 14                	jne    0x411233
41121f:	68 03 40 00 80       	push   $0x80004003
411224:	68 08 46 40 00       	push   $0x404608
411229:	68 ca 02 00 00       	push   $0x2ca
41122e:	e9 b2 01 00 00       	jmp    0x4113e5
411233:	0f b7 06             	movzwl (%esi),%eax
411236:	8b c8                	mov    %eax,%ecx
411238:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41123b:	66 85 c0             	test   %ax,%ax
41123e:	0f 84 92 01 00 00    	je     0x4113d6
411244:	66 39 13             	cmp    %dx,(%ebx)
411247:	0f 84 89 01 00 00    	je     0x4113d6
41124d:	8b ce                	mov    %esi,%ecx
41124f:	8d 79 02             	lea    0x2(%ecx),%edi
411252:	66 8b 01             	mov    (%ecx),%ax
411255:	83 c1 02             	add    $0x2,%ecx
411258:	66 3b c2             	cmp    %dx,%ax
41125b:	75 f5                	jne    0x411252
41125d:	2b cf                	sub    %edi,%ecx
41125f:	8b fe                	mov    %esi,%edi
411261:	d1 f9                	sar    $1,%ecx
411263:	8d 04 4e             	lea    (%esi,%ecx,2),%eax
411266:	89 45 ec             	mov    %eax,-0x14(%ebp)
411269:	8d 4b 02             	lea    0x2(%ebx),%ecx
41126c:	66 8b 03             	mov    (%ebx),%ax
41126f:	83 c3 02             	add    $0x2,%ebx
411272:	66 3b c2             	cmp    %dx,%ax
411275:	75 f5                	jne    0x41126c
411277:	8b 45 f8             	mov    -0x8(%ebp),%eax
41127a:	2b d9                	sub    %ecx,%ebx
41127c:	d1 fb                	sar    $1,%ebx
41127e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
411281:	0f b7 c0             	movzwl %ax,%eax
411284:	c7 45 f8 3d 00 00 00 	movl   $0x3d,-0x8(%ebp)
41128b:	6a 3b                	push   $0x3b
41128d:	59                   	pop    %ecx
41128e:	0f b7 c0             	movzwl %ax,%eax
411291:	66 3b c1             	cmp    %cx,%ax
411294:	74 2f                	je     0x4112c5
411296:	8b c8                	mov    %eax,%ecx
411298:	66 85 c9             	test   %cx,%cx
41129b:	74 1c                	je     0x4112b9
41129d:	51                   	push   %ecx
41129e:	ff 15 90 62 41 00    	call   *0x416290
4112a4:	59                   	pop    %ecx
4112a5:	85 c0                	test   %eax,%eax
4112a7:	74 10                	je     0x4112b9
4112a9:	83 c6 02             	add    $0x2,%esi
4112ac:	6a 3b                	push   $0x3b
4112ae:	5a                   	pop    %edx
4112af:	0f b7 06             	movzwl (%esi),%eax
4112b2:	8b c8                	mov    %eax,%ecx
4112b4:	66 3b c2             	cmp    %dx,%ax
4112b7:	75 df                	jne    0x411298
4112b9:	6a 3b                	push   $0x3b
4112bb:	58                   	pop    %eax
4112bc:	66 39 06             	cmp    %ax,(%esi)
4112bf:	0f 85 2b 01 00 00    	jne    0x4113f0
4112c5:	33 c0                	xor    %eax,%eax
4112c7:	57                   	push   %edi
4112c8:	66 89 06             	mov    %ax,(%esi)
4112cb:	ff 15 8c 62 41 00    	call   *0x41628c
4112d1:	59                   	pop    %ecx
4112d2:	8b f8                	mov    %eax,%edi
4112d4:	6a 3b                	push   $0x3b
4112d6:	58                   	pop    %eax
4112d7:	66 89 06             	mov    %ax,(%esi)
4112da:	3b fb                	cmp    %ebx,%edi
4112dc:	0f 86 e3 00 00 00    	jbe    0x4113c5
4112e2:	83 c6 02             	add    $0x2,%esi
4112e5:	8b d6                	mov    %esi,%edx
4112e7:	89 55 fc             	mov    %edx,-0x4(%ebp)
4112ea:	0f b7 06             	movzwl (%esi),%eax
4112ed:	8b c8                	mov    %eax,%ecx
4112ef:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
4112f3:	74 2c                	je     0x411321
4112f5:	8b d0                	mov    %eax,%edx
4112f7:	8b de                	mov    %esi,%ebx
4112f9:	0f b7 ca             	movzwl %dx,%ecx
4112fc:	66 85 d2             	test   %dx,%dx
4112ff:	74 1a                	je     0x41131b
411301:	8d 04 7b             	lea    (%ebx,%edi,2),%eax
411304:	0f b7 ca             	movzwl %dx,%ecx
411307:	3b f0                	cmp    %eax,%esi
411309:	73 10                	jae    0x41131b
41130b:	83 c6 02             	add    $0x2,%esi
41130e:	0f b7 06             	movzwl (%esi),%eax
411311:	8b d0                	mov    %eax,%edx
411313:	8b c8                	mov    %eax,%ecx
411315:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
411319:	75 de                	jne    0x4112f9
41131b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
41131e:	8b 55 fc             	mov    -0x4(%ebp),%edx
411321:	6a 3d                	push   $0x3d
411323:	58                   	pop    %eax
411324:	66 3b c8             	cmp    %ax,%cx
411327:	0f 85 c3 00 00 00    	jne    0x4113f0
41132d:	53                   	push   %ebx
41132e:	ff 75 f0             	push   -0x10(%ebp)
411331:	52                   	push   %edx
411332:	ff 15 88 62 41 00    	call   *0x416288
411338:	83 c4 0c             	add    $0xc,%esp
41133b:	85 c0                	test   %eax,%eax
41133d:	74 19                	je     0x411358
41133f:	8b 45 fc             	mov    -0x4(%ebp),%eax
411342:	8d 3c 78             	lea    (%eax,%edi,2),%edi
411345:	8b f7                	mov    %edi,%esi
411347:	3b 7d ec             	cmp    -0x14(%ebp),%edi
41134a:	0f 87 a0 00 00 00    	ja     0x4113f0
411350:	0f b7 07             	movzwl (%edi),%eax
411353:	e9 33 ff ff ff       	jmp    0x41128b
411358:	8d 43 01             	lea    0x1(%ebx),%eax
41135b:	3b f8                	cmp    %eax,%edi
41135d:	0f 84 8d 00 00 00    	je     0x4113f0
411363:	2b fb                	sub    %ebx,%edi
411365:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
411368:	53                   	push   %ebx
411369:	6a 08                	push   $0x8
41136b:	ff 15 e0 60 41 00    	call   *0x4160e0
411371:	50                   	push   %eax
411372:	ff 15 dc 60 41 00    	call   *0x4160dc
411378:	8b c8                	mov    %eax,%ecx
41137a:	8b 45 08             	mov    0x8(%ebp),%eax
41137d:	89 08                	mov    %ecx,(%eax)
41137f:	85 c9                	test   %ecx,%ecx
411381:	75 11                	jne    0x411394
411383:	68 0e 00 07 80       	push   $0x8007000e
411388:	68 08 46 40 00       	push   $0x404608
41138d:	68 0a 03 00 00       	push   $0x30a
411392:	eb 51                	jmp    0x4113e5
411394:	8d 47 ff             	lea    -0x1(%edi),%eax
411397:	8b d7                	mov    %edi,%edx
411399:	50                   	push   %eax
41139a:	8d 46 02             	lea    0x2(%esi),%eax
41139d:	50                   	push   %eax
41139e:	e8 56 00 00 00       	call   0x4113f9
4113a3:	85 c0                	test   %eax,%eax
4113a5:	79 0d                	jns    0x4113b4
4113a7:	50                   	push   %eax
4113a8:	68 08 46 40 00       	push   $0x404608
4113ad:	68 0f 03 00 00       	push   $0x30f
4113b2:	eb 31                	jmp    0x4113e5
4113b4:	8b 45 08             	mov    0x8(%ebp),%eax
4113b7:	33 c9                	xor    %ecx,%ecx
4113b9:	8b 00                	mov    (%eax),%eax
4113bb:	66 89 4c 03 fe       	mov    %cx,-0x2(%ebx,%eax,1)
4113c0:	33 c0                	xor    %eax,%eax
4113c2:	40                   	inc    %eax
4113c3:	eb 2d                	jmp    0x4113f2
4113c5:	68 57 00 07 80       	push   $0x80070057
4113ca:	68 08 46 40 00       	push   $0x404608
4113cf:	68 ef 02 00 00       	push   $0x2ef
4113d4:	eb 0f                	jmp    0x4113e5
4113d6:	68 57 00 07 80       	push   $0x80070057
4113db:	68 08 46 40 00       	push   $0x404608
4113e0:	68 cf 02 00 00       	push   $0x2cf
4113e5:	68 a8 45 40 00       	push   $0x4045a8
4113ea:	51                   	push   %ecx
4113eb:	e8 e2 fb ff ff       	call   0x410fd2
4113f0:	33 c0                	xor    %eax,%eax
4113f2:	5f                   	pop    %edi
4113f3:	5e                   	pop    %esi