40a02d:	50                   	push   %eax
40a02e:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a031:	50                   	push   %eax
40a032:	51                   	push   %ecx
40a033:	8b cb                	mov    %ebx,%ecx
40a035:	e8 2b e0 ff ff       	call   0x408065
40a03a:	85 c0                	test   %eax,%eax
40a03c:	74 0a                	je     0x40a048
40a03e:	68 50 2e 40 00       	push   $0x402e50
40a043:	e9 fa 01 00 00       	jmp    0x40a242
40a048:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40a04b:	8b 41 0c             	mov    0xc(%ecx),%eax
40a04e:	85 c0                	test   %eax,%eax
40a050:	74 1a                	je     0x40a06c
40a052:	83 f8 05             	cmp    $0x5,%eax
40a055:	74 0a                	je     0x40a061
40a057:	68 50 2e 40 00       	push   $0x402e50
40a05c:	e9 97 f3 ff ff       	jmp    0x4093f8
40a061:	85 c0                	test   %eax,%eax
40a063:	74 07                	je     0x40a06c
40a065:	8b 19                	mov    (%ecx),%ebx
40a067:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40a06a:	eb 03                	jmp    0x40a06f
40a06c:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40a06f:	8d 45 b8             	lea    -0x48(%ebp),%eax
40a072:	50                   	push   %eax
40a073:	53                   	push   %ebx
40a074:	ff 15 24 20 41 00    	call   *0x412024
40a07a:	85 c0                	test   %eax,%eax
40a07c:	75 10                	jne    0x40a08e
40a07e:	ff 15 70 20 41 00    	call   *0x412070
40a084:	68 6c 2e 40 00       	push   $0x402e6c
40a089:	e9 b4 01 00 00       	jmp    0x40a242
40a08e:	8b 4e 10             	mov    0x10(%esi),%ecx
40a091:	ba 24 3b 40 00       	mov    $0x403b24,%edx
40a096:	e8 79 d2 ff ff       	call   0x407314
40a09b:	33 c0                	xor    %eax,%eax
40a09d:	8b f8                	mov    %eax,%edi
40a09f:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40a0a2:	0f 86 55 01 00 00    	jbe    0x40a1fd
40a0a8:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a0ab:	50                   	push   %eax
40a0ac:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a0af:	50                   	push   %eax
40a0b0:	51                   	push   %ecx
40a0b1:	57                   	push   %edi
40a0b2:	6a 03                	push   $0x3
40a0b4:	5a                   	pop    %edx
40a0b5:	8b cb                	mov    %ebx,%ecx
40a0b7:	e8 3f e0 ff ff       	call   0x4080fb
40a0bc:	85 c0                	test   %eax,%eax
40a0be:	0f 85 32 01 00 00    	jne    0x40a1f6
40a0c4:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40a0c7:	8b 41 0c             	mov    0xc(%ecx),%eax
40a0ca:	85 c0                	test   %eax,%eax
40a0cc:	74 18                	je     0x40a0e6
40a0ce:	83 f8 01             	cmp    $0x1,%eax
40a0d1:	0f 85 f3 00 00 00    	jne    0x40a1ca
40a0d7:	85 c0                	test   %eax,%eax
40a0d9:	74 0b                	je     0x40a0e6
40a0db:	33 c0                	xor    %eax,%eax
40a0dd:	39 01                	cmp    %eax,(%ecx)
40a0df:	b8 8c 24 40 00       	mov    $0x40248c,%eax
40a0e4:	74 05                	je     0x40a0eb
40a0e6:	b8 80 24 40 00       	mov    $0x402480,%eax
40a0eb:	50                   	push   %eax
40a0ec:	68 48 3b 40 00       	push   $0x403b48
40a0f1:	56                   	push   %esi
40a0f2:	e8 51 e2 ff ff       	call   0x408348
40a0f7:	83 c4 0c             	add    $0xc,%esp
40a0fa:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a0fd:	50                   	push   %eax
40a0fe:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a101:	50                   	push   %eax
40a102:	51                   	push   %ecx
40a103:	57                   	push   %edi
40a104:	6a 02                	push   $0x2
40a106:	5a                   	pop    %edx
40a107:	8b cb                	mov    %ebx,%ecx
40a109:	e8 ed df ff ff       	call   0x4080fb
40a10e:	85 c0                	test   %eax,%eax
40a110:	0f 85 d9 00 00 00    	jne    0x40a1ef
40a116:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a119:	8b 40 0c             	mov    0xc(%eax),%eax
40a11c:	85 c0                	test   %eax,%eax
40a11e:	74 33                	je     0x40a153
40a120:	83 f8 04             	cmp    $0x4,%eax
40a123:	0f 85 ab 00 00 00    	jne    0x40a1d4
40a129:	85 c0                	test   %eax,%eax
40a12b:	74 26                	je     0x40a153
40a12d:	8b 4e 10             	mov    0x10(%esi),%ecx
40a130:	ba 88 3b 40 00       	mov    $0x403b88,%edx
40a135:	e8 da d1 ff ff       	call   0x407314
40a13a:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a13d:	8b ce                	mov    %esi,%ecx
40a13f:	ff 30                	push   (%eax)
40a141:	e8 4d e3 ff ff       	call   0x408493
40a146:	8b 4e 10             	mov    0x10(%esi),%ecx
40a149:	ba a4 3b 40 00       	mov    $0x403ba4,%edx
40a14e:	e8 c1 d1 ff ff       	call   0x407314
40a153:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a156:	50                   	push   %eax
40a157:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a15a:	50                   	push   %eax
40a15b:	51                   	push   %ecx
40a15c:	57                   	push   %edi
40a15d:	6a 04                	push   $0x4
40a15f:	5a                   	pop    %edx
40a160:	8b cb                	mov    %ebx,%ecx
40a162:	e8 94 df ff ff       	call   0x4080fb
40a167:	85 c0                	test   %eax,%eax
40a169:	75 7d                	jne    0x40a1e8
40a16b:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40a16e:	8b 43 0c             	mov    0xc(%ebx),%eax
40a171:	85 c0                	test   %eax,%eax
40a173:	74 05                	je     0x40a17a
40a175:	83 f8 04             	cmp    $0x4,%eax
40a178:	75 64                	jne    0x40a1de
40a17a:	83 f8 04             	cmp    $0x4,%eax
40a17d:	75 30                	jne    0x40a1af
40a17f:	8b 03                	mov    (%ebx),%eax
40a181:	85 c0                	test   %eax,%eax
40a183:	74 2a                	je     0x40a1af
40a185:	33 c9                	xor    %ecx,%ecx
40a187:	66 39 08             	cmp    %cx,(%eax)
40a18a:	74 23                	je     0x40a1af
40a18c:	8b 4e 10             	mov    0x10(%esi),%ecx
40a18f:	ba c0 3b 40 00       	mov    $0x403bc0,%edx
40a194:	e8 7b d1 ff ff       	call   0x407314
40a199:	ff 33                	push   (%ebx)
40a19b:	8b ce                	mov    %esi,%ecx
40a19d:	e8 f1 e2 ff ff       	call   0x408493
40a1a2:	8b 4e 10             	mov    0x10(%esi),%ecx
40a1a5:	ba dc 3b 40 00       	mov    $0x403bdc,%edx
40a1aa:	e8 65 d1 ff ff       	call   0x407314
40a1af:	8b 4e 10             	mov    0x10(%esi),%ecx
40a1b2:	ba f8 3b 40 00       	mov    $0x403bf8,%edx
40a1b7:	e8 58 d1 ff ff       	call   0x407314
40a1bc:	47                   	inc    %edi
40a1bd:	3b 7d b8             	cmp    -0x48(%ebp),%edi
40a1c0:	73 3b                	jae    0x40a1fd
40a1c2:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40a1c5:	e9 de fe ff ff       	jmp    0x40a0a8
40a1ca:	68 08 2f 40 00       	push   $0x402f08
40a1cf:	e9 24 f2 ff ff       	jmp    0x4093f8
40a1d4:	68 c0 2e 40 00       	push   $0x402ec0
40a1d9:	e9 1a f2 ff ff       	jmp    0x4093f8
40a1de:	68 50 2f 40 00       	push   $0x402f50
40a1e3:	e9 10 f2 ff ff       	jmp    0x4093f8
40a1e8:	68 50 2f 40 00       	push   $0x402f50
40a1ed:	eb 53                	jmp    0x40a242
40a1ef:	68 c0 2e 40 00       	push   $0x402ec0
40a1f4:	eb 4c                	jmp    0x40a242
40a1f6:	68 08 2f 40 00       	push   $0x402f08
40a1fb:	eb 45                	jmp    0x40a242
40a1fd:	8b 4e 10             	mov    0x10(%esi),%ecx
40a200:	ba 20 3c 40 00       	mov    $0x403c20,%edx
40a205:	e8 0a d1 ff ff       	call   0x407314
40a20a:	8b 4e 10             	mov    0x10(%esi),%ecx
40a20d:	ba 48 3c 40 00       	mov    $0x403c48,%edx
40a212:	e8 fd d0 ff ff       	call   0x407314
40a217:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40a21a:	e8 f8 bc ff ff       	call   0x405f17
40a21f:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40a222:	e8 3c bc ff ff       	call   0x405e63
40a227:	e8 04 44 00 00       	call   0x40e630
40a22c:	c3                   	ret
40a22d:	ff 15 70 20 41 00    	call   *0x412070
40a233:	6a 08                	push   $0x8
40a235:	5a                   	pop    %edx
40a236:	8b c8                	mov    %eax,%ecx
40a238:	e8 a6 d3 ff ff       	call   0x4075e3
40a23d:	68 f8 26 40 00       	push   $0x4026f8
40a242:	6a 0e                	push   $0xe
40a244:	50                   	push   %eax
40a245:	e8 cb d3 ff ff       	call   0x407615
40a24a:	cc                   	int3
40a24b:	cc                   	int3
40a24c:	cc                   	int3
40a24d:	cc                   	int3
40a24e:	cc                   	int3
40a24f:	cc                   	int3
40a250:	6a 2c                	push   $0x2c
40a252:	e8 e5 c2 ff ff       	call   0x40653c
40a257:	c3                   	ret
40a258:	cc                   	int3
40a259:	cc                   	int3
40a25a:	cc                   	int3
40a25b:	cc                   	int3
40a25c:	cc                   	int3
40a25d:	cc                   	int3
40a25e:	cc                   	int3
40a25f:	cc                   	int3
40a260:	8b ff                	mov    %edi,%edi
40a262:	56                   	push   %esi
40a263:	8b f1                	mov    %ecx,%esi
40a265:	68 ff ff ff 7f       	push   $0x7fffffff
40a26a:	6a 02                	push   $0x2
40a26c:	8b 4e 08             	mov    0x8(%esi),%ecx
40a26f:	e8 4d c9 ff ff       	call   0x406bc1
40a274:	8b 4e 08             	mov    0x8(%esi),%ecx
40a277:	6a 00                	push   $0x0
40a279:	e8 12 c8 ff ff       	call   0x406a90
40a27e:	8b 4e 08             	mov    0x8(%esi),%ecx
40a281:	6a 01                	push   $0x1
40a283:	e8 c8 c7 ff ff       	call   0x406a50
40a288:	50                   	push   %eax
40a289:	8d 4e 18             	lea    0x18(%esi),%ecx
40a28c:	e8 10 c2 ff ff       	call   0x4064a1
40a291:	5e                   	pop    %esi
40a292:	c3                   	ret
40a293:	6a 4c                	push   $0x4c
40a295:	b8 c4 f0 40 00       	mov    $0x40f0c4,%eax
40a29a:	e8 e2 43 00 00       	call   0x40e681
40a29f:	8b d9                	mov    %ecx,%ebx
40a2a1:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a2a4:	33 c9                	xor    %ecx,%ecx
40a2a6:	8b 45 08             	mov    0x8(%ebp),%eax
40a2a9:	89 7d cc             	mov    %edi,-0x34(%ebp)
40a2ac:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a2af:	89 4d ac             	mov    %ecx,-0x54(%ebp)
40a2b2:	89 4d b0             	mov    %ecx,-0x50(%ebp)
40a2b5:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40a2b8:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40a2bb:	8d 73 18             	lea    0x18(%ebx),%esi
40a2be:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a2c1:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a2c5:	72 04                	jb     0x40a2cb
40a2c7:	8b 0e                	mov    (%esi),%ecx
40a2c9:	eb 02                	jmp    0x40a2cd
40a2cb:	8b ce                	mov    %esi,%ecx
40a2cd:	8d 55 d0             	lea    -0x30(%ebp),%edx
40a2d0:	52                   	push   %edx
40a2d1:	8d 55 b0             	lea    -0x50(%ebp),%edx
40a2d4:	52                   	push   %edx
40a2d5:	51                   	push   %ecx
40a2d6:	50                   	push   %eax
40a2d7:	33 d2                	xor    %edx,%edx
40a2d9:	e8 b9 de ff ff       	call   0x408197
40a2de:	85 c0                	test   %eax,%eax
40a2e0:	0f 85 ea 03 00 00    	jne    0x40a6d0
40a2e6:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a2e9:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
40a2ed:	0f 85 d3 03 00 00    	jne    0x40a6c6
40a2f3:	8b 00                	mov    (%eax),%eax
40a2f5:	83 e8 01             	sub    $0x1,%eax
40a2f8:	74 28                	je     0x40a322
40a2fa:	83 e8 01             	sub    $0x1,%eax
40a2fd:	74 1c                	je     0x40a31b
40a2ff:	83 e8 01             	sub    $0x1,%eax
40a302:	74 10                	je     0x40a314
40a304:	83 e8 01             	sub    $0x1,%eax
40a307:	0f 85 b9 03 00 00    	jne    0x40a6c6
40a30d:	b8 38 3d 40 00       	mov    $0x403d38,%eax
40a312:	eb 13                	jmp    0x40a327
40a314:	b8 00 3d 40 00       	mov    $0x403d00,%eax
40a319:	eb 0c                	jmp    0x40a327
40a31b:	b8 cc 3c 40 00       	mov    $0x403ccc,%eax
40a320:	eb 05                	jmp    0x40a327
40a322:	b8 94 3c 40 00       	mov    $0x403c94,%eax
40a327:	57                   	push   %edi
40a328:	50                   	push   %eax
40a329:	53                   	push   %ebx
40a32a:	e8 19 e0 ff ff       	call   0x408348
40a32f:	83 c4 0c             	add    $0xc,%esp
40a332:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a336:	72 04                	jb     0x40a33c
40a338:	8b 0e                	mov    (%esi),%ecx
40a33a:	eb 02                	jmp    0x40a33e
40a33c:	8b ce                	mov    %esi,%ecx
40a33e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a341:	33 d2                	xor    %edx,%edx
40a343:	50                   	push   %eax
40a344:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a347:	42                   	inc    %edx
40a348:	50                   	push   %eax
40a349:	51                   	push   %ecx
40a34a:	ff 75 c8             	push   -0x38(%ebp)
40a34d:	e8 45 de ff ff       	call   0x408197
40a352:	85 c0                	test   %eax,%eax
40a354:	74 0a                	je     0x40a360
40a356:	68 6c 3d 40 00       	push   $0x403d6c
40a35b:	e9 75 03 00 00       	jmp    0x40a6d5
40a360:	8b 7d d0             	mov    -0x30(%ebp),%edi
40a363:	83 7f 0c 02          	cmpl   $0x2,0xc(%edi)
40a367:	74 0e                	je     0x40a377
40a369:	68 6c 3d 40 00       	push   $0x403d6c
40a36e:	6a 0e                	push   $0xe
40a370:	6a 0d                	push   $0xd
40a372:	e9 61 03 00 00       	jmp    0x40a6d8
40a377:	ff 37                	push   (%edi)
40a379:	ff 75 cc             	push   -0x34(%ebp)
40a37c:	68 9c 3d 40 00       	push   $0x403d9c
40a381:	53                   	push   %ebx
40a382:	e8 c1 df ff ff       	call   0x408348
40a387:	8b 07                	mov    (%edi),%eax
40a389:	83 c4 10             	add    $0x10,%esp
40a38c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a390:	89 45 a8             	mov    %eax,-0x58(%ebp)
40a393:	72 04                	jb     0x40a399
40a395:	8b 0e                	mov    (%esi),%ecx
40a397:	eb 02                	jmp    0x40a39b
40a399:	8b ce                	mov    %esi,%ecx
40a39b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a39e:	50                   	push   %eax
40a39f:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a3a2:	50                   	push   %eax
40a3a3:	51                   	push   %ecx
40a3a4:	ff 75 c8             	push   -0x38(%ebp)
40a3a7:	6a 02                	push   $0x2
40a3a9:	5a                   	pop    %edx
40a3aa:	e8 e8 dd ff ff       	call   0x408197
40a3af:	85 c0                	test   %eax,%eax
40a3b1:	74 0a                	je     0x40a3bd
40a3b3:	68 c0 3d 40 00       	push   $0x403dc0
40a3b8:	e9 18 03 00 00       	jmp    0x40a6d5
40a3bd:	8b 7d d0             	mov    -0x30(%ebp),%edi
40a3c0:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
40a3c4:	74 07                	je     0x40a3cd
40a3c6:	68 c0 3d 40 00       	push   $0x403dc0
40a3cb:	eb a1                	jmp    0x40a36e
40a3cd:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40a3d0:	33 d2                	xor    %edx,%edx
40a3d2:	89 55 bc             	mov    %edx,-0x44(%ebp)
40a3d5:	85 c9                	test   %ecx,%ecx
40a3d7:	0f 84 ed 00 00 00    	je     0x40a4ca
40a3dd:	8b 07                	mov    (%edi),%eax
40a3df:	85 c0                	test   %eax,%eax
40a3e1:	74 09                	je     0x40a3ec
40a3e3:	66 39 10             	cmp    %dx,(%eax)
40a3e6:	0f 85 8a 00 00 00    	jne    0x40a476
40a3ec:	8d 55 bc             	lea    -0x44(%ebp),%edx
40a3ef:	e8 52 d4 ff ff       	call   0x407846
40a3f4:	85 c0                	test   %eax,%eax
40a3f6:	74 7e                	je     0x40a476
40a3f8:	8b 7d bc             	mov    -0x44(%ebp),%edi
40a3fb:	33 c0                	xor    %eax,%eax
40a3fd:	88 45 e0             	mov    %al,-0x20(%ebp)
40a400:	a1 a8 20 41 00       	mov    0x4120a8,%eax
40a405:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a408:	89 7d e8             	mov    %edi,-0x18(%ebp)
40a40b:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40a40f:	b8 7c 24 40 00       	mov    $0x40247c,%eax
40a414:	85 ff                	test   %edi,%edi
40a416:	74 02                	je     0x40a41a
40a418:	8b c7                	mov    %edi,%eax
40a41a:	50                   	push   %eax
40a41b:	ff 75 cc             	push   -0x34(%ebp)
40a41e:	68 fc 3d 40 00       	push   $0x403dfc
40a423:	53                   	push   %ebx