40a120:	59                   	pop    %ecx
40a121:	5f                   	pop    %edi
40a122:	5e                   	pop    %esi
40a123:	5b                   	pop    %ebx
40a124:	c9                   	leave
40a125:	c2 0c 00             	ret    $0xc
40a128:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40a12b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a12e:	ff 31                	push   (%ecx)
40a130:	e8 df d6 ff ff       	call   0x407814
40a135:	59                   	pop    %ecx
40a136:	c3                   	ret
40a137:	8b ff                	mov    %edi,%edi
40a139:	55                   	push   %ebp
40a13a:	8b ec                	mov    %esp,%ebp
40a13c:	8b 45 08             	mov    0x8(%ebp),%eax
40a13f:	48                   	dec    %eax
40a140:	83 e8 01             	sub    $0x1,%eax
40a143:	74 2d                	je     0x40a172
40a145:	83 e8 04             	sub    $0x4,%eax
40a148:	74 21                	je     0x40a16b
40a14a:	83 e8 09             	sub    $0x9,%eax
40a14d:	74 15                	je     0x40a164
40a14f:	83 e8 06             	sub    $0x6,%eax
40a152:	74 09                	je     0x40a15d
40a154:	83 e8 01             	sub    $0x1,%eax
40a157:	74 12                	je     0x40a16b
40a159:	33 c0                	xor    %eax,%eax
40a15b:	5d                   	pop    %ebp
40a15c:	c3                   	ret
40a15d:	b8 74 73 41 00       	mov    $0x417374,%eax
40a162:	5d                   	pop    %ebp
40a163:	c3                   	ret
40a164:	b8 7c 73 41 00       	mov    $0x41737c,%eax
40a169:	5d                   	pop    %ebp
40a16a:	c3                   	ret
40a16b:	b8 78 73 41 00       	mov    $0x417378,%eax
40a170:	5d                   	pop    %ebp
40a171:	c3                   	ret
40a172:	b8 70 73 41 00       	mov    $0x417370,%eax
40a177:	5d                   	pop    %ebp
40a178:	c3                   	ret
40a179:	8b ff                	mov    %edi,%edi
40a17b:	55                   	push   %ebp
40a17c:	8b ec                	mov    %esp,%ebp
40a17e:	6b 0d 58 fd 40 00 0c 	imul   $0xc,0x40fd58,%ecx
40a185:	8b 45 0c             	mov    0xc(%ebp),%eax
40a188:	03 c8                	add    %eax,%ecx
40a18a:	3b c1                	cmp    %ecx,%eax
40a18c:	74 0f                	je     0x40a19d
40a18e:	8b 55 08             	mov    0x8(%ebp),%edx
40a191:	39 50 04             	cmp    %edx,0x4(%eax)
40a194:	74 09                	je     0x40a19f
40a196:	83 c0 0c             	add    $0xc,%eax
40a199:	3b c1                	cmp    %ecx,%eax
40a19b:	75 f4                	jne    0x40a191
40a19d:	33 c0                	xor    %eax,%eax
40a19f:	5d                   	pop    %ebp
40a1a0:	c3                   	ret
40a1a1:	8b ff                	mov    %edi,%edi
40a1a3:	55                   	push   %ebp
40a1a4:	8b ec                	mov    %esp,%ebp
40a1a6:	83 ec 0c             	sub    $0xc,%esp
40a1a9:	6a 03                	push   $0x3
40a1ab:	58                   	pop    %eax
40a1ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a1af:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40a1b2:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a1b5:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a1b8:	50                   	push   %eax
40a1b9:	8d 45 ff             	lea    -0x1(%ebp),%eax
40a1bc:	50                   	push   %eax
40a1bd:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a1c0:	50                   	push   %eax
40a1c1:	e8 09 ff ff ff       	call   0x40a0cf
40a1c6:	c9                   	leave
40a1c7:	c3                   	ret
40a1c8:	8b ff                	mov    %edi,%edi
40a1ca:	55                   	push   %ebp
40a1cb:	8b ec                	mov    %esp,%ebp
40a1cd:	8b 45 08             	mov    0x8(%ebp),%eax
40a1d0:	a3 70 73 41 00       	mov    %eax,0x417370
40a1d5:	a3 74 73 41 00       	mov    %eax,0x417374
40a1da:	a3 78 73 41 00       	mov    %eax,0x417378
40a1df:	a3 7c 73 41 00       	mov    %eax,0x41737c
40a1e4:	5d                   	pop    %ebp
40a1e5:	c3                   	ret
40a1e6:	6a 28                	push   $0x28
40a1e8:	68 38 4c 41 00       	push   $0x414c38
40a1ed:	e8 1e 92 ff ff       	call   0x403410
40a1f2:	33 ff                	xor    %edi,%edi
40a1f4:	89 7d d8             	mov    %edi,-0x28(%ebp)
40a1f7:	21 7d cc             	and    %edi,-0x34(%ebp)
40a1fa:	b3 01                	mov    $0x1,%bl
40a1fc:	88 5d e7             	mov    %bl,-0x19(%ebp)
40a1ff:	8b 75 08             	mov    0x8(%ebp),%esi
40a202:	83 fe 0b             	cmp    $0xb,%esi
40a205:	7f 57                	jg     0x40a25e
40a207:	74 15                	je     0x40a21e
40a209:	8b c6                	mov    %esi,%eax
40a20b:	6a 02                	push   $0x2
40a20d:	59                   	pop    %ecx
40a20e:	2b c1                	sub    %ecx,%eax
40a210:	74 5d                	je     0x40a26f
40a212:	2b c1                	sub    %ecx,%eax
40a214:	74 08                	je     0x40a21e
40a216:	2b c1                	sub    %ecx,%eax
40a218:	74 55                	je     0x40a26f
40a21a:	2b c1                	sub    %ecx,%eax
40a21c:	75 24                	jne    0x40a242
40a21e:	e8 ce d3 ff ff       	call   0x4075f1
40a223:	8b f8                	mov    %eax,%edi
40a225:	89 7d d8             	mov    %edi,-0x28(%ebp)
40a228:	85 ff                	test   %edi,%edi
40a22a:	75 08                	jne    0x40a234
40a22c:	83 c8 ff             	or     $0xffffffff,%eax
40a22f:	e9 80 01 00 00       	jmp    0x40a3b4
40a234:	ff 37                	push   (%edi)
40a236:	56                   	push   %esi
40a237:	e8 3d ff ff ff       	call   0x40a179
40a23c:	59                   	pop    %ecx
40a23d:	59                   	pop    %ecx
40a23e:	85 c0                	test   %eax,%eax
40a240:	75 12                	jne    0x40a254
40a242:	e8 09 d7 ff ff       	call   0x407950
40a247:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40a24d:	e8 ca ba ff ff       	call   0x405d1c
40a252:	eb d8                	jmp    0x40a22c
40a254:	83 c0 08             	add    $0x8,%eax
40a257:	32 db                	xor    %bl,%bl
40a259:	88 5d e7             	mov    %bl,-0x19(%ebp)
40a25c:	eb 1a                	jmp    0x40a278
40a25e:	8b c6                	mov    %esi,%eax
40a260:	83 e8 0f             	sub    $0xf,%eax
40a263:	74 0a                	je     0x40a26f
40a265:	83 e8 06             	sub    $0x6,%eax
40a268:	74 05                	je     0x40a26f
40a26a:	83 e8 01             	sub    $0x1,%eax
40a26d:	75 d3                	jne    0x40a242
40a26f:	56                   	push   %esi
40a270:	e8 c2 fe ff ff       	call   0x40a137
40a275:	83 c4 04             	add    $0x4,%esp
40a278:	89 45 dc             	mov    %eax,-0x24(%ebp)
40a27b:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
40a27f:	84 db                	test   %bl,%bl
40a281:	74 08                	je     0x40a28b
40a283:	6a 03                	push   $0x3
40a285:	e8 42 d5 ff ff       	call   0x4077cc
40a28a:	59                   	pop    %ecx
40a28b:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
40a28f:	c6 45 e6 00          	movb   $0x0,-0x1a(%ebp)
40a293:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a297:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a29a:	8b 08                	mov    (%eax),%ecx
40a29c:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40a29f:	84 db                	test   %bl,%bl
40a2a1:	74 0c                	je     0x40a2af
40a2a3:	51                   	push   %ecx
40a2a4:	e8 d4 ba ff ff       	call   0x405d7d
40a2a9:	59                   	pop    %ecx
40a2aa:	8b c8                	mov    %eax,%ecx
40a2ac:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40a2af:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40a2b2:	83 f9 01             	cmp    $0x1,%ecx
40a2b5:	0f 94 c7             	sete   %bh
40a2b8:	88 7d e6             	mov    %bh,-0x1a(%ebp)
40a2bb:	84 ff                	test   %bh,%bh
40a2bd:	75 71                	jne    0x40a330
40a2bf:	85 c9                	test   %ecx,%ecx
40a2c1:	0f 84 fd 00 00 00    	je     0x40a3c4
40a2c7:	83 fe 08             	cmp    $0x8,%esi
40a2ca:	74 0a                	je     0x40a2d6
40a2cc:	83 fe 0b             	cmp    $0xb,%esi
40a2cf:	74 05                	je     0x40a2d6
40a2d1:	83 fe 04             	cmp    $0x4,%esi
40a2d4:	75 29                	jne    0x40a2ff
40a2d6:	8b 47 04             	mov    0x4(%edi),%eax
40a2d9:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a2dc:	83 67 04 00          	andl   $0x0,0x4(%edi)
40a2e0:	83 fe 08             	cmp    $0x8,%esi
40a2e3:	75 41                	jne    0x40a326
40a2e5:	e8 b6 d1 ff ff       	call   0x4074a0
40a2ea:	8b 40 08             	mov    0x8(%eax),%eax
40a2ed:	89 45 cc             	mov    %eax,-0x34(%ebp)
40a2f0:	e8 ab d1 ff ff       	call   0x4074a0
40a2f5:	c7 40 08 8c 00 00 00 	movl   $0x8c,0x8(%eax)
40a2fc:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40a2ff:	83 fe 08             	cmp    $0x8,%esi
40a302:	75 22                	jne    0x40a326
40a304:	6b 05 5c fd 40 00 0c 	imul   $0xc,0x40fd5c,%eax
40a30b:	03 07                	add    (%edi),%eax
40a30d:	6b 15 60 fd 40 00 0c 	imul   $0xc,0x40fd60,%edx
40a314:	03 d0                	add    %eax,%edx
40a316:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a319:	3b c2                	cmp    %edx,%eax
40a31b:	74 13                	je     0x40a330
40a31d:	83 60 08 00          	andl   $0x0,0x8(%eax)
40a321:	83 c0 0c             	add    $0xc,%eax
40a324:	eb f0                	jmp    0x40a316
40a326:	a1 14 60 41 00       	mov    0x416014,%eax
40a32b:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a32e:	89 02                	mov    %eax,(%edx)
40a330:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a337:	e8 34 00 00 00       	call   0x40a370
40a33c:	84 ff                	test   %bh,%bh
40a33e:	75 72                	jne    0x40a3b2
40a340:	83 fe 08             	cmp    $0x8,%esi
40a343:	75 3b                	jne    0x40a380
40a345:	e8 56 d1 ff ff       	call   0x4074a0
40a34a:	ff 70 08             	push   0x8(%eax)
40a34d:	56                   	push   %esi
40a34e:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40a351:	8b cb                	mov    %ebx,%ecx
40a353:	ff 15 18 f1 40 00    	call   *0x40f118
40a359:	ff d3                	call   *%ebx
40a35b:	59                   	pop    %ecx
40a35c:	eb 2e                	jmp    0x40a38c
40a35e:	8b 75 08             	mov    0x8(%ebp),%esi
40a361:	8b 7d d8             	mov    -0x28(%ebp),%edi
40a364:	8a 5d e7             	mov    -0x19(%ebp),%bl
40a367:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a36a:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40a36d:	8a 7d e6             	mov    -0x1a(%ebp),%bh
40a370:	84 db                	test   %bl,%bl
40a372:	74 0b                	je     0x40a37f
40a374:	6a 03                	push   $0x3
40a376:	e8 99 d4 ff ff       	call   0x407814
40a37b:	59                   	pop    %ecx
40a37c:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40a37f:	c3                   	ret
40a380:	56                   	push   %esi
40a381:	ff 15 18 f1 40 00    	call   *0x40f118
40a387:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40a38a:	ff d3                	call   *%ebx
40a38c:	59                   	pop    %ecx
40a38d:	83 fe 08             	cmp    $0x8,%esi
40a390:	74 0a                	je     0x40a39c
40a392:	83 fe 0b             	cmp    $0xb,%esi
40a395:	74 05                	je     0x40a39c
40a397:	83 fe 04             	cmp    $0x4,%esi
40a39a:	75 16                	jne    0x40a3b2
40a39c:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a39f:	89 47 04             	mov    %eax,0x4(%edi)
40a3a2:	83 fe 08             	cmp    $0x8,%esi
40a3a5:	75 0b                	jne    0x40a3b2
40a3a7:	e8 f4 d0 ff ff       	call   0x4074a0
40a3ac:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40a3af:	89 48 08             	mov    %ecx,0x8(%eax)
40a3b2:	33 c0                	xor    %eax,%eax
40a3b4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a3b7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a3be:	59                   	pop    %ecx
40a3bf:	5f                   	pop    %edi
40a3c0:	5e                   	pop    %esi
40a3c1:	5b                   	pop    %ebx
40a3c2:	c9                   	leave
40a3c3:	c3                   	ret
40a3c4:	84 db                	test   %bl,%bl
40a3c6:	74 08                	je     0x40a3d0
40a3c8:	6a 03                	push   $0x3
40a3ca:	e8 45 d4 ff ff       	call   0x407814
40a3cf:	59                   	pop    %ecx
40a3d0:	6a 03                	push   $0x3
40a3d2:	e8 e0 c4 ff ff       	call   0x4068b7
40a3d7:	cc                   	int3
40a3d8:	6a 08                	push   $0x8
40a3da:	68 78 4c 41 00       	push   $0x414c78
40a3df:	e8 2c 90 ff ff       	call   0x403410
40a3e4:	8b 45 08             	mov    0x8(%ebp),%eax
40a3e7:	ff 30                	push   (%eax)
40a3e9:	e8 ae 03 00 00       	call   0x40a79c
40a3ee:	59                   	pop    %ecx
40a3ef:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a3f3:	8b 75 0c             	mov    0xc(%ebp),%esi
40a3f6:	ff 76 04             	push   0x4(%esi)
40a3f9:	8b 06                	mov    (%esi),%eax
40a3fb:	ff 30                	push   (%eax)
40a3fd:	e8 5b 01 00 00       	call   0x40a55d
40a402:	59                   	pop    %ecx
40a403:	59                   	pop    %ecx
40a404:	84 c0                	test   %al,%al
40a406:	74 32                	je     0x40a43a
40a408:	8b 46 08             	mov    0x8(%esi),%eax
40a40b:	80 38 00             	cmpb   $0x0,(%eax)
40a40e:	75 0e                	jne    0x40a41e
40a410:	8b 06                	mov    (%esi),%eax
40a412:	8b 00                	mov    (%eax),%eax
40a414:	8b 40 0c             	mov    0xc(%eax),%eax
40a417:	90                   	nop
40a418:	d1 e8                	shr    $1,%eax
40a41a:	a8 01                	test   $0x1,%al
40a41c:	74 1c                	je     0x40a43a
40a41e:	8b 06                	mov    (%esi),%eax
40a420:	ff 30                	push   (%eax)
40a422:	e8 f3 01 00 00       	call   0x40a61a
40a427:	59                   	pop    %ecx
40a428:	83 f8 ff             	cmp    $0xffffffff,%eax
40a42b:	74 07                	je     0x40a434
40a42d:	8b 46 04             	mov    0x4(%esi),%eax
40a430:	ff 00                	incl   (%eax)
40a432:	eb 06                	jmp    0x40a43a
40a434:	8b 46 0c             	mov    0xc(%esi),%eax
40a437:	83 08 ff             	orl    $0xffffffff,(%eax)
40a43a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a441:	e8 12 00 00 00       	call   0x40a458
40a446:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a449:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a450:	59                   	pop    %ecx
40a451:	5f                   	pop    %edi
40a452:	5e                   	pop    %esi
40a453:	5b                   	pop    %ebx
40a454:	c9                   	leave
40a455:	c2 0c 00             	ret    $0xc
40a458:	8b 45 10             	mov    0x10(%ebp),%eax
40a45b:	ff 30                	push   (%eax)
40a45d:	e8 4e 03 00 00       	call   0x40a7b0
40a462:	59                   	pop    %ecx
40a463:	c3                   	ret
40a464:	6a 2c                	push   $0x2c
40a466:	68 98 4c 41 00       	push   $0x414c98
40a46b:	e8 a0 8f ff ff       	call   0x403410
40a470:	8b 45 08             	mov    0x8(%ebp),%eax
40a473:	ff 30                	push   (%eax)
40a475:	e8 52 d3 ff ff       	call   0x4077cc
40a47a:	59                   	pop    %ecx
40a47b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a47f:	8b 35 84 73 41 00    	mov    0x417384,%esi
40a485:	a1 80 73 41 00       	mov    0x417380,%eax
40a48a:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
40a48d:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a490:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40a493:	3b f3                	cmp    %ebx,%esi
40a495:	74 4f                	je     0x40a4e6
40a497:	8b 06                	mov    (%esi),%eax
40a499:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a49c:	ff 37                	push   (%edi)
40a49e:	50                   	push   %eax
40a49f:	e8 b9 00 00 00       	call   0x40a55d
40a4a4:	59                   	pop    %ecx
40a4a5:	59                   	pop    %ecx
40a4a6:	84 c0                	test   %al,%al
40a4a8:	74 37                	je     0x40a4e1
40a4aa:	8b 57 08             	mov    0x8(%edi),%edx
40a4ad:	8b 4f 04             	mov    0x4(%edi),%ecx
40a4b0:	8b 07                	mov    (%edi),%eax
40a4b2:	8d 7d e0             	lea    -0x20(%ebp),%edi
40a4b5:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40a4b8:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a4bb:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40a4be:	89 55 d0             	mov    %edx,-0x30(%ebp)