40701a:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
40701f:	eb 6f                	jmp    0x407090
407021:	33 f6                	xor    %esi,%esi
407023:	8d 4c 24 14          	lea    0x14(%esp),%ecx
407027:	89 74 24 24          	mov    %esi,0x24(%esp)
40702b:	89 74 24 28          	mov    %esi,0x28(%esp)
40702f:	e8 26 c4 ff ff       	call   0x40345a
407034:	8b 7b 0c             	mov    0xc(%ebx),%edi
407037:	8d 44 24 20          	lea    0x20(%esp),%eax
40703b:	6a 01                	push   $0x1
40703d:	50                   	push   %eax
40703e:	56                   	push   %esi
40703f:	56                   	push   %esi
407040:	56                   	push   %esi
407041:	ff b4 24 90 00 00 00 	push   0x90(%esp)
407048:	51                   	push   %ecx
407049:	8b f4                	mov    %esp,%esi
40704b:	ff 74 24 2c          	push   0x2c(%esp)
40704f:	ff 15 74 22 41 00    	call   *0x412274
407055:	50                   	push   %eax
407056:	8b ce                	mov    %esi,%ecx
407058:	e8 b5 c3 ff ff       	call   0x403412
40705d:	57                   	push   %edi
40705e:	8d 4c 24 50          	lea    0x50(%esp),%ecx
407062:	e8 e3 cc ff ff       	call   0x403d4a
407067:	8b 4b 04             	mov    0x4(%ebx),%ecx
40706a:	50                   	push   %eax
40706b:	e8 e3 da ff ff       	call   0x404b53
407070:	8d 4c 24 30          	lea    0x30(%esp),%ecx
407074:	e8 37 cc ff ff       	call   0x403cb0
407079:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40707d:	e8 ab e9 ff ff       	call   0x405a2d
407082:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
407087:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40708b:	e8 d6 bd ff ff       	call   0x402e66
407090:	8d 4c 24 18          	lea    0x18(%esp),%ecx
407094:	e8 cd bd ff ff       	call   0x402e66
407099:	8b 74 24 14          	mov    0x14(%esp),%esi
40709d:	8d 7b 10             	lea    0x10(%ebx),%edi
4070a0:	46                   	inc    %esi
4070a1:	89 74 24 14          	mov    %esi,0x14(%esp)
4070a5:	3b b4 24 84 00 00 00 	cmp    0x84(%esp),%esi
4070ac:	0f 82 db fe ff ff    	jb     0x406f8d
4070b2:	eb 69                	jmp    0x40711d
4070b4:	57                   	push   %edi
4070b5:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4070b9:	89 74 24 24          	mov    %esi,0x24(%esp)
4070bd:	89 74 24 28          	mov    %esi,0x28(%esp)
4070c1:	e8 94 c3 ff ff       	call   0x40345a
4070c6:	8b 7b 0c             	mov    0xc(%ebx),%edi
4070c9:	8d 44 24 20          	lea    0x20(%esp),%eax
4070cd:	6a 02                	push   $0x2
4070cf:	50                   	push   %eax
4070d0:	56                   	push   %esi
4070d1:	56                   	push   %esi
4070d2:	56                   	push   %esi
4070d3:	ff b4 24 90 00 00 00 	push   0x90(%esp)
4070da:	51                   	push   %ecx
4070db:	8b f4                	mov    %esp,%esi
4070dd:	ff 74 24 30          	push   0x30(%esp)
4070e1:	ff 15 74 22 41 00    	call   *0x412274
4070e7:	50                   	push   %eax
4070e8:	8b ce                	mov    %esi,%ecx
4070ea:	e8 23 c3 ff ff       	call   0x403412
4070ef:	57                   	push   %edi
4070f0:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4070f4:	e8 51 cc ff ff       	call   0x403d4a
4070f9:	8b 4b 04             	mov    0x4(%ebx),%ecx
4070fc:	50                   	push   %eax
4070fd:	e8 51 da ff ff       	call   0x404b53
407102:	8d 4c 24 30          	lea    0x30(%esp),%ecx
407106:	e8 a5 cb ff ff       	call   0x403cb0
40710b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40710f:	e8 19 e9 ff ff       	call   0x405a2d
407114:	8d 4c 24 20          	lea    0x20(%esp),%ecx
407118:	e8 49 bd ff ff       	call   0x402e66
40711d:	83 7c 24 54 00       	cmpl   $0x0,0x54(%esp)
407122:	74 09                	je     0x40712d
407124:	8d 4c 24 68          	lea    0x68(%esp),%ecx
407128:	e8 96 6f 00 00       	call   0x40e0c3
40712d:	8b 0b                	mov    (%ebx),%ecx
40712f:	6a 00                	push   $0x0
407131:	ff 73 0c             	push   0xc(%ebx)
407134:	ff 73 04             	push   0x4(%ebx)
407137:	e8 1d 00 00 00       	call   0x407159
40713c:	8d 4c 24 54          	lea    0x54(%esp),%ecx
407140:	e8 16 02 00 00       	call   0x40735b
407145:	8d 4c 24 28          	lea    0x28(%esp),%ecx
407149:	e8 18 bd ff ff       	call   0x402e66
40714e:	5f                   	pop    %edi
40714f:	5e                   	pop    %esi
407150:	33 c0                	xor    %eax,%eax
407152:	5b                   	pop    %ebx
407153:	8b e5                	mov    %ebp,%esp
407155:	5d                   	pop    %ebp
407156:	c2 04 00             	ret    $0x4
407159:	55                   	push   %ebp
40715a:	8b ec                	mov    %esp,%ebp
40715c:	83 ec 50             	sub    $0x50,%esp
40715f:	53                   	push   %ebx
407160:	8b d9                	mov    %ecx,%ebx
407162:	56                   	push   %esi
407163:	57                   	push   %edi
407164:	89 5d f4             	mov    %ebx,-0xc(%ebp)
407167:	8d 43 10             	lea    0x10(%ebx),%eax
40716a:	8b c8                	mov    %eax,%ecx
40716c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40716f:	e8 99 70 00 00       	call   0x40e20d
407174:	8b 4b 08             	mov    0x8(%ebx),%ecx
407177:	33 c0                	xor    %eax,%eax
407179:	89 45 f8             	mov    %eax,-0x8(%ebp)
40717c:	85 c9                	test   %ecx,%ecx
40717e:	74 3d                	je     0x4071bd
407180:	33 ff                	xor    %edi,%edi
407182:	3b c1                	cmp    %ecx,%eax
407184:	89 7d f0             	mov    %edi,-0x10(%ebp)
407187:	0f 92 c1             	setb   %cl
40718a:	e8 9c e6 ff ff       	call   0x40582b
40718f:	8b 33                	mov    (%ebx),%esi
407191:	8b 55 0c             	mov    0xc(%ebp),%edx
407194:	03 f7                	add    %edi,%esi
407196:	8b 4b 08             	mov    0x8(%ebx),%ecx
407199:	8d 7d d8             	lea    -0x28(%ebp),%edi
40719c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719f:	8b 75 f8             	mov    -0x8(%ebp),%esi
4071a2:	8d 46 01             	lea    0x1(%esi),%eax
4071a5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4071a8:	39 55 dc             	cmp    %edx,-0x24(%ebp)
4071ab:	74 26                	je     0x4071d3
4071ad:	8b 7d f0             	mov    -0x10(%ebp),%edi
4071b0:	83 c7 0c             	add    $0xc,%edi
4071b3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4071b6:	89 7d f0             	mov    %edi,-0x10(%ebp)
4071b9:	3b c1                	cmp    %ecx,%eax
4071bb:	72 ca                	jb     0x407187
4071bd:	33 f6                	xor    %esi,%esi
4071bf:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4071c2:	ff 30                	push   (%eax)
4071c4:	ff 15 50 21 41 00    	call   *0x412150
4071ca:	5f                   	pop    %edi
4071cb:	8b c6                	mov    %esi,%eax
4071cd:	5e                   	pop    %esi
4071ce:	5b                   	pop    %ebx
4071cf:	c9                   	leave
4071d0:	c2 0c 00             	ret    $0xc
4071d3:	3b f1                	cmp    %ecx,%esi
4071d5:	0f 92 c1             	setb   %cl
4071d8:	e8 4e e6 ff ff       	call   0x40582b
4071dd:	6b de 0c             	imul   $0xc,%esi,%ebx
4071e0:	8d 7d d8             	lea    -0x28(%ebp),%edi
4071e3:	8b 75 f4             	mov    -0xc(%ebp),%esi
4071e6:	8b 36                	mov    (%esi),%esi
4071e8:	03 f3                	add    %ebx,%esi
4071ea:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071eb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071ec:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071ed:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4071f0:	e8 38 e8 ff ff       	call   0x405a2d
4071f5:	8b 75 f4             	mov    -0xc(%ebp),%esi
4071f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4071fb:	3b 46 08             	cmp    0x8(%esi),%eax
4071fe:	0f 92 c1             	setb   %cl
407201:	e8 25 e6 ff ff       	call   0x40582b
407206:	8b 36                	mov    (%esi),%esi
407208:	8d 7d d8             	lea    -0x28(%ebp),%edi
40720b:	03 f3                	add    %ebx,%esi
40720d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40720e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40720f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407210:	33 ff                	xor    %edi,%edi
407212:	57                   	push   %edi
407213:	ff 75 d8             	push   -0x28(%ebp)
407216:	ff 15 88 20 41 00    	call   *0x412088
40721c:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40721f:	8b f0                	mov    %eax,%esi
407221:	8b 45 f8             	mov    -0x8(%ebp),%eax
407224:	89 75 f0             	mov    %esi,-0x10(%ebp)
407227:	3b 43 08             	cmp    0x8(%ebx),%eax
40722a:	0f 92 c1             	setb   %cl
40722d:	e8 f9 e5 ff ff       	call   0x40582b
407232:	8b 43 08             	mov    0x8(%ebx),%eax
407235:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407238:	3b c8                	cmp    %eax,%ecx
40723a:	77 1d                	ja     0x407259
40723c:	6b d1 0c             	imul   $0xc,%ecx,%edx
40723f:	8b 33                	mov    (%ebx),%esi
407241:	03 f2                	add    %edx,%esi
407243:	41                   	inc    %ecx
407244:	83 c2 0c             	add    $0xc,%edx
407247:	8d 7e f4             	lea    -0xc(%esi),%edi
40724a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40724b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40724c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40724d:	8b 43 08             	mov    0x8(%ebx),%eax
407250:	3b c8                	cmp    %eax,%ecx
407252:	76 eb                	jbe    0x40723f
407254:	8b 75 f0             	mov    -0x10(%ebp),%esi
407257:	33 ff                	xor    %edi,%edi
407259:	48                   	dec    %eax
40725a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40725e:	89 43 08             	mov    %eax,0x8(%ebx)
407261:	0f 84 58 ff ff ff    	je     0x4071bf
407267:	6a 03                	push   $0x3
407269:	8d 45 e8             	lea    -0x18(%ebp),%eax
40726c:	89 7d e8             	mov    %edi,-0x18(%ebp)
40726f:	50                   	push   %eax
407270:	57                   	push   %edi
407271:	57                   	push   %edi
407272:	57                   	push   %edi
407273:	57                   	push   %edi
407274:	51                   	push   %ecx
407275:	8b c4                	mov    %esp,%eax
407277:	89 7d ec             	mov    %edi,-0x14(%ebp)
40727a:	ff 75 0c             	push   0xc(%ebp)
40727d:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
407280:	89 38                	mov    %edi,(%eax)
407282:	e8 c3 ca ff ff       	call   0x403d4a
407287:	8b 4d 08             	mov    0x8(%ebp),%ecx
40728a:	50                   	push   %eax
40728b:	e8 c3 d8 ff ff       	call   0x404b53
407290:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
407293:	e8 18 ca ff ff       	call   0x403cb0
407298:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40729b:	e8 c6 bb ff ff       	call   0x402e66
4072a0:	e9 1a ff ff ff       	jmp    0x4071bf
4072a5:	55                   	push   %ebp
4072a6:	8b ec                	mov    %esp,%ebp
4072a8:	83 ec 14             	sub    $0x14,%esp
4072ab:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4072af:	53                   	push   %ebx
4072b0:	56                   	push   %esi
4072b1:	57                   	push   %edi
4072b2:	8b d9                	mov    %ecx,%ebx
4072b4:	6a 14                	push   $0x14
4072b6:	59                   	pop    %ecx
4072b7:	e8 ee e6 ff ff       	call   0x4059aa
4072bc:	8b 75 0c             	mov    0xc(%ebp),%esi
4072bf:	8b f8                	mov    %eax,%edi
4072c1:	8b 56 04             	mov    0x4(%esi),%edx
4072c4:	8d 4e 08             	lea    0x8(%esi),%ecx
4072c7:	51                   	push   %ecx
4072c8:	8d 4f 10             	lea    0x10(%edi),%ecx
4072cb:	89 57 0c             	mov    %edx,0xc(%edi)
4072ce:	e8 91 bf ff ff       	call   0x403264
4072d3:	8b 45 08             	mov    0x8(%ebp),%eax
4072d6:	8d 4b 10             	lea    0x10(%ebx),%ecx
4072d9:	89 47 04             	mov    %eax,0x4(%edi)
4072dc:	89 1f                	mov    %ebx,(%edi)
4072de:	8b 46 04             	mov    0x4(%esi),%eax
4072e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
4072e4:	89 7d f4             	mov    %edi,-0xc(%ebp)
4072e7:	e8 21 6f 00 00       	call   0x40e20d
4072ec:	8d 45 fc             	lea    -0x4(%ebp),%eax
4072ef:	50                   	push   %eax
4072f0:	33 c0                	xor    %eax,%eax
4072f2:	50                   	push   %eax
4072f3:	57                   	push   %edi
4072f4:	68 43 6f 40 00       	push   $0x406f43
4072f9:	50                   	push   %eax
4072fa:	50                   	push   %eax
4072fb:	ff 15 8c 20 41 00    	call   *0x41208c
407301:	83 ec 0c             	sub    $0xc,%esp
407304:	89 45 ec             	mov    %eax,-0x14(%ebp)
407307:	8b fc                	mov    %esp,%edi
407309:	8d 75 ec             	lea    -0x14(%ebp),%esi
40730c:	8b cb                	mov    %ebx,%ecx
40730e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40730f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407310:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407311:	e8 c9 aa ff ff       	call   0x401ddf
407316:	ff 73 10             	push   0x10(%ebx)
407319:	ff 15 50 21 41 00    	call   *0x412150
40731f:	5f                   	pop    %edi
407320:	5e                   	pop    %esi
407321:	5b                   	pop    %ebx
407322:	c9                   	leave
407323:	c2 08 00             	ret    $0x8
407326:	53                   	push   %ebx
407327:	56                   	push   %esi
407328:	57                   	push   %edi
407329:	8b f1                	mov    %ecx,%esi
40732b:	33 ff                	xor    %edi,%edi
40732d:	6a 05                	push   $0x5
40732f:	5b                   	pop    %ebx
407330:	6a 40                	push   $0x40
407332:	59                   	pop    %ecx
407333:	89 5e 0c             	mov    %ebx,0xc(%esi)
407336:	89 5e 04             	mov    %ebx,0x4(%esi)
407339:	89 7e 08             	mov    %edi,0x8(%esi)
40733c:	e8 9a e7 ff ff       	call   0x405adb
407341:	85 c0                	test   %eax,%eax
407343:	74 05                	je     0x40734a
407345:	89 18                	mov    %ebx,(%eax)
407347:	8d 78 04             	lea    0x4(%eax),%edi
40734a:	51                   	push   %ecx
40734b:	8d 4e 10             	lea    0x10(%esi),%ecx
40734e:	89 3e                	mov    %edi,(%esi)
407350:	e8 e1 6e 00 00       	call   0x40e236
407355:	5f                   	pop    %edi
407356:	8b c6                	mov    %esi,%eax
407358:	5e                   	pop    %esi
407359:	5b                   	pop    %ebx
40735a:	c3                   	ret
40735b:	56                   	push   %esi
40735c:	8b f1                	mov    %ecx,%esi
40735e:	57                   	push   %edi
40735f:	83 3e 00             	cmpl   $0x0,(%esi)
407362:	74 08                	je     0x40736c
407364:	8d 4e 14             	lea    0x14(%esi),%ecx
407367:	e8 57 6d 00 00       	call   0x40e0c3
40736c:	8d 4e 14             	lea    0x14(%esi),%ecx
40736f:	e8 17 6b 00 00       	call   0x40de8b
407374:	8b 46 04             	mov    0x4(%esi),%eax
407377:	85 c0                	test   %eax,%eax
407379:	74 1b                	je     0x407396
40737b:	8b 78 fc             	mov    -0x4(%eax),%edi
40737e:	53                   	push   %ebx
40737f:	8d 1c f8             	lea    (%eax,%edi,8),%ebx
407382:	85 ff                	test   %edi,%edi
407384:	74 0f                	je     0x407395
407386:	83 eb 08             	sub    $0x8,%ebx
407389:	8b cb                	mov    %ebx,%ecx
40738b:	e8 d6 ba ff ff       	call   0x402e66
407390:	83 ef 01             	sub    $0x1,%edi
407393:	75 f1                	jne    0x407386
407395:	5b                   	pop    %ebx
407396:	83 66 04 00          	andl   $0x0,0x4(%esi)
40739a:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40739e:	83 66 08 00          	andl   $0x0,0x8(%esi)
4073a2:	5f                   	pop    %edi
4073a3:	5e                   	pop    %esi
4073a4:	c3                   	ret
4073a5:	83 39 00             	cmpl   $0x0,(%ecx)
4073a8:	74 08                	je     0x4073b2
4073aa:	83 c1 14             	add    $0x14,%ecx
4073ad:	e9 11 6d 00 00       	jmp    0x40e0c3
4073b2:	c3                   	ret
4073b3:	55                   	push   %ebp
4073b4:	8b ec                	mov    %esp,%ebp
4073b6:	56                   	push   %esi
4073b7:	8b f1                	mov    %ecx,%esi
4073b9:	83 3e 00             	cmpl   $0x0,(%esi)
4073bc:	74 57                	je     0x407415
4073be:	8b 4d 08             	mov    0x8(%ebp),%ecx
4073c1:	3b 4e 30             	cmp    0x30(%esi),%ecx
4073c4:	77 4f                	ja     0x407415
4073c6:	8b 46 2c             	mov    0x2c(%esi),%eax
4073c9:	0f af c1             	imul   %ecx,%eax