403fe1:	3b d9                	cmp    %ecx,%ebx
403fe3:	a3 10 37 42 00       	mov    %eax,0x423710
403fe8:	75 4d                	jne    0x404037
403fea:	8b 35 e4 81 40 00    	mov    0x4081e4,%esi
403ff0:	6a 01                	push   $0x1
403ff2:	57                   	push   %edi
403ff3:	89 3d 48 a2 42 00    	mov    %edi,0x42a248
403ff9:	ff d6                	call   *%esi
403ffb:	6a 02                	push   $0x2
403ffd:	57                   	push   %edi
403ffe:	a3 24 37 42 00       	mov    %eax,0x423724
404003:	ff d6                	call   *%esi
404005:	6a ff                	push   $0xffffffff
404007:	6a 1c                	push   $0x1c
404009:	57                   	push   %edi
40400a:	a3 f0 16 42 00       	mov    %eax,0x4216f0
40400f:	e8 4b 03 00 00       	call   0x40435f
404014:	ff 35 28 92 42 00    	push   0x429228
40401a:	6a f2                	push   $0xfffffff2
40401c:	57                   	push   %edi
40401d:	ff 15 98 81 40 00    	call   *0x408198
404023:	6a 04                	push   $0x4
404025:	e8 e1 d3 ff ff       	call   0x40140b
40402a:	a3 0c 92 42 00       	mov    %eax,0x42920c
40402f:	33 c0                	xor    %eax,%eax
404031:	40                   	inc    %eax
404032:	a3 10 37 42 00       	mov    %eax,0x423710
404037:	8b 0d 9c a3 40 00    	mov    0x40a39c,%ecx
40403d:	33 ed                	xor    %ebp,%ebp
40403f:	8b f1                	mov    %ecx,%esi
404041:	c1 e6 06             	shl    $0x6,%esi
404044:	03 35 80 a2 42 00    	add    0x42a280,%esi
40404a:	3b cd                	cmp    %ebp,%ecx
40404c:	7c 3e                	jl     0x40408c
40404e:	83 f8 01             	cmp    $0x1,%eax
404051:	75 31                	jne    0x404084
404053:	55                   	push   %ebp
404054:	ff 76 10             	push   0x10(%esi)
404057:	e8 2d d3 ff ff       	call   0x401389
40405c:	85 c0                	test   %eax,%eax
40405e:	74 24                	je     0x404084
404060:	6a 01                	push   $0x1
404062:	55                   	push   %ebp
404063:	68 0f 04 00 00       	push   $0x40f
404068:	ff 35 18 92 42 00    	push   0x429218
40406e:	ff 15 18 82 40 00    	call   *0x408218
404074:	33 c0                	xor    %eax,%eax
404076:	39 2d 0c 92 42 00    	cmp    %ebp,0x42920c
40407c:	0f 94 c0             	sete   %al
40407f:	e9 aa 02 00 00       	jmp    0x40432e
404084:	39 2e                	cmp    %ebp,(%esi)
404086:	0f 84 a0 02 00 00    	je     0x40432c
40408c:	68 0b 04 00 00       	push   $0x40b
404091:	e8 15 03 00 00       	call   0x4043ab
404096:	a1 10 37 42 00       	mov    0x423710,%eax
40409b:	01 05 9c a3 40 00    	add    %eax,0x40a39c
4040a1:	c1 e0 06             	shl    $0x6,%eax
4040a4:	03 f0                	add    %eax,%esi
4040a6:	a1 9c a3 40 00       	mov    0x40a39c,%eax
4040ab:	3b 05 84 a2 42 00    	cmp    0x42a284,%eax
4040b1:	75 07                	jne    0x4040ba
4040b3:	6a 01                	push   $0x1
4040b5:	e8 51 d3 ff ff       	call   0x40140b
4040ba:	39 2d 0c 92 42 00    	cmp    %ebp,0x42920c
4040c0:	0f 85 24 02 00 00    	jne    0x4042ea
4040c6:	a1 84 a2 42 00       	mov    0x42a284,%eax
4040cb:	39 05 9c a3 40 00    	cmp    %eax,0x40a39c
4040d1:	0f 83 13 02 00 00    	jae    0x4042ea
4040d7:	ff 76 24             	push   0x24(%esi)
4040da:	8b 5e 14             	mov    0x14(%esi),%ebx
4040dd:	68 00 a0 43 00       	push   $0x43a000
4040e2:	e8 23 23 00 00       	call   0x40640a
4040e7:	ff 76 20             	push   0x20(%esi)
4040ea:	68 19 fc ff ff       	push   $0xfffffc19
4040ef:	57                   	push   %edi
4040f0:	e8 6a 02 00 00       	call   0x40435f
4040f5:	ff 76 1c             	push   0x1c(%esi)
4040f8:	68 1b fc ff ff       	push   $0xfffffc1b
4040fd:	57                   	push   %edi
4040fe:	e8 5c 02 00 00       	call   0x40435f
404103:	ff 76 28             	push   0x28(%esi)
404106:	68 1a fc ff ff       	push   $0xfffffc1a
40410b:	57                   	push   %edi
40410c:	e8 4e 02 00 00       	call   0x40435f
404111:	6a 03                	push   $0x3
404113:	57                   	push   %edi
404114:	ff 15 e4 81 40 00    	call   *0x4081e4
40411a:	39 2d ec a2 42 00    	cmp    %ebp,0x42a2ec
404120:	89 44 24 2c          	mov    %eax,0x2c(%esp)
404124:	74 08                	je     0x40412e
404126:	66 81 e3 fd fe       	and    $0xfefd,%bx
40412b:	83 cb 04             	or     $0x4,%ebx
40412e:	8b cb                	mov    %ebx,%ecx
404130:	83 e1 08             	and    $0x8,%ecx
404133:	51                   	push   %ecx
404134:	50                   	push   %eax
404135:	ff 15 68 82 40 00    	call   *0x408268
40413b:	8b c3                	mov    %ebx,%eax
40413d:	25 00 01 00 00       	and    $0x100,%eax
404142:	50                   	push   %eax
404143:	ff 74 24 30          	push   0x30(%esp)
404147:	ff 15 10 82 40 00    	call   *0x408210
40414d:	8b c3                	mov    %ebx,%eax
40414f:	83 e0 02             	and    $0x2,%eax
404152:	50                   	push   %eax
404153:	e8 29 02 00 00       	call   0x404381
404158:	83 e3 04             	and    $0x4,%ebx
40415b:	53                   	push   %ebx
40415c:	ff 35 f0 16 42 00    	push   0x4216f0
404162:	ff 15 10 82 40 00    	call   *0x408210
404168:	3b dd                	cmp    %ebp,%ebx
40416a:	74 03                	je     0x40416f
40416c:	55                   	push   %ebp
40416d:	eb 02                	jmp    0x404171
40416f:	6a 01                	push   $0x1
404171:	68 60 f0 00 00       	push   $0xf060
404176:	55                   	push   %ebp
404177:	57                   	push   %edi
404178:	ff 15 94 81 40 00    	call   *0x408194
40417e:	50                   	push   %eax
40417f:	ff 15 9c 81 40 00    	call   *0x40819c
404185:	8b 1d 18 82 40 00    	mov    0x408218,%ebx
40418b:	6a 01                	push   $0x1
40418d:	55                   	push   %ebp
40418e:	68 f4 00 00 00       	push   $0xf4
404193:	ff 74 24 38          	push   0x38(%esp)
404197:	ff d3                	call   *%ebx
404199:	39 2d ec a2 42 00    	cmp    %ebp,0x42a2ec
40419f:	74 13                	je     0x4041b4
4041a1:	55                   	push   %ebp
4041a2:	6a 02                	push   $0x2
4041a4:	68 01 04 00 00       	push   $0x401
4041a9:	57                   	push   %edi
4041aa:	ff d3                	call   *%ebx
4041ac:	ff 35 f0 16 42 00    	push   0x4216f0
4041b2:	eb 06                	jmp    0x4041ba
4041b4:	ff 35 24 37 42 00    	push   0x423724
4041ba:	e8 d5 01 00 00       	call   0x404394
4041bf:	e8 a3 fc ff ff       	call   0x403e67
4041c4:	bb 28 37 42 00       	mov    $0x423728,%ebx
4041c9:	50                   	push   %eax
4041ca:	53                   	push   %ebx
4041cb:	e8 18 22 00 00       	call   0x4063e8
4041d0:	ff 76 18             	push   0x18(%esi)
4041d3:	53                   	push   %ebx
4041d4:	e8 25 22 00 00       	call   0x4063fe
4041d9:	8d 04 45 28 37 42 00 	lea    0x423728(,%eax,2),%eax
4041e0:	50                   	push   %eax
4041e1:	e8 24 22 00 00       	call   0x40640a
4041e6:	53                   	push   %ebx
4041e7:	57                   	push   %edi
4041e8:	ff 15 5c 82 40 00    	call   *0x40825c
4041ee:	55                   	push   %ebp
4041ef:	ff 76 08             	push   0x8(%esi)
4041f2:	e8 92 d1 ff ff       	call   0x401389
4041f7:	85 c0                	test   %eax,%eax
4041f9:	0f 85 97 fe ff ff    	jne    0x404096
4041ff:	39 2e                	cmp    %ebp,(%esi)
404201:	0f 84 8f fe ff ff    	je     0x404096
404207:	83 7e 04 05          	cmpl   $0x5,0x4(%esi)
40420b:	75 1d                	jne    0x40422a
40420d:	39 2d ec a2 42 00    	cmp    %ebp,0x42a2ec
404213:	0f 85 13 01 00 00    	jne    0x40432c
404219:	39 2d e0 a2 42 00    	cmp    %ebp,0x42a2e0
40421f:	0f 85 71 fe ff ff    	jne    0x404096
404225:	e9 02 01 00 00       	jmp    0x40432c
40422a:	ff 35 18 92 42 00    	push   0x429218
404230:	ff 15 50 82 40 00    	call   *0x408250
404236:	89 35 00 27 42 00    	mov    %esi,0x422700
40423c:	39 2e                	cmp    %ebp,(%esi)
40423e:	0f 8e c5 00 00 00    	jle    0x404309
404244:	8b 46 04             	mov    0x4(%esi),%eax
404247:	56                   	push   %esi
404248:	ff 34 85 a0 a3 40 00 	push   0x40a3a0(,%eax,4)
40424f:	66 8b 06             	mov    (%esi),%ax
404252:	66 03 05 20 92 42 00 	add    0x429220,%ax
404259:	57                   	push   %edi
40425a:	0f b7 c0             	movzwl %ax,%eax
40425d:	50                   	push   %eax
40425e:	ff 35 40 a2 42 00    	push   0x42a240
404264:	ff 15 88 82 40 00    	call   *0x408288
40426a:	3b c5                	cmp    %ebp,%eax
40426c:	a3 18 92 42 00       	mov    %eax,0x429218
404271:	0f 84 92 00 00 00    	je     0x404309
404277:	ff 76 2c             	push   0x2c(%esi)
40427a:	6a 06                	push   $0x6
40427c:	50                   	push   %eax
40427d:	e8 dd 00 00 00       	call   0x40435f
404282:	8d 44 24 10          	lea    0x10(%esp),%eax
404286:	50                   	push   %eax
404287:	68 fa 03 00 00       	push   $0x3fa
40428c:	57                   	push   %edi
40428d:	ff 15 e4 81 40 00    	call   *0x4081e4
404293:	50                   	push   %eax
404294:	ff 15 e0 81 40 00    	call   *0x4081e0
40429a:	8d 44 24 10          	lea    0x10(%esp),%eax
40429e:	50                   	push   %eax
40429f:	57                   	push   %edi
4042a0:	ff 15 dc 81 40 00    	call   *0x4081dc
4042a6:	6a 15                	push   $0x15
4042a8:	55                   	push   %ebp
4042a9:	55                   	push   %ebp
4042aa:	ff 74 24 20          	push   0x20(%esp)
4042ae:	ff 74 24 20          	push   0x20(%esp)
4042b2:	55                   	push   %ebp
4042b3:	ff 35 18 92 42 00    	push   0x429218
4042b9:	ff 15 a4 81 40 00    	call   *0x4081a4
4042bf:	55                   	push   %ebp
4042c0:	ff 76 0c             	push   0xc(%esi)
4042c3:	e8 c1 d0 ff ff       	call   0x401389
4042c8:	39 2d 0c 92 42 00    	cmp    %ebp,0x42920c
4042ce:	75 5c                	jne    0x40432c
4042d0:	6a 08                	push   $0x8
4042d2:	ff 35 18 92 42 00    	push   0x429218
4042d8:	ff 15 68 82 40 00    	call   *0x408268
4042de:	68 05 04 00 00       	push   $0x405
4042e3:	e8 c3 00 00 00       	call   0x4043ab
4042e8:	eb 1f                	jmp    0x404309
4042ea:	ff 35 18 92 42 00    	push   0x429218
4042f0:	ff 15 50 82 40 00    	call   *0x408250
4042f6:	ff 35 f8 1e 42 00    	push   0x421ef8
4042fc:	89 2d 48 a2 42 00    	mov    %ebp,0x42a248
404302:	57                   	push   %edi
404303:	ff 15 30 82 40 00    	call   *0x408230
404309:	39 2d 28 57 42 00    	cmp    %ebp,0x425728
40430f:	75 1b                	jne    0x40432c
404311:	39 2d 18 92 42 00    	cmp    %ebp,0x429218
404317:	74 13                	je     0x40432c
404319:	6a 0a                	push   $0xa
40431b:	57                   	push   %edi
40431c:	ff 15 68 82 40 00    	call   *0x408268
404322:	c7 05 28 57 42 00 01 	movl   $0x1,0x425728
404329:	00 00 00
40432c:	33 c0                	xor    %eax,%eax
40432e:	5f                   	pop    %edi
40432f:	5e                   	pop    %esi
404330:	5d                   	pop    %ebp
404331:	5b                   	pop    %ebx
404332:	83 c4 10             	add    $0x10,%esp
404335:	c2 10 00             	ret    $0x10
404338:	83 7c 24 04 78       	cmpl   $0x78,0x4(%esp)
40433d:	75 06                	jne    0x404345
40433f:	ff 05 0c 92 42 00    	incl   0x42920c
404345:	6a 00                	push   $0x0
404347:	ff 74 24 08          	push   0x8(%esp)
40434b:	68 08 04 00 00       	push   $0x408
404350:	ff 35 48 a2 42 00    	push   0x42a248
404356:	ff 15 18 82 40 00    	call   *0x408218
40435c:	c2 04 00             	ret    $0x4
40435f:	ff 74 24 0c          	push   0xc(%esp)
404363:	6a 00                	push   $0x0
404365:	e8 a0 20 00 00       	call   0x40640a
40436a:	50                   	push   %eax
40436b:	8b 44 24 0c          	mov    0xc(%esp),%eax
40436f:	05 e8 03 00 00       	add    $0x3e8,%eax
404374:	50                   	push   %eax
404375:	ff 74 24 0c          	push   0xc(%esp)
404379:	e8 ae 16 00 00       	call   0x405a2c
40437e:	c2 0c 00             	ret    $0xc
404381:	ff 74 24 04          	push   0x4(%esp)
404385:	ff 35 24 37 42 00    	push   0x423724
40438b:	ff 15 10 82 40 00    	call   *0x408210
404391:	c2 04 00             	ret    $0x4
404394:	6a 01                	push   $0x1
404396:	ff 74 24 08          	push   0x8(%esp)
40439a:	6a 28                	push   $0x28
40439c:	ff 35 48 a2 42 00    	push   0x42a248
4043a2:	ff 15 18 82 40 00    	call   *0x408218
4043a8:	c2 04 00             	ret    $0x4
4043ab:	a1 18 92 42 00       	mov    0x429218,%eax
4043b0:	85 c0                	test   %eax,%eax
4043b2:	74 0f                	je     0x4043c3
4043b4:	6a 00                	push   $0x0
4043b6:	6a 00                	push   $0x0
4043b8:	ff 74 24 0c          	push   0xc(%esp)
4043bc:	50                   	push   %eax
4043bd:	ff 15 18 82 40 00    	call   *0x408218
4043c3:	c2 04 00             	ret    $0x4
4043c6:	55                   	push   %ebp
4043c7:	8b ec                	mov    %esp,%ebp
4043c9:	83 ec 0c             	sub    $0xc,%esp
4043cc:	8b 45 08             	mov    0x8(%ebp),%eax
4043cf:	56                   	push   %esi
4043d0:	05 cd fe ff ff       	add    $0xfffffecd,%eax
4043d5:	83 f8 05             	cmp    $0x5,%eax
4043d8:	0f 87 b0 00 00 00    	ja     0x40448e
4043de:	6a eb                	push   $0xffffffeb
4043e0:	ff 75 10             	push   0x10(%ebp)
4043e3:	ff 15 ac 81 40 00    	call   *0x4081ac
4043e9:	8b f0                	mov    %eax,%esi
4043eb:	85 f6                	test   %esi,%esi
4043ed:	0f 84 9b 00 00 00    	je     0x40448e
4043f3:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
4043f7:	0f 87 91 00 00 00    	ja     0x40448e
4043fd:	83 7e 10 02          	cmpl   $0x2,0x10(%esi)
404401:	0f 87 87 00 00 00    	ja     0x40448e
404407:	8b 4e 14             	mov    0x14(%esi),%ecx
40440a:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
404410:	75 7c                	jne    0x40448e
404412:	8b 06                	mov    (%esi),%eax
404414:	57                   	push   %edi
404415:	8b 3d a8 81 40 00    	mov    0x4081a8,%edi
40441b:	f6 c1 02             	test   $0x2,%cl
40441e:	74 03                	je     0x404423
404420:	50                   	push   %eax
404421:	ff d7                	call   *%edi
404423:	f6 46 14 01          	testb  $0x1,0x14(%esi)
404427:	74 0a                	je     0x404433
404429:	50                   	push   %eax
40442a:	ff 75 0c             	push   0xc(%ebp)
40442d:	ff 15 58 80 40 00    	call   *0x408058
404433:	ff 76 10             	push   0x10(%esi)
404436:	ff 75 0c             	push   0xc(%ebp)
404439:	ff 15 50 80 40 00    	call   *0x408050
40443f:	8b 46 04             	mov    0x4(%esi),%eax
404442:	f6 46 14 08          	testb  $0x8,0x14(%esi)
404446:	89 45 f8             	mov    %eax,-0x8(%ebp)
404449:	74 06                	je     0x404451
40444b:	50                   	push   %eax
40444c:	ff d7                	call   *%edi
40444e:	89 45 f8             	mov    %eax,-0x8(%ebp)
404451:	f6 46 14 04          	testb  $0x4,0x14(%esi)
404455:	5f                   	pop    %edi
404456:	74 0a                	je     0x404462
404458:	50                   	push   %eax
404459:	ff 75 0c             	push   0xc(%ebp)
40445c:	ff 15 68 80 40 00    	call   *0x408068
404462:	f6 46 14 10          	testb  $0x10,0x14(%esi)
404466:	74 21                	je     0x404489
404468:	8b 46 08             	mov    0x8(%esi),%eax
40446b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40446e:	8b 46 0c             	mov    0xc(%esi),%eax
404471:	85 c0                	test   %eax,%eax
404473:	74 07                	je     0x40447c
404475:	50                   	push   %eax
404476:	ff 15 5c 80 40 00    	call   *0x40805c
40447c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40447f:	50                   	push   %eax
404480:	ff 15 64 80 40 00    	call   *0x408064
404486:	89 46 0c             	mov    %eax,0xc(%esi)
404489:	8b 46 0c             	mov    0xc(%esi),%eax
40448c:	eb 02                	jmp    0x404490
40448e:	33 c0                	xor    %eax,%eax
404490:	5e                   	pop    %esi
404491:	c9                   	leave
404492:	c2 0c 00             	ret    $0xc
404495:	55                   	push   %ebp
404496:	8b ec                	mov    %esp,%ebp
404498:	8b 45 10             	mov    0x10(%ebp),%eax
40449b:	8b 0d f4 16 42 00    	mov    0x4216f4,%ecx