405f8a:	57                   	push   %edi
405f8b:	8d 14 2b             	lea    (%ebx,%ebp,1),%edx
405f8e:	e8 25 db ff ff       	call   0x403ab8
405f93:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405f97:	59                   	pop    %ecx
405f98:	89 7e 10             	mov    %edi,0x10(%esi)
405f9b:	72 04                	jb     0x405fa1
405f9d:	8b 06                	mov    (%esi),%eax
405f9f:	eb 02                	jmp    0x405fa3
405fa1:	8b c6                	mov    %esi,%eax
405fa3:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405fa7:	5f                   	pop    %edi
405fa8:	8b c6                	mov    %esi,%eax
405faa:	5e                   	pop    %esi
405fab:	5d                   	pop    %ebp
405fac:	5b                   	pop    %ebx
405fad:	c2 0c 00             	ret    $0xc
405fb0:	e8 1e c2 ff ff       	call   0x4021d3
405fb5:	cc                   	int3
405fb6:	56                   	push   %esi
405fb7:	8b f1                	mov    %ecx,%esi
405fb9:	57                   	push   %edi
405fba:	8b 7c 24 0c          	mov    0xc(%esp),%edi
405fbe:	8b 4e 10             	mov    0x10(%esi),%ecx
405fc1:	8b c1                	mov    %ecx,%eax
405fc3:	f7 d0                	not    %eax
405fc5:	3b c7                	cmp    %edi,%eax
405fc7:	76 40                	jbe    0x406009
405fc9:	85 ff                	test   %edi,%edi
405fcb:	74 35                	je     0x406002
405fcd:	53                   	push   %ebx
405fce:	8d 1c 39             	lea    (%ecx,%edi,1),%ebx
405fd1:	8b ce                	mov    %esi,%ecx
405fd3:	6a 00                	push   $0x0
405fd5:	53                   	push   %ebx
405fd6:	e8 a3 fe ff ff       	call   0x405e7e
405fdb:	84 c0                	test   %al,%al
405fdd:	74 22                	je     0x406001
405fdf:	ff 74 24 14          	push   0x14(%esp)
405fe3:	8b ce                	mov    %esi,%ecx
405fe5:	57                   	push   %edi
405fe6:	ff 76 10             	push   0x10(%esi)
405fe9:	e8 db 03 00 00       	call   0x4063c9
405fee:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405ff2:	89 5e 10             	mov    %ebx,0x10(%esi)
405ff5:	72 04                	jb     0x405ffb
405ff7:	8b 06                	mov    (%esi),%eax
405ff9:	eb 02                	jmp    0x405ffd
405ffb:	8b c6                	mov    %esi,%eax
405ffd:	c6 04 18 00          	movb   $0x0,(%eax,%ebx,1)
406001:	5b                   	pop    %ebx
406002:	5f                   	pop    %edi
406003:	8b c6                	mov    %esi,%eax
406005:	5e                   	pop    %esi
406006:	c2 08 00             	ret    $0x8
406009:	e8 f5 c2 ff ff       	call   0x402303
40600e:	cc                   	int3
40600f:	55                   	push   %ebp
406010:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
406014:	56                   	push   %esi
406015:	57                   	push   %edi
406016:	8b 7c 24 10          	mov    0x10(%esp),%edi
40601a:	8b f1                	mov    %ecx,%esi
40601c:	8b 47 10             	mov    0x10(%edi),%eax
40601f:	3b c5                	cmp    %ebp,%eax
406021:	72 75                	jb     0x406098
406023:	8b 4e 10             	mov    0x10(%esi),%ecx
406026:	2b c5                	sub    %ebp,%eax
406028:	53                   	push   %ebx
406029:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
40602d:	3b c3                	cmp    %ebx,%eax
40602f:	89 4c 24 14          	mov    %ecx,0x14(%esp)
406033:	0f 42 d8             	cmovb  %eax,%ebx
406036:	8b c1                	mov    %ecx,%eax
406038:	f7 d0                	not    %eax
40603a:	3b c3                	cmp    %ebx,%eax
40603c:	76 5f                	jbe    0x40609d
40603e:	85 db                	test   %ebx,%ebx
406040:	74 4d                	je     0x40608f
406042:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
406045:	8b ce                	mov    %esi,%ecx
406047:	6a 00                	push   $0x0
406049:	50                   	push   %eax
40604a:	e8 2f fe ff ff       	call   0x405e7e
40604f:	84 c0                	test   %al,%al
406051:	74 3c                	je     0x40608f
406053:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
406057:	72 02                	jb     0x40605b
406059:	8b 3f                	mov    (%edi),%edi
40605b:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
40605f:	72 04                	jb     0x406065
406061:	8b 06                	mov    (%esi),%eax
406063:	eb 02                	jmp    0x406067
406065:	8b c6                	mov    %esi,%eax
406067:	8b 4e 10             	mov    0x10(%esi),%ecx
40606a:	8d 14 2f             	lea    (%edi,%ebp,1),%edx
40606d:	53                   	push   %ebx
40606e:	03 c8                	add    %eax,%ecx
406070:	e8 43 da ff ff       	call   0x403ab8
406075:	59                   	pop    %ecx
406076:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40607a:	03 cb                	add    %ebx,%ecx
40607c:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
406080:	89 4e 10             	mov    %ecx,0x10(%esi)
406083:	72 04                	jb     0x406089
406085:	8b 06                	mov    (%esi),%eax
406087:	eb 02                	jmp    0x40608b
406089:	8b c6                	mov    %esi,%eax
40608b:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
40608f:	5b                   	pop    %ebx
406090:	5f                   	pop    %edi
406091:	8b c6                	mov    %esi,%eax
406093:	5e                   	pop    %esi
406094:	5d                   	pop    %ebp
406095:	c2 0c 00             	ret    $0xc
406098:	e8 36 c1 ff ff       	call   0x4021d3
40609d:	e8 61 c2 ff ff       	call   0x402303
4060a2:	cc                   	int3
4060a3:	57                   	push   %edi
4060a4:	8b 79 0c             	mov    0xc(%ecx),%edi
4060a7:	8d 41 3c             	lea    0x3c(%ecx),%eax
4060aa:	39 07                	cmp    %eax,(%edi)
4060ac:	75 16                	jne    0x4060c4
4060ae:	8b 51 50             	mov    0x50(%ecx),%edx
4060b1:	56                   	push   %esi
4060b2:	8b 71 54             	mov    0x54(%ecx),%esi
4060b5:	89 17                	mov    %edx,(%edi)
4060b7:	2b f2                	sub    %edx,%esi
4060b9:	8b 41 1c             	mov    0x1c(%ecx),%eax
4060bc:	89 10                	mov    %edx,(%eax)
4060be:	8b 41 2c             	mov    0x2c(%ecx),%eax
4060c1:	89 30                	mov    %esi,(%eax)
4060c3:	5e                   	pop    %esi
4060c4:	5f                   	pop    %edi
4060c5:	c3                   	ret
4060c6:	55                   	push   %ebp
4060c7:	8b ec                	mov    %esp,%ebp
4060c9:	83 e4 f8             	and    $0xfffffff8,%esp
4060cc:	83 ec 24             	sub    $0x24,%esp
4060cf:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
4060d4:	33 c4                	xor    %esp,%eax
4060d6:	89 44 24 20          	mov    %eax,0x20(%esp)
4060da:	53                   	push   %ebx
4060db:	56                   	push   %esi
4060dc:	57                   	push   %edi
4060dd:	8b f9                	mov    %ecx,%edi
4060df:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
4060e3:	0f 84 e5 00 00 00    	je     0x4061ce
4060e9:	80 7f 3d 00          	cmpb   $0x0,0x3d(%edi)
4060ed:	0f 84 db 00 00 00    	je     0x4061ce
4060f3:	8b 07                	mov    (%edi),%eax
4060f5:	6a ff                	push   $0xffffffff
4060f7:	ff 50 0c             	call   *0xc(%eax)
4060fa:	83 f8 ff             	cmp    $0xffffffff,%eax
4060fd:	75 07                	jne    0x406106
4060ff:	32 c0                	xor    %al,%al
406101:	e9 ca 00 00 00       	jmp    0x4061d0
406106:	6a 00                	push   $0x0
406108:	6a 08                	push   $0x8
40610a:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
40610e:	e8 f2 ed ff ff       	call   0x404f05
406113:	8b 5c 24 14          	mov    0x14(%esp),%ebx
406117:	8b 54 24 28          	mov    0x28(%esp),%edx
40611b:	8b 44 24 24          	mov    0x24(%esp),%eax
40611f:	8d 4c 24 14          	lea    0x14(%esp),%ecx
406123:	83 fa 10             	cmp    $0x10,%edx
406126:	8d 74 24 14          	lea    0x14(%esp),%esi
40612a:	0f 43 cb             	cmovae %ebx,%ecx
40612d:	0f 43 f3             	cmovae %ebx,%esi
406130:	03 c1                	add    %ecx,%eax
406132:	8d 5c 24 10          	lea    0x10(%esp),%ebx
406136:	8b 4f 38             	mov    0x38(%edi),%ecx
406139:	53                   	push   %ebx
40613a:	50                   	push   %eax
40613b:	56                   	push   %esi
40613c:	8b 11                	mov    (%ecx),%edx
40613e:	8d 47 40             	lea    0x40(%edi),%eax
406141:	50                   	push   %eax
406142:	ff 52 20             	call   *0x20(%edx)
406145:	83 e8 00             	sub    $0x0,%eax
406148:	74 0f                	je     0x406159
40614a:	83 e8 01             	sub    $0x1,%eax
40614d:	74 0e                	je     0x40615d
40614f:	48                   	dec    %eax
406150:	83 e8 01             	sub    $0x1,%eax
406153:	74 66                	je     0x4061bb
406155:	32 db                	xor    %bl,%bl
406157:	eb 64                	jmp    0x4061bd
406159:	c6 47 3d 00          	movb   $0x0,0x3d(%edi)
40615d:	8b 54 24 28          	mov    0x28(%esp),%edx
406161:	8d 44 24 14          	lea    0x14(%esp),%eax
406165:	8b 5c 24 14          	mov    0x14(%esp),%ebx
406169:	83 fa 10             	cmp    $0x10,%edx
40616c:	8b 74 24 10          	mov    0x10(%esp),%esi
406170:	0f 43 c3             	cmovae %ebx,%eax
406173:	2b f0                	sub    %eax,%esi
406175:	74 25                	je     0x40619c
406177:	ff 77 4c             	push   0x4c(%edi)
40617a:	83 fa 10             	cmp    $0x10,%edx
40617d:	8d 44 24 18          	lea    0x18(%esp),%eax
406181:	56                   	push   %esi
406182:	0f 43 c3             	cmovae %ebx,%eax
406185:	6a 01                	push   $0x1
406187:	50                   	push   %eax
406188:	e8 66 a2 01 00       	call   0x4203f3
40618d:	83 c4 10             	add    $0x10,%esp
406190:	3b f0                	cmp    %eax,%esi
406192:	75 c1                	jne    0x406155
406194:	8b 54 24 28          	mov    0x28(%esp),%edx
406198:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40619c:	80 7f 3d 00          	cmpb   $0x0,0x3d(%edi)
4061a0:	74 19                	je     0x4061bb
4061a2:	85 f6                	test   %esi,%esi
4061a4:	0f 85 71 ff ff ff    	jne    0x40611b
4061aa:	56                   	push   %esi
4061ab:	6a 08                	push   $0x8
4061ad:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4061b1:	e8 00 fe ff ff       	call   0x405fb6
4061b6:	e9 58 ff ff ff       	jmp    0x406113
4061bb:	b3 01                	mov    $0x1,%bl
4061bd:	6a 00                	push   $0x0
4061bf:	6a 01                	push   $0x1
4061c1:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4061c5:	e8 35 fc ff ff       	call   0x405dff
4061ca:	8a c3                	mov    %bl,%al
4061cc:	eb 02                	jmp    0x4061d0
4061ce:	b0 01                	mov    $0x1,%al
4061d0:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4061d4:	5f                   	pop    %edi
4061d5:	5e                   	pop    %esi
4061d6:	5b                   	pop    %ebx
4061d7:	33 cc                	xor    %esp,%ecx
4061d9:	e8 c9 3a 00 00       	call   0x409ca7
4061de:	8b e5                	mov    %ebp,%esp
4061e0:	5d                   	pop    %ebp
4061e1:	c3                   	ret
4061e2:	55                   	push   %ebp
4061e3:	8b ec                	mov    %esp,%ebp
4061e5:	51                   	push   %ecx
4061e6:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4061ea:	53                   	push   %ebx
4061eb:	56                   	push   %esi
4061ec:	8b f1                	mov    %ecx,%esi
4061ee:	0f 94 c0             	sete   %al
4061f1:	33 db                	xor    %ebx,%ebx
4061f3:	57                   	push   %edi
4061f4:	88 46 48             	mov    %al,0x48(%esi)
4061f7:	88 5e 3d             	mov    %bl,0x3d(%esi)
4061fa:	e8 31 02 00 00       	call   0x406430
4061ff:	8b 7d 08             	mov    0x8(%ebp),%edi
406202:	85 ff                	test   %edi,%edi
406204:	74 39                	je     0x40623f
406206:	8d 45 fc             	lea    -0x4(%ebp),%eax
406209:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40620c:	50                   	push   %eax
40620d:	8d 45 08             	lea    0x8(%ebp),%eax
406210:	89 5d 08             	mov    %ebx,0x8(%ebp)
406213:	50                   	push   %eax
406214:	8d 45 0c             	lea    0xc(%ebp),%eax
406217:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40621a:	50                   	push   %eax
40621b:	57                   	push   %edi
40621c:	e8 6a 77 01 00       	call   0x41d98b
406221:	8b 45 0c             	mov    0xc(%ebp),%eax
406224:	83 c4 10             	add    $0x10,%esp
406227:	89 46 0c             	mov    %eax,0xc(%esi)
40622a:	89 46 10             	mov    %eax,0x10(%esi)
40622d:	8b 45 08             	mov    0x8(%ebp),%eax
406230:	89 46 1c             	mov    %eax,0x1c(%esi)
406233:	89 46 20             	mov    %eax,0x20(%esi)
406236:	8b 45 fc             	mov    -0x4(%ebp),%eax
406239:	89 46 2c             	mov    %eax,0x2c(%esi)
40623c:	89 46 30             	mov    %eax,0x30(%esi)
40623f:	a1 a4 ff 43 00       	mov    0x43ffa4,%eax
406244:	8b 0d a8 ff 43 00    	mov    0x43ffa8,%ecx
40624a:	89 7e 4c             	mov    %edi,0x4c(%esi)
40624d:	5f                   	pop    %edi
40624e:	89 5e 38             	mov    %ebx,0x38(%esi)
406251:	89 46 40             	mov    %eax,0x40(%esi)
406254:	89 4e 44             	mov    %ecx,0x44(%esi)
406257:	5e                   	pop    %esi
406258:	5b                   	pop    %ebx
406259:	c9                   	leave
40625a:	c2 08 00             	ret    $0x8
40625d:	53                   	push   %ebx
40625e:	56                   	push   %esi
40625f:	8b f1                	mov    %ecx,%esi
406261:	33 db                	xor    %ebx,%ebx
406263:	57                   	push   %edi
406264:	39 5e 4c             	cmp    %ebx,0x4c(%esi)
406267:	75 04                	jne    0x40626d
406269:	8b fb                	mov    %ebx,%edi
40626b:	eb 1c                	jmp    0x406289
40626d:	e8 54 fe ff ff       	call   0x4060c6
406272:	ff 76 4c             	push   0x4c(%esi)
406275:	33 ff                	xor    %edi,%edi
406277:	84 c0                	test   %al,%al
406279:	0f 45 fe             	cmovne %esi,%edi
40627c:	e8 12 d4 00 00       	call   0x413693
406281:	59                   	pop    %ecx
406282:	33 c9                	xor    %ecx,%ecx
406284:	85 c0                	test   %eax,%eax
406286:	0f 45 f9             	cmovne %ecx,%edi
406289:	8b ce                	mov    %esi,%ecx
40628b:	88 5e 48             	mov    %bl,0x48(%esi)
40628e:	88 5e 3d             	mov    %bl,0x3d(%esi)
406291:	e8 9a 01 00 00       	call   0x406430
406296:	8b 0d a4 ff 43 00    	mov    0x43ffa4,%ecx
40629c:	8b c7                	mov    %edi,%eax
40629e:	8b 15 a8 ff 43 00    	mov    0x43ffa8,%edx
4062a4:	5f                   	pop    %edi
4062a5:	89 5e 4c             	mov    %ebx,0x4c(%esi)
4062a8:	89 5e 38             	mov    %ebx,0x38(%esi)
4062ab:	89 4e 40             	mov    %ecx,0x40(%esi)
4062ae:	89 56 44             	mov    %edx,0x44(%esi)
4062b1:	5e                   	pop    %esi
4062b2:	5b                   	pop    %ebx
4062b3:	c3                   	ret
4062b4:	51                   	push   %ecx
4062b5:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
4062ba:	74 1b                	je     0x4062d7
4062bc:	8b 51 0c             	mov    0xc(%ecx),%edx
4062bf:	0b 54 24 08          	or     0x8(%esp),%edx
4062c3:	8b c2                	mov    %edx,%eax
4062c5:	83 c8 04             	or     $0x4,%eax
4062c8:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
4062cc:	6a 00                	push   $0x0
4062ce:	0f 44 d0             	cmove  %eax,%edx
4062d1:	52                   	push   %edx
4062d2:	e8 73 de ff ff       	call   0x40414a
4062d7:	59                   	pop    %ecx
4062d8:	c2 08 00             	ret    $0x8
4062db:	a1 b0 84 43 00       	mov    0x4384b0,%eax
4062e0:	8b 15 b4 84 43 00    	mov    0x4384b4,%edx
4062e6:	89 01                	mov    %eax,(%ecx)
4062e8:	33 c0                	xor    %eax,%eax
4062ea:	89 41 08             	mov    %eax,0x8(%ecx)
4062ed:	89 41 0c             	mov    %eax,0xc(%ecx)
4062f0:	89 51 04             	mov    %edx,0x4(%ecx)
4062f3:	89 41 10             	mov    %eax,0x10(%ecx)
4062f6:	89 41 14             	mov    %eax,0x14(%ecx)
4062f9:	8b c1                	mov    %ecx,%eax
4062fb:	c2 08 00             	ret    $0x8
4062fe:	f6 44 24 04 01       	testb  $0x1,0x4(%esp)
406303:	56                   	push   %esi
406304:	8b f1                	mov    %ecx,%esi
406306:	c7 06 8c 84 43 00    	movl   $0x43848c,(%esi)
40630c:	74 0a                	je     0x406318
40630e:	6a 08                	push   $0x8
406310:	56                   	push   %esi