409f76:	5f                   	pop    %edi
409f77:	c3                   	ret
409f78:	8b ff                	mov    %edi,%edi
409f7a:	55                   	push   %ebp
409f7b:	8b ec                	mov    %esp,%ebp
409f7d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
409f81:	75 27                	jne    0x409faa
409f83:	56                   	push   %esi
409f84:	be 80 72 41 00       	mov    $0x417280,%esi
409f89:	83 3e 00             	cmpl   $0x0,(%esi)
409f8c:	74 10                	je     0x409f9e
409f8e:	83 3e ff             	cmpl   $0xffffffff,(%esi)
409f91:	74 08                	je     0x409f9b
409f93:	ff 36                	push   (%esi)
409f95:	ff 15 84 f0 40 00    	call   *0x40f084
409f9b:	83 26 00             	andl   $0x0,(%esi)
409f9e:	83 c6 04             	add    $0x4,%esi
409fa1:	81 fe d8 72 41 00    	cmp    $0x4172d8,%esi
409fa7:	75 e0                	jne    0x409f89
409fa9:	5e                   	pop    %esi
409faa:	b0 01                	mov    $0x1,%al
409fac:	5d                   	pop    %ebp
409fad:	c3                   	ret
409fae:	8b ff                	mov    %edi,%edi
409fb0:	55                   	push   %ebp
409fb1:	8b ec                	mov    %esp,%ebp
409fb3:	56                   	push   %esi
409fb4:	8b 75 0c             	mov    0xc(%ebp),%esi
409fb7:	85 f6                	test   %esi,%esi
409fb9:	74 1b                	je     0x409fd6
409fbb:	6a e0                	push   $0xffffffe0
409fbd:	33 d2                	xor    %edx,%edx
409fbf:	58                   	pop    %eax
409fc0:	f7 f6                	div    %esi
409fc2:	3b 45 10             	cmp    0x10(%ebp),%eax
409fc5:	73 0f                	jae    0x409fd6
409fc7:	e8 84 d9 ff ff       	call   0x407950
409fcc:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
409fd2:	33 c0                	xor    %eax,%eax
409fd4:	eb 42                	jmp    0x40a018
409fd6:	53                   	push   %ebx
409fd7:	8b 5d 08             	mov    0x8(%ebp),%ebx
409fda:	57                   	push   %edi
409fdb:	85 db                	test   %ebx,%ebx
409fdd:	74 0b                	je     0x409fea
409fdf:	53                   	push   %ebx
409fe0:	e8 e1 17 00 00       	call   0x40b7c6
409fe5:	59                   	pop    %ecx
409fe6:	8b f8                	mov    %eax,%edi
409fe8:	eb 02                	jmp    0x409fec
409fea:	33 ff                	xor    %edi,%edi
409fec:	0f af 75 10          	imul   0x10(%ebp),%esi
409ff0:	56                   	push   %esi
409ff1:	53                   	push   %ebx
409ff2:	e8 02 18 00 00       	call   0x40b7f9
409ff7:	8b d8                	mov    %eax,%ebx
409ff9:	59                   	pop    %ecx
409ffa:	59                   	pop    %ecx
409ffb:	85 db                	test   %ebx,%ebx
409ffd:	74 15                	je     0x40a014
409fff:	3b fe                	cmp    %esi,%edi
40a001:	73 11                	jae    0x40a014
40a003:	2b f7                	sub    %edi,%esi
40a005:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40a008:	56                   	push   %esi
40a009:	6a 00                	push   $0x0
40a00b:	50                   	push   %eax
40a00c:	e8 cf 9f ff ff       	call   0x403fe0
40a011:	83 c4 0c             	add    $0xc,%esp
40a014:	5f                   	pop    %edi
40a015:	8b c3                	mov    %ebx,%eax
40a017:	5b                   	pop    %ebx
40a018:	5e                   	pop    %esi
40a019:	5d                   	pop    %ebp
40a01a:	c3                   	ret
40a01b:	ff 15 e8 f0 40 00    	call   *0x40f0e8
40a021:	85 c0                	test   %eax,%eax
40a023:	a3 6c 73 41 00       	mov    %eax,0x41736c
40a028:	0f 95 c0             	setne  %al
40a02b:	c3                   	ret
40a02c:	83 25 6c 73 41 00 00 	andl   $0x0,0x41736c
40a033:	b0 01                	mov    $0x1,%al
40a035:	c3                   	ret
40a036:	8b ff                	mov    %edi,%edi
40a038:	55                   	push   %ebp
40a039:	8b ec                	mov    %esp,%ebp
40a03b:	53                   	push   %ebx
40a03c:	56                   	push   %esi
40a03d:	57                   	push   %edi
40a03e:	8b 7d 08             	mov    0x8(%ebp),%edi
40a041:	3b 7d 0c             	cmp    0xc(%ebp),%edi
40a044:	74 51                	je     0x40a097
40a046:	8b f7                	mov    %edi,%esi
40a048:	8b 1e                	mov    (%esi),%ebx
40a04a:	85 db                	test   %ebx,%ebx
40a04c:	74 0e                	je     0x40a05c
40a04e:	8b cb                	mov    %ebx,%ecx
40a050:	ff 15 18 f1 40 00    	call   *0x40f118
40a056:	ff d3                	call   *%ebx
40a058:	84 c0                	test   %al,%al
40a05a:	74 08                	je     0x40a064
40a05c:	83 c6 08             	add    $0x8,%esi
40a05f:	3b 75 0c             	cmp    0xc(%ebp),%esi
40a062:	75 e4                	jne    0x40a048
40a064:	3b 75 0c             	cmp    0xc(%ebp),%esi
40a067:	74 2e                	je     0x40a097
40a069:	3b f7                	cmp    %edi,%esi
40a06b:	74 26                	je     0x40a093
40a06d:	83 c6 fc             	add    $0xfffffffc,%esi
40a070:	83 7e fc 00          	cmpl   $0x0,-0x4(%esi)
40a074:	74 13                	je     0x40a089
40a076:	8b 1e                	mov    (%esi),%ebx
40a078:	85 db                	test   %ebx,%ebx
40a07a:	74 0d                	je     0x40a089
40a07c:	6a 00                	push   $0x0
40a07e:	8b cb                	mov    %ebx,%ecx
40a080:	ff 15 18 f1 40 00    	call   *0x40f118
40a086:	ff d3                	call   *%ebx
40a088:	59                   	pop    %ecx
40a089:	83 ee 08             	sub    $0x8,%esi
40a08c:	8d 46 04             	lea    0x4(%esi),%eax
40a08f:	3b c7                	cmp    %edi,%eax
40a091:	75 dd                	jne    0x40a070
40a093:	32 c0                	xor    %al,%al
40a095:	eb 02                	jmp    0x40a099
40a097:	b0 01                	mov    $0x1,%al
40a099:	5f                   	pop    %edi
40a09a:	5e                   	pop    %esi
40a09b:	5b                   	pop    %ebx
40a09c:	5d                   	pop    %ebp
40a09d:	c3                   	ret
40a09e:	8b ff                	mov    %edi,%edi
40a0a0:	55                   	push   %ebp
40a0a1:	8b ec                	mov    %esp,%ebp
40a0a3:	56                   	push   %esi
40a0a4:	8b 75 0c             	mov    0xc(%ebp),%esi
40a0a7:	39 75 08             	cmp    %esi,0x8(%ebp)
40a0aa:	74 1e                	je     0x40a0ca
40a0ac:	57                   	push   %edi
40a0ad:	8b 7e fc             	mov    -0x4(%esi),%edi
40a0b0:	85 ff                	test   %edi,%edi
40a0b2:	74 0d                	je     0x40a0c1
40a0b4:	6a 00                	push   $0x0
40a0b6:	8b cf                	mov    %edi,%ecx
40a0b8:	ff 15 18 f1 40 00    	call   *0x40f118
40a0be:	ff d7                	call   *%edi
40a0c0:	59                   	pop    %ecx
40a0c1:	83 ee 08             	sub    $0x8,%esi
40a0c4:	3b 75 08             	cmp    0x8(%ebp),%esi
40a0c7:	75 e4                	jne    0x40a0ad
40a0c9:	5f                   	pop    %edi
40a0ca:	b0 01                	mov    $0x1,%al
40a0cc:	5e                   	pop    %esi
40a0cd:	5d                   	pop    %ebp
40a0ce:	c3                   	ret
40a0cf:	6a 0c                	push   $0xc
40a0d1:	68 58 4c 41 00       	push   $0x414c58
40a0d6:	e8 35 93 ff ff       	call   0x403410
40a0db:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40a0df:	8b 45 08             	mov    0x8(%ebp),%eax
40a0e2:	ff 30                	push   (%eax)
40a0e4:	e8 e3 d6 ff ff       	call   0x4077cc
40a0e9:	59                   	pop    %ecx
40a0ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a0ee:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
40a0f4:	83 e1 1f             	and    $0x1f,%ecx
40a0f7:	8b 35 78 73 41 00    	mov    0x417378,%esi
40a0fd:	33 35 14 60 41 00    	xor    0x416014,%esi
40a103:	d3 ce                	ror    %cl,%esi
40a105:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40a108:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a10f:	e8 17 00 00 00       	call   0x40a12b
40a114:	8b c6                	mov    %esi,%eax
40a116:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a119:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
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