40a119:	c3                   	ret
40a11a:	e8 54 01 00 00       	call   0x40a273
40a11f:	84 c0                	test   %al,%al
40a121:	75 07                	jne    0x40a12a
40a123:	e8 eb 10 00 00       	call   0x40b213
40a128:	eb ed                	jmp    0x40a117
40a12a:	b0 01                	mov    $0x1,%al
40a12c:	c3                   	ret
40a12d:	55                   	push   %ebp
40a12e:	8b ec                	mov    %esp,%ebp
40a130:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40a134:	75 0a                	jne    0x40a140
40a136:	e8 6b 01 00 00       	call   0x40a2a6
40a13b:	e8 d3 10 00 00       	call   0x40b213
40a140:	b0 01                	mov    $0x1,%al
40a142:	5d                   	pop    %ebp
40a143:	c3                   	ret
40a144:	55                   	push   %ebp
40a145:	8b ec                	mov    %esp,%ebp
40a147:	8b 45 08             	mov    0x8(%ebp),%eax
40a14a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a14d:	3b c1                	cmp    %ecx,%eax
40a14f:	75 04                	jne    0x40a155
40a151:	33 c0                	xor    %eax,%eax
40a153:	5d                   	pop    %ebp
40a154:	c3                   	ret
40a155:	83 c1 05             	add    $0x5,%ecx
40a158:	83 c0 05             	add    $0x5,%eax
40a15b:	8a 10                	mov    (%eax),%dl
40a15d:	3a 11                	cmp    (%ecx),%dl
40a15f:	75 18                	jne    0x40a179
40a161:	84 d2                	test   %dl,%dl
40a163:	74 ec                	je     0x40a151
40a165:	8a 50 01             	mov    0x1(%eax),%dl
40a168:	3a 51 01             	cmp    0x1(%ecx),%dl
40a16b:	75 0c                	jne    0x40a179
40a16d:	83 c0 02             	add    $0x2,%eax
40a170:	83 c1 02             	add    $0x2,%ecx
40a173:	84 d2                	test   %dl,%dl
40a175:	75 e4                	jne    0x40a15b
40a177:	eb d8                	jmp    0x40a151
40a179:	1b c0                	sbb    %eax,%eax
40a17b:	83 c8 01             	or     $0x1,%eax
40a17e:	5d                   	pop    %ebp
40a17f:	c3                   	ret
40a180:	55                   	push   %ebp
40a181:	8b ec                	mov    %esp,%ebp
40a183:	8b 45 08             	mov    0x8(%ebp),%eax
40a186:	85 c0                	test   %eax,%eax
40a188:	74 0e                	je     0x40a198
40a18a:	3d 70 45 43 00       	cmp    $0x434570,%eax
40a18f:	74 07                	je     0x40a198
40a191:	50                   	push   %eax
40a192:	e8 7c 2a 00 00       	call   0x40cc13
40a197:	59                   	pop    %ecx
40a198:	5d                   	pop    %ebp
40a199:	c2 04 00             	ret    $0x4
40a19c:	e8 09 00 00 00       	call   0x40a1aa
40a1a1:	85 c0                	test   %eax,%eax
40a1a3:	0f 84 65 4c 00 00    	je     0x40ee0e
40a1a9:	c3                   	ret
40a1aa:	83 3d 40 30 43 00 ff 	cmpl   $0xffffffff,0x433040
40a1b1:	75 03                	jne    0x40a1b6
40a1b3:	33 c0                	xor    %eax,%eax
40a1b5:	c3                   	ret
40a1b6:	53                   	push   %ebx
40a1b7:	57                   	push   %edi
40a1b8:	ff 15 98 40 42 00    	call   *0x424098
40a1be:	ff 35 40 30 43 00    	push   0x433040
40a1c4:	8b f8                	mov    %eax,%edi
40a1c6:	e8 d0 11 00 00       	call   0x40b39b
40a1cb:	8b d8                	mov    %eax,%ebx
40a1cd:	59                   	pop    %ecx
40a1ce:	83 fb ff             	cmp    $0xffffffff,%ebx
40a1d1:	74 17                	je     0x40a1ea
40a1d3:	85 db                	test   %ebx,%ebx
40a1d5:	75 59                	jne    0x40a230
40a1d7:	6a ff                	push   $0xffffffff
40a1d9:	ff 35 40 30 43 00    	push   0x433040
40a1df:	e8 f2 11 00 00       	call   0x40b3d6
40a1e4:	59                   	pop    %ecx
40a1e5:	59                   	pop    %ecx
40a1e6:	85 c0                	test   %eax,%eax
40a1e8:	75 04                	jne    0x40a1ee
40a1ea:	33 db                	xor    %ebx,%ebx
40a1ec:	eb 42                	jmp    0x40a230
40a1ee:	56                   	push   %esi
40a1ef:	6a 28                	push   $0x28
40a1f1:	6a 01                	push   $0x1
40a1f3:	e8 19 14 00 00       	call   0x40b611
40a1f8:	8b f0                	mov    %eax,%esi
40a1fa:	59                   	pop    %ecx
40a1fb:	59                   	pop    %ecx
40a1fc:	85 f6                	test   %esi,%esi
40a1fe:	74 12                	je     0x40a212
40a200:	56                   	push   %esi
40a201:	ff 35 40 30 43 00    	push   0x433040
40a207:	e8 ca 11 00 00       	call   0x40b3d6
40a20c:	59                   	pop    %ecx
40a20d:	59                   	pop    %ecx
40a20e:	85 c0                	test   %eax,%eax
40a210:	75 12                	jne    0x40a224
40a212:	33 db                	xor    %ebx,%ebx
40a214:	53                   	push   %ebx
40a215:	ff 35 40 30 43 00    	push   0x433040
40a21b:	e8 b6 11 00 00       	call   0x40b3d6
40a220:	59                   	pop    %ecx
40a221:	59                   	pop    %ecx
40a222:	eb 04                	jmp    0x40a228
40a224:	8b de                	mov    %esi,%ebx
40a226:	33 f6                	xor    %esi,%esi
40a228:	56                   	push   %esi
40a229:	e8 e5 29 00 00       	call   0x40cc13
40a22e:	59                   	pop    %ecx
40a22f:	5e                   	pop    %esi
40a230:	57                   	push   %edi
40a231:	ff 15 9c 40 42 00    	call   *0x42409c
40a237:	5f                   	pop    %edi
40a238:	8b c3                	mov    %ebx,%eax
40a23a:	5b                   	pop    %ebx
40a23b:	c3                   	ret
40a23c:	83 3d 40 30 43 00 ff 	cmpl   $0xffffffff,0x433040
40a243:	75 03                	jne    0x40a248
40a245:	33 c0                	xor    %eax,%eax
40a247:	c3                   	ret
40a248:	56                   	push   %esi
40a249:	57                   	push   %edi
40a24a:	ff 15 98 40 42 00    	call   *0x424098
40a250:	ff 35 40 30 43 00    	push   0x433040
40a256:	8b f0                	mov    %eax,%esi
40a258:	e8 3e 11 00 00       	call   0x40b39b
40a25d:	59                   	pop    %ecx
40a25e:	56                   	push   %esi
40a25f:	8b f8                	mov    %eax,%edi
40a261:	ff 15 9c 40 42 00    	call   *0x42409c
40a267:	8d 47 01             	lea    0x1(%edi),%eax
40a26a:	f7 d8                	neg    %eax
40a26c:	1b c0                	sbb    %eax,%eax
40a26e:	23 c7                	and    %edi,%eax
40a270:	5f                   	pop    %edi
40a271:	5e                   	pop    %esi
40a272:	c3                   	ret
40a273:	68 80 a1 40 00       	push   $0x40a180
40a278:	e8 a8 10 00 00       	call   0x40b325
40a27d:	a3 40 30 43 00       	mov    %eax,0x433040
40a282:	59                   	pop    %ecx
40a283:	83 f8 ff             	cmp    $0xffffffff,%eax
40a286:	75 03                	jne    0x40a28b
40a288:	32 c0                	xor    %al,%al
40a28a:	c3                   	ret
40a28b:	68 70 45 43 00       	push   $0x434570
40a290:	50                   	push   %eax
40a291:	e8 40 11 00 00       	call   0x40b3d6
40a296:	59                   	pop    %ecx
40a297:	59                   	pop    %ecx
40a298:	85 c0                	test   %eax,%eax
40a29a:	75 07                	jne    0x40a2a3
40a29c:	e8 05 00 00 00       	call   0x40a2a6
40a2a1:	eb e5                	jmp    0x40a288
40a2a3:	b0 01                	mov    $0x1,%al
40a2a5:	c3                   	ret
40a2a6:	a1 40 30 43 00       	mov    0x433040,%eax
40a2ab:	83 f8 ff             	cmp    $0xffffffff,%eax
40a2ae:	74 0e                	je     0x40a2be
40a2b0:	50                   	push   %eax
40a2b1:	e8 aa 10 00 00       	call   0x40b360
40a2b6:	83 0d 40 30 43 00 ff 	orl    $0xffffffff,0x433040
40a2bd:	59                   	pop    %ecx
40a2be:	b0 01                	mov    $0x1,%al
40a2c0:	c3                   	ret
40a2c1:	6a 10                	push   $0x10
40a2c3:	68 20 14 43 00       	push   $0x431420
40a2c8:	e8 f3 dc ff ff       	call   0x407fc0
40a2cd:	33 db                	xor    %ebx,%ebx
40a2cf:	8b 45 10             	mov    0x10(%ebp),%eax
40a2d2:	8b 48 04             	mov    0x4(%eax),%ecx
40a2d5:	85 c9                	test   %ecx,%ecx
40a2d7:	0f 84 0a 01 00 00    	je     0x40a3e7
40a2dd:	38 59 08             	cmp    %bl,0x8(%ecx)
40a2e0:	0f 84 01 01 00 00    	je     0x40a3e7
40a2e6:	8b 50 08             	mov    0x8(%eax),%edx
40a2e9:	85 d2                	test   %edx,%edx
40a2eb:	75 08                	jne    0x40a2f5
40a2ed:	39 18                	cmp    %ebx,(%eax)
40a2ef:	0f 8d f2 00 00 00    	jge    0x40a3e7
40a2f5:	8b 08                	mov    (%eax),%ecx
40a2f7:	8b 75 0c             	mov    0xc(%ebp),%esi
40a2fa:	85 c9                	test   %ecx,%ecx
40a2fc:	78 05                	js     0x40a303
40a2fe:	83 c6 0c             	add    $0xc,%esi
40a301:	03 f2                	add    %edx,%esi
40a303:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a306:	8b 7d 14             	mov    0x14(%ebp),%edi
40a309:	84 c9                	test   %cl,%cl
40a30b:	79 20                	jns    0x40a32d
40a30d:	f6 07 10             	testb  $0x10,(%edi)
40a310:	74 1b                	je     0x40a32d
40a312:	a1 6c 45 43 00       	mov    0x43456c,%eax
40a317:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a31a:	85 c0                	test   %eax,%eax
40a31c:	74 0f                	je     0x40a32d
40a31e:	8b c8                	mov    %eax,%ecx
40a320:	ff 15 54 41 42 00    	call   *0x424154
40a326:	ff 55 e4             	call   *-0x1c(%ebp)
40a329:	8b c8                	mov    %eax,%ecx
40a32b:	eb 0b                	jmp    0x40a338
40a32d:	8b 45 08             	mov    0x8(%ebp),%eax
40a330:	f6 c1 08             	test   $0x8,%cl
40a333:	74 1c                	je     0x40a351
40a335:	8b 48 18             	mov    0x18(%eax),%ecx
40a338:	85 c9                	test   %ecx,%ecx
40a33a:	0f 84 b9 00 00 00    	je     0x40a3f9
40a340:	85 f6                	test   %esi,%esi
40a342:	0f 84 b1 00 00 00    	je     0x40a3f9
40a348:	89 0e                	mov    %ecx,(%esi)
40a34a:	8d 47 08             	lea    0x8(%edi),%eax
40a34d:	50                   	push   %eax
40a34e:	51                   	push   %ecx
40a34f:	eb 37                	jmp    0x40a388
40a351:	f6 07 01             	testb  $0x1,(%edi)
40a354:	74 3d                	je     0x40a393
40a356:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40a35a:	0f 84 99 00 00 00    	je     0x40a3f9
40a360:	85 f6                	test   %esi,%esi
40a362:	0f 84 91 00 00 00    	je     0x40a3f9
40a368:	ff 77 14             	push   0x14(%edi)
40a36b:	ff 70 18             	push   0x18(%eax)
40a36e:	56                   	push   %esi
40a36f:	e8 fc e5 ff ff       	call   0x408970
40a374:	83 c4 0c             	add    $0xc,%esp
40a377:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
40a37b:	75 56                	jne    0x40a3d3
40a37d:	83 3e 00             	cmpl   $0x0,(%esi)
40a380:	74 51                	je     0x40a3d3
40a382:	8d 47 08             	lea    0x8(%edi),%eax
40a385:	50                   	push   %eax
40a386:	ff 36                	push   (%esi)
40a388:	e8 db e4 ff ff       	call   0x408868
40a38d:	59                   	pop    %ecx
40a38e:	59                   	pop    %ecx
40a38f:	89 06                	mov    %eax,(%esi)
40a391:	eb 40                	jmp    0x40a3d3
40a393:	8b 48 18             	mov    0x18(%eax),%ecx
40a396:	39 5f 18             	cmp    %ebx,0x18(%edi)
40a399:	75 23                	jne    0x40a3be
40a39b:	85 c9                	test   %ecx,%ecx
40a39d:	74 5a                	je     0x40a3f9
40a39f:	85 f6                	test   %esi,%esi
40a3a1:	74 56                	je     0x40a3f9
40a3a3:	ff 77 14             	push   0x14(%edi)
40a3a6:	8d 47 08             	lea    0x8(%edi),%eax
40a3a9:	50                   	push   %eax
40a3aa:	51                   	push   %ecx
40a3ab:	e8 b8 e4 ff ff       	call   0x408868
40a3b0:	59                   	pop    %ecx
40a3b1:	59                   	pop    %ecx
40a3b2:	50                   	push   %eax
40a3b3:	56                   	push   %esi
40a3b4:	e8 b7 e5 ff ff       	call   0x408970
40a3b9:	83 c4 0c             	add    $0xc,%esp
40a3bc:	eb 15                	jmp    0x40a3d3
40a3be:	85 c9                	test   %ecx,%ecx
40a3c0:	74 37                	je     0x40a3f9
40a3c2:	85 f6                	test   %esi,%esi
40a3c4:	74 33                	je     0x40a3f9
40a3c6:	f6 07 04             	testb  $0x4,(%edi)
40a3c9:	6a 00                	push   $0x0
40a3cb:	5b                   	pop    %ebx
40a3cc:	0f 95 c3             	setne  %bl
40a3cf:	43                   	inc    %ebx
40a3d0:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a3d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a3da:	8b c3                	mov    %ebx,%eax
40a3dc:	eb 0b                	jmp    0x40a3e9
40a3de:	33 c0                	xor    %eax,%eax
40a3e0:	40                   	inc    %eax
40a3e1:	c3                   	ret
40a3e2:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a3e5:	eb 12                	jmp    0x40a3f9
40a3e7:	33 c0                	xor    %eax,%eax
40a3e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a3ec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a3f3:	59                   	pop    %ecx
40a3f4:	5f                   	pop    %edi
40a3f5:	5e                   	pop    %esi
40a3f6:	5b                   	pop    %ebx
40a3f7:	c9                   	leave
40a3f8:	c3                   	ret
40a3f9:	e8 10 4a 00 00       	call   0x40ee0e
40a3fe:	cc                   	int3
40a3ff:	6a 08                	push   $0x8
40a401:	68 40 14 43 00       	push   $0x431440
40a406:	e8 b5 db ff ff       	call   0x407fc0
40a40b:	8b 55 10             	mov    0x10(%ebp),%edx
40a40e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a411:	83 3a 00             	cmpl   $0x0,(%edx)
40a414:	7d 04                	jge    0x40a41a
40a416:	8b f9                	mov    %ecx,%edi
40a418:	eb 06                	jmp    0x40a420
40a41a:	8d 79 0c             	lea    0xc(%ecx),%edi
40a41d:	03 7a 08             	add    0x8(%edx),%edi
40a420:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a424:	8b 75 14             	mov    0x14(%ebp),%esi
40a427:	56                   	push   %esi
40a428:	52                   	push   %edx
40a429:	51                   	push   %ecx
40a42a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a42d:	53                   	push   %ebx
40a42e:	e8 8e fe ff ff       	call   0x40a2c1
40a433:	83 c4 10             	add    $0x10,%esp
40a436:	83 e8 01             	sub    $0x1,%eax
40a439:	74 21                	je     0x40a45c
40a43b:	83 e8 01             	sub    $0x1,%eax
40a43e:	75 34                	jne    0x40a474
40a440:	8d 46 08             	lea    0x8(%esi),%eax
40a443:	50                   	push   %eax
40a444:	ff 73 18             	push   0x18(%ebx)
40a447:	e8 1c e4 ff ff       	call   0x408868
40a44c:	59                   	pop    %ecx
40a44d:	59                   	pop    %ecx
40a44e:	6a 01                	push   $0x1
40a450:	50                   	push   %eax
40a451:	ff 76 18             	push   0x18(%esi)
40a454:	57                   	push   %edi
40a455:	e8 77 0b 00 00       	call   0x40afd1
40a45a:	eb 18                	jmp    0x40a474
40a45c:	8d 46 08             	lea    0x8(%esi),%eax
40a45f:	50                   	push   %eax
40a460:	ff 73 18             	push   0x18(%ebx)
40a463:	e8 00 e4 ff ff       	call   0x408868
40a468:	59                   	pop    %ecx
40a469:	59                   	pop    %ecx
40a46a:	50                   	push   %eax
40a46b:	ff 76 18             	push   0x18(%esi)
40a46e:	57                   	push   %edi
40a46f:	e8 4d 0b 00 00       	call   0x40afc1
40a474:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a47b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a47e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a485:	59                   	pop    %ecx
40a486:	5f                   	pop    %edi
40a487:	5e                   	pop    %esi
40a488:	5b                   	pop    %ebx
40a489:	c9                   	leave
40a48a:	c3                   	ret
40a48b:	33 c0                	xor    %eax,%eax
40a48d:	40                   	inc    %eax
40a48e:	c3                   	ret
40a48f:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a492:	e8 77 49 00 00       	call   0x40ee0e