403fc8:	55                   	push   %ebp
403fc9:	ff 76 0c             	push   0xc(%esi)
403fcc:	e8 b8 d3 ff ff       	call   0x401389
403fd1:	39 2d cc 2e 42 00    	cmp    %ebp,0x422ecc
403fd7:	75 5c                	jne    0x404035
403fd9:	6a 08                	push   $0x8
403fdb:	ff 35 d8 2e 42 00    	push   0x422ed8
403fe1:	ff 15 48 72 40 00    	call   *0x407248
403fe7:	68 05 04 00 00       	push   $0x405
403fec:	e8 c3 00 00 00       	call   0x4040b4
403ff1:	eb 1f                	jmp    0x404012
403ff3:	ff 35 d8 2e 42 00    	push   0x422ed8
403ff9:	ff 15 70 72 40 00    	call   *0x407270
403fff:	ff 35 d8 f0 41 00    	push   0x41f0d8
404005:	89 2d 08 37 42 00    	mov    %ebp,0x423708
40400b:	57                   	push   %edi
40400c:	ff 15 14 72 40 00    	call   *0x407214
404012:	39 2d 08 0d 42 00    	cmp    %ebp,0x420d08
404018:	75 1b                	jne    0x404035
40401a:	39 2d d8 2e 42 00    	cmp    %ebp,0x422ed8
404020:	74 13                	je     0x404035
404022:	6a 0a                	push   $0xa
404024:	57                   	push   %edi
404025:	ff 15 48 72 40 00    	call   *0x407248
40402b:	c7 05 08 0d 42 00 01 	movl   $0x1,0x420d08
404032:	00 00 00
404035:	33 c0                	xor    %eax,%eax
404037:	5f                   	pop    %edi
404038:	5e                   	pop    %esi
404039:	5d                   	pop    %ebp
40403a:	5b                   	pop    %ebx
40403b:	83 c4 10             	add    $0x10,%esp
40403e:	c2 10 00             	ret    $0x10
404041:	83 7c 24 04 78       	cmpl   $0x78,0x4(%esp)
404046:	75 06                	jne    0x40404e
404048:	ff 05 cc 2e 42 00    	incl   0x422ecc
40404e:	6a 00                	push   $0x0
404050:	ff 74 24 08          	push   0x8(%esp)
404054:	68 08 04 00 00       	push   $0x408
404059:	ff 35 08 37 42 00    	push   0x423708
40405f:	ff 15 00 72 40 00    	call   *0x407200
404065:	c2 04 00             	ret    $0x4
404068:	ff 74 24 0c          	push   0xc(%esp)
40406c:	6a 00                	push   $0x0
40406e:	e8 89 1f 00 00       	call   0x405ffc
404073:	50                   	push   %eax
404074:	8b 44 24 0c          	mov    0xc(%esp),%eax
404078:	05 e8 03 00 00       	add    $0x3e8,%eax
40407d:	50                   	push   %eax
40407e:	ff 74 24 0c          	push   0xc(%esp)
404082:	e8 4d 16 00 00       	call   0x4056d4
404087:	c2 0c 00             	ret    $0xc
40408a:	ff 74 24 04          	push   0x4(%esp)
40408e:	ff 35 04 fd 41 00    	push   0x41fd04
404094:	ff 15 f8 71 40 00    	call   *0x4071f8
40409a:	c2 04 00             	ret    $0x4
40409d:	6a 01                	push   $0x1
40409f:	ff 74 24 08          	push   0x8(%esp)
4040a3:	6a 28                	push   $0x28
4040a5:	ff 35 08 37 42 00    	push   0x423708
4040ab:	ff 15 00 72 40 00    	call   *0x407200
4040b1:	c2 04 00             	ret    $0x4
4040b4:	a1 d8 2e 42 00       	mov    0x422ed8,%eax
4040b9:	85 c0                	test   %eax,%eax
4040bb:	74 0f                	je     0x4040cc
4040bd:	6a 00                	push   $0x0
4040bf:	6a 00                	push   $0x0
4040c1:	ff 74 24 0c          	push   0xc(%esp)
4040c5:	50                   	push   %eax
4040c6:	ff 15 00 72 40 00    	call   *0x407200
4040cc:	c2 04 00             	ret    $0x4
4040cf:	55                   	push   %ebp
4040d0:	8b ec                	mov    %esp,%ebp
4040d2:	83 ec 0c             	sub    $0xc,%esp
4040d5:	8b 45 08             	mov    0x8(%ebp),%eax
4040d8:	56                   	push   %esi
4040d9:	05 cd fe ff ff       	add    $0xfffffecd,%eax
4040de:	83 f8 05             	cmp    $0x5,%eax
4040e1:	0f 87 b0 00 00 00    	ja     0x404197
4040e7:	6a eb                	push   $0xffffffeb
4040e9:	ff 75 10             	push   0x10(%ebp)
4040ec:	ff 15 9c 71 40 00    	call   *0x40719c
4040f2:	8b f0                	mov    %eax,%esi
4040f4:	85 f6                	test   %esi,%esi
4040f6:	0f 84 9b 00 00 00    	je     0x404197
4040fc:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
404100:	0f 87 91 00 00 00    	ja     0x404197
404106:	83 7e 10 02          	cmpl   $0x2,0x10(%esi)
40410a:	0f 87 87 00 00 00    	ja     0x404197
404110:	8b 4e 14             	mov    0x14(%esi),%ecx
404113:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
404119:	75 7c                	jne    0x404197
40411b:	8b 06                	mov    (%esi),%eax
40411d:	57                   	push   %edi
40411e:	8b 3d 98 71 40 00    	mov    0x407198,%edi
404124:	f6 c1 02             	test   $0x2,%cl
404127:	74 03                	je     0x40412c
404129:	50                   	push   %eax
40412a:	ff d7                	call   *%edi
40412c:	f6 46 14 01          	testb  $0x1,0x14(%esi)
404130:	74 0a                	je     0x40413c
404132:	50                   	push   %eax
404133:	ff 75 0c             	push   0xc(%ebp)
404136:	ff 15 50 70 40 00    	call   *0x407050
40413c:	ff 76 10             	push   0x10(%esi)
40413f:	ff 75 0c             	push   0xc(%ebp)
404142:	ff 15 54 70 40 00    	call   *0x407054
404148:	8b 46 04             	mov    0x4(%esi),%eax
40414b:	f6 46 14 08          	testb  $0x8,0x14(%esi)
40414f:	89 45 f8             	mov    %eax,-0x8(%ebp)
404152:	74 06                	je     0x40415a
404154:	50                   	push   %eax
404155:	ff d7                	call   *%edi
404157:	89 45 f8             	mov    %eax,-0x8(%ebp)
40415a:	f6 46 14 04          	testb  $0x4,0x14(%esi)
40415e:	5f                   	pop    %edi
40415f:	74 0a                	je     0x40416b
404161:	50                   	push   %eax
404162:	ff 75 0c             	push   0xc(%ebp)
404165:	ff 15 68 70 40 00    	call   *0x407068
40416b:	f6 46 14 10          	testb  $0x10,0x14(%esi)
40416f:	74 21                	je     0x404192
404171:	8b 46 08             	mov    0x8(%esi),%eax
404174:	89 45 f4             	mov    %eax,-0xc(%ebp)
404177:	8b 46 0c             	mov    0xc(%esi),%eax
40417a:	85 c0                	test   %eax,%eax
40417c:	74 07                	je     0x404185
40417e:	50                   	push   %eax
40417f:	ff 15 60 70 40 00    	call   *0x407060
404185:	8d 45 f4             	lea    -0xc(%ebp),%eax
404188:	50                   	push   %eax
404189:	ff 15 5c 70 40 00    	call   *0x40705c
40418f:	89 46 0c             	mov    %eax,0xc(%esi)
404192:	8b 46 0c             	mov    0xc(%esi),%eax
404195:	eb 02                	jmp    0x404199
404197:	33 c0                	xor    %eax,%eax
404199:	5e                   	pop    %esi
40419a:	c9                   	leave
40419b:	c2 0c 00             	ret    $0xc
40419e:	55                   	push   %ebp
40419f:	8b ec                	mov    %esp,%ebp
4041a1:	8b 45 08             	mov    0x8(%ebp),%eax
4041a4:	8b 0d d4 ec 41 00    	mov    0x41ecd4,%ecx
4041aa:	ff 75 10             	push   0x10(%ebp)
4041ad:	03 c8                	add    %eax,%ecx
4041af:	51                   	push   %ecx
4041b0:	ff 75 0c             	push   0xc(%ebp)
4041b3:	ff 15 a4 70 40 00    	call   *0x4070a4
4041b9:	ff 75 0c             	push   0xc(%ebp)
4041bc:	ff 15 98 70 40 00    	call   *0x407098
4041c2:	8b 4d 14             	mov    0x14(%ebp),%ecx
4041c5:	89 01                	mov    %eax,(%ecx)
4041c7:	01 05 d4 ec 41 00    	add    %eax,0x41ecd4
4041cd:	33 c0                	xor    %eax,%eax
4041cf:	5d                   	pop    %ebp
4041d0:	c2 10 00             	ret    $0x10
4041d3:	55                   	push   %ebp
4041d4:	8b ec                	mov    %esp,%ebp
4041d6:	83 ec 0c             	sub    $0xc,%esp
4041d9:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
4041e0:	53                   	push   %ebx
4041e1:	56                   	push   %esi
4041e2:	57                   	push   %edi
4041e3:	0f 85 0c 01 00 00    	jne    0x4042f5
4041e9:	8b 5d 14             	mov    0x14(%ebp),%ebx
4041ec:	8b 7b 30             	mov    0x30(%ebx),%edi
4041ef:	85 ff                	test   %edi,%edi
4041f1:	7d 11                	jge    0x404204
4041f3:	8b 0d dc 2e 42 00    	mov    0x422edc,%ecx
4041f9:	8d 04 bd 04 00 00 00 	lea    0x4(,%edi,4),%eax
404200:	2b c8                	sub    %eax,%ecx
404202:	8b 39                	mov    (%ecx),%edi
404204:	a1 58 37 42 00       	mov    0x423758,%eax
404209:	ff 73 34             	push   0x34(%ebx)
40420c:	03 f8                	add    %eax,%edi
40420e:	6a 22                	push   $0x22
404210:	0f be 07             	movsbl (%edi),%eax
404213:	89 45 14             	mov    %eax,0x14(%ebp)
404216:	8b 43 14             	mov    0x14(%ebx),%eax
404219:	ff 75 08             	push   0x8(%ebp)
40421c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
404220:	8b f0                	mov    %eax,%esi
404222:	47                   	inc    %edi
404223:	f7 d6                	not    %esi
404225:	c1 ee 05             	shr    $0x5,%esi
404228:	83 e6 01             	and    $0x1,%esi
40422b:	83 e0 01             	and    $0x1,%eax
40422e:	89 7d f4             	mov    %edi,-0xc(%ebp)
404231:	c7 45 fc 9e 41 40 00 	movl   $0x40419e,-0x4(%ebp)
404238:	0b f0                	or     %eax,%esi
40423a:	e8 29 fe ff ff       	call   0x404068
40423f:	ff 73 38             	push   0x38(%ebx)
404242:	6a 23                	push   $0x23
404244:	ff 75 08             	push   0x8(%ebp)
404247:	e8 1c fe ff ff       	call   0x404068
40424c:	33 c0                	xor    %eax,%eax
40424e:	6a 01                	push   $0x1
404250:	85 f6                	test   %esi,%esi
404252:	0f 94 c0             	sete   %al
404255:	05 0a 04 00 00       	add    $0x40a,%eax
40425a:	50                   	push   %eax
40425b:	ff 75 08             	push   0x8(%ebp)
40425e:	ff 15 a8 71 40 00    	call   *0x4071a8
404264:	56                   	push   %esi
404265:	e8 20 fe ff ff       	call   0x40408a
40426a:	68 e8 03 00 00       	push   $0x3e8
40426f:	ff 75 08             	push   0x8(%ebp)
404272:	ff 15 d0 71 40 00    	call   *0x4071d0
404278:	8b d8                	mov    %eax,%ebx
40427a:	53                   	push   %ebx
40427b:	e8 1d fe ff ff       	call   0x40409d
404280:	8b 35 00 72 40 00    	mov    0x407200,%esi
404286:	6a 00                	push   $0x0
404288:	6a 01                	push   $0x1
40428a:	68 5b 04 00 00       	push   $0x45b
40428f:	53                   	push   %ebx
404290:	ff d6                	call   *%esi
404292:	a1 14 37 42 00       	mov    0x423714,%eax
404297:	8b 40 68             	mov    0x68(%eax),%eax
40429a:	85 c0                	test   %eax,%eax
40429c:	7d 09                	jge    0x4042a7
40429e:	f7 d8                	neg    %eax
4042a0:	50                   	push   %eax
4042a1:	ff 15 98 71 40 00    	call   *0x407198
4042a7:	50                   	push   %eax
4042a8:	6a 00                	push   $0x0
4042aa:	68 43 04 00 00       	push   $0x443
4042af:	53                   	push   %ebx
4042b0:	ff d6                	call   *%esi
4042b2:	68 00 00 01 04       	push   $0x4010000
4042b7:	6a 00                	push   $0x0
4042b9:	68 45 04 00 00       	push   $0x445
4042be:	53                   	push   %ebx
4042bf:	ff d6                	call   *%esi
4042c1:	57                   	push   %edi
4042c2:	e8 29 1d 00 00       	call   0x405ff0
4042c7:	33 ff                	xor    %edi,%edi
4042c9:	50                   	push   %eax
4042ca:	57                   	push   %edi
4042cb:	68 35 04 00 00       	push   $0x435
4042d0:	53                   	push   %ebx
4042d1:	ff d6                	call   *%esi
4042d3:	8d 45 f4             	lea    -0xc(%ebp),%eax
4042d6:	89 3d d4 ec 41 00    	mov    %edi,0x41ecd4
4042dc:	50                   	push   %eax
4042dd:	ff 75 14             	push   0x14(%ebp)
4042e0:	68 49 04 00 00       	push   $0x449
4042e5:	53                   	push   %ebx
4042e6:	ff d6                	call   *%esi
4042e8:	89 3d d4 ec 41 00    	mov    %edi,0x41ecd4
4042ee:	33 c0                	xor    %eax,%eax
4042f0:	e9 57 01 00 00       	jmp    0x40444c
4042f5:	81 7d 0c 11 01 00 00 	cmpl   $0x111,0xc(%ebp)
4042fc:	8b 1d d0 71 40 00    	mov    0x4071d0,%ebx
404302:	8b 35 00 72 40 00    	mov    0x407200,%esi
404308:	75 5a                	jne    0x404364
40430a:	8b 45 10             	mov    0x10(%ebp),%eax
40430d:	c1 e8 10             	shr    $0x10,%eax
404310:	66 85 c0             	test   %ax,%ax
404313:	0f 85 24 01 00 00    	jne    0x40443d
404319:	33 c0                	xor    %eax,%eax
40431b:	39 05 d4 ec 41 00    	cmp    %eax,0x41ecd4
404321:	0f 85 16 01 00 00    	jne    0x40443d
404327:	8b 0d e0 f4 41 00    	mov    0x41f4e0,%ecx
40432d:	8d 79 14             	lea    0x14(%ecx),%edi
404330:	f6 07 20             	testb  $0x20,(%edi)
404333:	0f 84 04 01 00 00    	je     0x40443d
404339:	50                   	push   %eax
40433a:	50                   	push   %eax
40433b:	68 f0 00 00 00       	push   $0xf0
404340:	68 0a 04 00 00       	push   $0x40a
404345:	ff 75 08             	push   0x8(%ebp)
404348:	ff d3                	call   *%ebx
40434a:	50                   	push   %eax
40434b:	ff d6                	call   *%esi
40434d:	8b 0f                	mov    (%edi),%ecx
40434f:	83 e0 01             	and    $0x1,%eax
404352:	83 e1 fe             	and    $0xfffffffe,%ecx
404355:	50                   	push   %eax
404356:	0b c8                	or     %eax,%ecx
404358:	89 0f                	mov    %ecx,(%edi)
40435a:	e8 2b fd ff ff       	call   0x40408a
40435f:	e8 ef 00 00 00       	call   0x404453
404364:	83 7d 0c 4e          	cmpl   $0x4e,0xc(%ebp)
404368:	0f 85 c0 00 00 00    	jne    0x40442e
40436e:	68 e8 03 00 00       	push   $0x3e8
404373:	ff 75 08             	push   0x8(%ebp)
404376:	ff d3                	call   *%ebx
404378:	8b 7d 14             	mov    0x14(%ebp),%edi
40437b:	81 7f 08 0b 07 00 00 	cmpl   $0x70b,0x8(%edi)
404382:	75 68                	jne    0x4043ec
404384:	81 7f 0c 01 02 00 00 	cmpl   $0x201,0xc(%edi)
40438b:	75 5f                	jne    0x4043ec
40438d:	8b 4f 1c             	mov    0x1c(%edi),%ecx
404390:	8b 57 18             	mov    0x18(%edi),%edx
404393:	89 4d f8             	mov    %ecx,-0x8(%ebp)
404396:	2b ca                	sub    %edx,%ecx
404398:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
40439e:	89 55 f4             	mov    %edx,-0xc(%ebp)
4043a1:	c7 45 fc a0 26 42 00 	movl   $0x4226a0,-0x4(%ebp)
4043a8:	73 42                	jae    0x4043ec
4043aa:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4043ad:	51                   	push   %ecx
4043ae:	6a 00                	push   $0x0
4043b0:	68 4b 04 00 00       	push   $0x44b
4043b5:	50                   	push   %eax
4043b6:	ff d6                	call   *%esi
4043b8:	8b 3d a4 71 40 00    	mov    0x4071a4,%edi
4043be:	68 02 7f 00 00       	push   $0x7f02
4043c3:	6a 00                	push   $0x0
4043c5:	ff d7                	call   *%edi
4043c7:	8b 1d a0 71 40 00    	mov    0x4071a0,%ebx
4043cd:	50                   	push   %eax
4043ce:	ff d3                	call   *%ebx
4043d0:	6a 01                	push   $0x1
4043d2:	ff 75 fc             	push   -0x4(%ebp)
4043d5:	ff 75 08             	push   0x8(%ebp)
4043d8:	e8 9a 00 00 00       	call   0x404477
4043dd:	68 00 7f 00 00       	push   $0x7f00
4043e2:	6a 00                	push   $0x0
4043e4:	ff d7                	call   *%edi
4043e6:	50                   	push   %eax
4043e7:	ff d3                	call   *%ebx
4043e9:	8b 7d 14             	mov    0x14(%ebp),%edi
4043ec:	81 7f 08 00 07 00 00 	cmpl   $0x700,0x8(%edi)
4043f3:	75 4b                	jne    0x404440
4043f5:	81 7f 0c 00 01 00 00 	cmpl   $0x100,0xc(%edi)
4043fc:	75 42                	jne    0x404440
4043fe:	83 7f 10 0d          	cmpl   $0xd,0x10(%edi)
404402:	75 11                	jne    0x404415
404404:	6a 00                	push   $0x0
404406:	6a 01                	push   $0x1
404408:	68 11 01 00 00       	push   $0x111
40440d:	ff 35 08 37 42 00    	push   0x423708
404413:	ff d6                	call   *%esi
404415:	83 7f 10 1b          	cmpl   $0x1b,0x10(%edi)
404419:	75 0e                	jne    0x404429
40441b:	6a 00                	push   $0x0
40441d:	6a 00                	push   $0x0
40441f:	6a 10                	push   $0x10
404421:	ff 35 08 37 42 00    	push   0x423708
404427:	ff d6                	call   *%esi
404429:	33 c0                	xor    %eax,%eax
40442b:	40                   	inc    %eax
40442c:	eb 1e                	jmp    0x40444c
40442e:	81 7d 0c 0b 04 00 00 	cmpl   $0x40b,0xc(%ebp)
404435:	75 06                	jne    0x40443d
404437:	ff 05 d4 ec 41 00    	incl   0x41ecd4
40443d:	8b 7d 14             	mov    0x14(%ebp),%edi
404440:	57                   	push   %edi