405f3d:	8b f8                	mov    %eax,%edi
405f3f:	85 ff                	test   %edi,%edi
405f41:	75 09                	jne    0x405f4c
405f43:	e8 34 fd ff ff       	call   0x405c7c
405f48:	33 c0                	xor    %eax,%eax
405f4a:	5f                   	pop    %edi
405f4b:	c3                   	ret
405f4c:	56                   	push   %esi
405f4d:	8b 35 e4 f0 40 00    	mov    0x40f0e4,%esi
405f53:	68 88 f5 40 00       	push   $0x40f588
405f58:	57                   	push   %edi
405f59:	ff d6                	call   *%esi
405f5b:	68 7c f5 40 00       	push   $0x40f57c
405f60:	57                   	push   %edi
405f61:	a3 44 32 41 00       	mov    %eax,0x413244
405f66:	ff d6                	call   *%esi
405f68:	68 70 f5 40 00       	push   $0x40f570
405f6d:	57                   	push   %edi
405f6e:	a3 48 32 41 00       	mov    %eax,0x413248
405f73:	ff d6                	call   *%esi
405f75:	68 68 f5 40 00       	push   $0x40f568
405f7a:	57                   	push   %edi
405f7b:	a3 4c 32 41 00       	mov    %eax,0x41324c
405f80:	ff d6                	call   *%esi
405f82:	83 3d 44 32 41 00 00 	cmpl   $0x0,0x413244
405f89:	8b 35 d0 f0 40 00    	mov    0x40f0d0,%esi
405f8f:	a3 50 32 41 00       	mov    %eax,0x413250
405f94:	74 16                	je     0x405fac
405f96:	83 3d 48 32 41 00 00 	cmpl   $0x0,0x413248
405f9d:	74 0d                	je     0x405fac
405f9f:	83 3d 4c 32 41 00 00 	cmpl   $0x0,0x41324c
405fa6:	74 04                	je     0x405fac
405fa8:	85 c0                	test   %eax,%eax
405faa:	75 24                	jne    0x405fd0
405fac:	a1 cc f0 40 00       	mov    0x40f0cc,%eax
405fb1:	a3 48 32 41 00       	mov    %eax,0x413248
405fb6:	a1 d4 f0 40 00       	mov    0x40f0d4,%eax
405fbb:	c7 05 44 32 41 00 3f 	movl   $0x405c3f,0x413244
405fc2:	5c 40 00
405fc5:	89 35 4c 32 41 00    	mov    %esi,0x41324c
405fcb:	a3 50 32 41 00       	mov    %eax,0x413250
405fd0:	ff 15 c8 f0 40 00    	call   *0x40f0c8
405fd6:	a3 70 2b 41 00       	mov    %eax,0x412b70
405fdb:	83 f8 ff             	cmp    $0xffffffff,%eax
405fde:	0f 84 c1 00 00 00    	je     0x4060a5
405fe4:	ff 35 48 32 41 00    	push   0x413248
405fea:	50                   	push   %eax
405feb:	ff d6                	call   *%esi
405fed:	85 c0                	test   %eax,%eax
405fef:	0f 84 b0 00 00 00    	je     0x4060a5
405ff5:	e8 a5 01 00 00       	call   0x40619f
405ffa:	ff 35 44 32 41 00    	push   0x413244
406000:	8b 35 8c f0 40 00    	mov    0x40f08c,%esi
406006:	ff d6                	call   *%esi
406008:	ff 35 48 32 41 00    	push   0x413248
40600e:	a3 44 32 41 00       	mov    %eax,0x413244
406013:	ff d6                	call   *%esi
406015:	ff 35 4c 32 41 00    	push   0x41324c
40601b:	a3 48 32 41 00       	mov    %eax,0x413248
406020:	ff d6                	call   *%esi
406022:	ff 35 50 32 41 00    	push   0x413250
406028:	a3 4c 32 41 00       	mov    %eax,0x41324c
40602d:	ff d6                	call   *%esi
40602f:	a3 50 32 41 00       	mov    %eax,0x413250
406034:	e8 e6 0b 00 00       	call   0x406c1f
406039:	85 c0                	test   %eax,%eax
40603b:	74 63                	je     0x4060a0
40603d:	8b 3d 90 f0 40 00    	mov    0x40f090,%edi
406043:	68 00 5e 40 00       	push   $0x405e00
406048:	ff 35 44 32 41 00    	push   0x413244
40604e:	ff d7                	call   *%edi
406050:	ff d0                	call   *%eax
406052:	a3 6c 2b 41 00       	mov    %eax,0x412b6c
406057:	83 f8 ff             	cmp    $0xffffffff,%eax
40605a:	74 44                	je     0x4060a0
40605c:	68 14 02 00 00       	push   $0x214
406061:	6a 01                	push   $0x1
406063:	e8 9c 08 00 00       	call   0x406904
406068:	8b f0                	mov    %eax,%esi
40606a:	59                   	pop    %ecx
40606b:	59                   	pop    %ecx
40606c:	85 f6                	test   %esi,%esi
40606e:	74 30                	je     0x4060a0
406070:	56                   	push   %esi
406071:	ff 35 6c 2b 41 00    	push   0x412b6c
406077:	ff 35 4c 32 41 00    	push   0x41324c
40607d:	ff d7                	call   *%edi
40607f:	ff d0                	call   *%eax
406081:	85 c0                	test   %eax,%eax
406083:	74 1b                	je     0x4060a0
406085:	6a 00                	push   $0x0
406087:	56                   	push   %esi
406088:	e8 2c fc ff ff       	call   0x405cb9
40608d:	59                   	pop    %ecx
40608e:	59                   	pop    %ecx
40608f:	ff 15 e0 f0 40 00    	call   *0x40f0e0
406095:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
406099:	89 06                	mov    %eax,(%esi)
40609b:	33 c0                	xor    %eax,%eax
40609d:	40                   	inc    %eax
40609e:	eb 07                	jmp    0x4060a7
4060a0:	e8 d7 fb ff ff       	call   0x405c7c
4060a5:	33 c0                	xor    %eax,%eax
4060a7:	5e                   	pop    %esi
4060a8:	5f                   	pop    %edi
4060a9:	c3                   	ret
4060aa:	8b ff                	mov    %edi,%edi
4060ac:	55                   	push   %ebp
4060ad:	8b ec                	mov    %esp,%ebp
4060af:	b8 ff ff 00 00       	mov    $0xffff,%eax
4060b4:	83 ec 14             	sub    $0x14,%esp
4060b7:	66 39 45 08          	cmp    %ax,0x8(%ebp)
4060bb:	0f 84 87 00 00 00    	je     0x406148
4060c1:	53                   	push   %ebx
4060c2:	56                   	push   %esi
4060c3:	ff 75 0c             	push   0xc(%ebp)
4060c6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4060c9:	e8 17 bf ff ff       	call   0x401fe5
4060ce:	8b 75 ec             	mov    -0x14(%ebp),%esi
4060d1:	8b 4e 14             	mov    0x14(%esi),%ecx
4060d4:	33 db                	xor    %ebx,%ebx
4060d6:	3b cb                	cmp    %ebx,%ecx
4060d8:	75 15                	jne    0x4060ef
4060da:	8b 45 08             	mov    0x8(%ebp),%eax
4060dd:	8d 48 bf             	lea    -0x41(%eax),%ecx
4060e0:	66 83 f9 19          	cmp    $0x19,%cx
4060e4:	77 04                	ja     0x4060ea
4060e6:	66 83 c0 20          	add    $0x20,%ax
4060ea:	0f b7 c0             	movzwl %ax,%eax
4060ed:	eb 4b                	jmp    0x40613a
4060ef:	b8 00 01 00 00       	mov    $0x100,%eax
4060f4:	6a 01                	push   $0x1
4060f6:	66 39 45 08          	cmp    %ax,0x8(%ebp)
4060fa:	73 1e                	jae    0x40611a
4060fc:	ff 75 08             	push   0x8(%ebp)
4060ff:	e8 57 c9 ff ff       	call   0x402a5b
406104:	59                   	pop    %ecx
406105:	85 c0                	test   %eax,%eax
406107:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
40610b:	59                   	pop    %ecx
40610c:	74 2c                	je     0x40613a
40610e:	8b 8e cc 00 00 00    	mov    0xcc(%esi),%ecx
406114:	0f b6 04 01          	movzbl (%ecx,%eax,1),%eax
406118:	eb 20                	jmp    0x40613a
40611a:	8d 55 fc             	lea    -0x4(%ebp),%edx
40611d:	52                   	push   %edx
40611e:	6a 01                	push   $0x1
406120:	8d 55 08             	lea    0x8(%ebp),%edx
406123:	52                   	push   %edx
406124:	50                   	push   %eax
406125:	51                   	push   %ecx
406126:	e8 77 0e 00 00       	call   0x406fa2
40612b:	83 c4 18             	add    $0x18,%esp
40612e:	85 c0                	test   %eax,%eax
406130:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
406134:	74 04                	je     0x40613a
406136:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40613a:	38 5d f8             	cmp    %bl,-0x8(%ebp)
40613d:	74 07                	je     0x406146
40613f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406142:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
406146:	5e                   	pop    %esi
406147:	5b                   	pop    %ebx
406148:	c9                   	leave
406149:	c3                   	ret
40614a:	8b ff                	mov    %edi,%edi
40614c:	55                   	push   %ebp
40614d:	8b ec                	mov    %esp,%ebp
40614f:	68 28 f6 40 00       	push   $0x40f628
406154:	ff 15 d8 f0 40 00    	call   *0x40f0d8
40615a:	85 c0                	test   %eax,%eax
40615c:	74 15                	je     0x406173
40615e:	68 18 f6 40 00       	push   $0x40f618
406163:	50                   	push   %eax
406164:	ff 15 e4 f0 40 00    	call   *0x40f0e4
40616a:	85 c0                	test   %eax,%eax
40616c:	74 05                	je     0x406173
40616e:	ff 75 08             	push   0x8(%ebp)
406171:	ff d0                	call   *%eax
406173:	5d                   	pop    %ebp
406174:	c3                   	ret
406175:	8b ff                	mov    %edi,%edi
406177:	55                   	push   %ebp
406178:	8b ec                	mov    %esp,%ebp
40617a:	ff 75 08             	push   0x8(%ebp)
40617d:	e8 c8 ff ff ff       	call   0x40614a
406182:	59                   	pop    %ecx
406183:	ff 75 08             	push   0x8(%ebp)
406186:	ff 15 00 f0 40 00    	call   *0x40f000
40618c:	cc                   	int3
40618d:	6a 08                	push   $0x8
40618f:	e8 05 0c 00 00       	call   0x406d99
406194:	59                   	pop    %ecx
406195:	c3                   	ret
406196:	6a 08                	push   $0x8
406198:	e8 23 0b 00 00       	call   0x406cc0
40619d:	59                   	pop    %ecx
40619e:	c3                   	ret
40619f:	8b ff                	mov    %edi,%edi
4061a1:	56                   	push   %esi
4061a2:	e8 8f fa ff ff       	call   0x405c36
4061a7:	8b f0                	mov    %eax,%esi
4061a9:	56                   	push   %esi
4061aa:	e8 94 04 00 00       	call   0x406643
4061af:	56                   	push   %esi
4061b0:	e8 21 c9 ff ff       	call   0x402ad6
4061b5:	56                   	push   %esi
4061b6:	e8 d3 5b 00 00       	call   0x40bd8e
4061bb:	56                   	push   %esi
4061bc:	e8 be 5b 00 00       	call   0x40bd7f
4061c1:	56                   	push   %esi
4061c2:	e8 b3 59 00 00       	call   0x40bb7a
4061c7:	56                   	push   %esi
4061c8:	e8 9c 59 00 00       	call   0x40bb69
4061cd:	83 c4 18             	add    $0x18,%esp
4061d0:	5e                   	pop    %esi
4061d1:	c3                   	ret
4061d2:	8b ff                	mov    %edi,%edi
4061d4:	55                   	push   %ebp
4061d5:	8b ec                	mov    %esp,%ebp
4061d7:	56                   	push   %esi
4061d8:	8b 75 08             	mov    0x8(%ebp),%esi
4061db:	33 c0                	xor    %eax,%eax
4061dd:	eb 0f                	jmp    0x4061ee
4061df:	85 c0                	test   %eax,%eax
4061e1:	75 10                	jne    0x4061f3
4061e3:	8b 0e                	mov    (%esi),%ecx
4061e5:	85 c9                	test   %ecx,%ecx
4061e7:	74 02                	je     0x4061eb
4061e9:	ff d1                	call   *%ecx
4061eb:	83 c6 04             	add    $0x4,%esi
4061ee:	3b 75 0c             	cmp    0xc(%ebp),%esi
4061f1:	72 ec                	jb     0x4061df
4061f3:	5e                   	pop    %esi
4061f4:	5d                   	pop    %ebp
4061f5:	c3                   	ret
4061f6:	8b ff                	mov    %edi,%edi
4061f8:	55                   	push   %ebp
4061f9:	8b ec                	mov    %esp,%ebp
4061fb:	83 3d 30 47 41 00 00 	cmpl   $0x0,0x414730
406202:	74 19                	je     0x40621d
406204:	68 30 47 41 00       	push   $0x414730
406209:	e8 42 45 00 00       	call   0x40a750
40620e:	59                   	pop    %ecx
40620f:	85 c0                	test   %eax,%eax
406211:	74 0a                	je     0x40621d
406213:	ff 75 08             	push   0x8(%ebp)
406216:	ff 15 30 47 41 00    	call   *0x414730
40621c:	59                   	pop    %ecx
40621d:	e8 02 49 00 00       	call   0x40ab24
406222:	68 7c f1 40 00       	push   $0x40f17c
406227:	68 64 f1 40 00       	push   $0x40f164
40622c:	e8 a1 ff ff ff       	call   0x4061d2
406231:	59                   	pop    %ecx
406232:	59                   	pop    %ecx
406233:	85 c0                	test   %eax,%eax
406235:	75 54                	jne    0x40628b
406237:	56                   	push   %esi
406238:	57                   	push   %edi
406239:	68 a5 9d 40 00       	push   $0x409da5
40623e:	e8 7d 5c 00 00       	call   0x40bec0
406243:	b8 5c f1 40 00       	mov    $0x40f15c,%eax
406248:	be 60 f1 40 00       	mov    $0x40f160,%esi
40624d:	59                   	pop    %ecx
40624e:	8b f8                	mov    %eax,%edi
406250:	3b c6                	cmp    %esi,%eax
406252:	73 0f                	jae    0x406263
406254:	8b 07                	mov    (%edi),%eax
406256:	85 c0                	test   %eax,%eax
406258:	74 02                	je     0x40625c
40625a:	ff d0                	call   *%eax
40625c:	83 c7 04             	add    $0x4,%edi
40625f:	3b fe                	cmp    %esi,%edi
406261:	72 f1                	jb     0x406254
406263:	83 3d 34 47 41 00 00 	cmpl   $0x0,0x414734
40626a:	5f                   	pop    %edi
40626b:	5e                   	pop    %esi
40626c:	74 1b                	je     0x406289
40626e:	68 34 47 41 00       	push   $0x414734
406273:	e8 d8 44 00 00       	call   0x40a750
406278:	59                   	pop    %ecx
406279:	85 c0                	test   %eax,%eax
40627b:	74 0c                	je     0x406289
40627d:	6a 00                	push   $0x0
40627f:	6a 02                	push   $0x2
406281:	6a 00                	push   $0x0
406283:	ff 15 34 47 41 00    	call   *0x414734
406289:	33 c0                	xor    %eax,%eax
40628b:	5d                   	pop    %ebp
40628c:	c3                   	ret
40628d:	6a 20                	push   $0x20
40628f:	68 a8 12 41 00       	push   $0x4112a8
406294:	e8 d7 de ff ff       	call   0x404170
406299:	6a 08                	push   $0x8
40629b:	e8 f9 0a 00 00       	call   0x406d99
4062a0:	59                   	pop    %ecx
4062a1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4062a5:	33 c0                	xor    %eax,%eax
4062a7:	40                   	inc    %eax
4062a8:	39 05 88 32 41 00    	cmp    %eax,0x413288
4062ae:	0f 84 d8 00 00 00    	je     0x40638c
4062b4:	a3 84 32 41 00       	mov    %eax,0x413284
4062b9:	8a 45 10             	mov    0x10(%ebp),%al
4062bc:	a2 80 32 41 00       	mov    %al,0x413280
4062c1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4062c5:	0f 85 a0 00 00 00    	jne    0x40636b
4062cb:	ff 35 28 47 41 00    	push   0x414728
4062d1:	8b 35 90 f0 40 00    	mov    0x40f090,%esi
4062d7:	ff d6                	call   *%esi
4062d9:	8b d8                	mov    %eax,%ebx
4062db:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4062de:	85 db                	test   %ebx,%ebx
4062e0:	74 68                	je     0x40634a
4062e2:	ff 35 24 47 41 00    	push   0x414724
4062e8:	ff d6                	call   *%esi
4062ea:	8b f8                	mov    %eax,%edi
4062ec:	89 7d d4             	mov    %edi,-0x2c(%ebp)
4062ef:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4062f2:	89 7d d8             	mov    %edi,-0x28(%ebp)
4062f5:	83 ef 04             	sub    $0x4,%edi
4062f8:	89 7d d4             	mov    %edi,-0x2c(%ebp)
4062fb:	3b fb                	cmp    %ebx,%edi
4062fd:	72 4b                	jb     0x40634a
4062ff:	e8 32 f9 ff ff       	call   0x405c36
406304:	39 07                	cmp    %eax,(%edi)
406306:	74 ed                	je     0x4062f5
406308:	3b fb                	cmp    %ebx,%edi
40630a:	72 3e                	jb     0x40634a
40630c:	ff 37                	push   (%edi)
40630e:	ff d6                	call   *%esi
406310:	8b d8                	mov    %eax,%ebx
406312:	e8 1f f9 ff ff       	call   0x405c36
406317:	89 07                	mov    %eax,(%edi)
406319:	ff d3                	call   *%ebx
40631b:	ff 35 28 47 41 00    	push   0x414728
406321:	ff d6                	call   *%esi
406323:	8b d8                	mov    %eax,%ebx
406325:	ff 35 24 47 41 00    	push   0x414724
40632b:	ff d6                	call   *%esi
40632d:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
406330:	75 05                	jne    0x406337
406332:	39 45 d8             	cmp    %eax,-0x28(%ebp)
406335:	74 0e                	je     0x406345
406337:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40633a:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40633d:	89 45 d8             	mov    %eax,-0x28(%ebp)
406340:	8b f8                	mov    %eax,%edi
406342:	89 7d d4             	mov    %edi,-0x2c(%ebp)
406345:	8b 5d d0             	mov    -0x30(%ebp),%ebx
406348:	eb ab                	jmp    0x4062f5