437095:	ff 77 04             	push   0x4(%edi)
437098:	ff 15 24 c0 4a 00    	call   *0x4ac024
43709e:	85 c0                	test   %eax,%eax
4370a0:	74 03                	je     0x4370a5
4370a2:	89 47 08             	mov    %eax,0x8(%edi)
4370a5:	a1 4c 49 4a 00       	mov    0x4a494c,%eax
4370aa:	85 c0                	test   %eax,%eax
4370ac:	74 16                	je     0x4370c4
4370ae:	8b 00                	mov    (%eax),%eax
4370b0:	6a 01                	push   $0x1
4370b2:	8b 30                	mov    (%eax),%esi
4370b4:	8b ce                	mov    %esi,%ecx
4370b6:	ff 15 2c 81 4a 00    	call   *0x4a812c
4370bc:	8b 0d 4c 49 4a 00    	mov    0x4a494c,%ecx
4370c2:	ff d6                	call   *%esi
4370c4:	ff 35 50 49 4a 00    	push   0x4a4950
4370ca:	89 3d 4c 49 4a 00    	mov    %edi,0x4a494c
4370d0:	ff 15 60 71 4a 00    	call   *0x4a7160
4370d6:	8b 45 d0             	mov    -0x30(%ebp),%eax
4370d9:	a3 50 49 4a 00       	mov    %eax,0x4a4950
4370de:	68 34 49 4a 00       	push   $0x4a4934
4370e3:	8b cb                	mov    %ebx,%ecx
4370e5:	e8 3d f6 ff ff       	call   0x436727
4370ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4370ed:	5f                   	pop    %edi
4370ee:	5e                   	pop    %esi
4370ef:	33 cd                	xor    %ebp,%ecx
4370f1:	5b                   	pop    %ebx
4370f2:	e8 09 8e 05 00       	call   0x48ff00
4370f7:	c9                   	leave
4370f8:	c3                   	ret
4370f9:	8b ff                	mov    %edi,%edi
4370fb:	55                   	push   %ebp
4370fc:	8b ec                	mov    %esp,%ebp
4370fe:	83 ec 3c             	sub    $0x3c,%esp
437101:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
437106:	33 c5                	xor    %ebp,%eax
437108:	89 45 fc             	mov    %eax,-0x4(%ebp)
43710b:	53                   	push   %ebx
43710c:	56                   	push   %esi
43710d:	8b d9                	mov    %ecx,%ebx
43710f:	57                   	push   %edi
437110:	8b 3d 08 01 4a 00    	mov    0x4a0108,%edi
437116:	6a 03                	push   $0x3
437118:	8b 43 48             	mov    0x48(%ebx),%eax
43711b:	89 45 d0             	mov    %eax,-0x30(%ebp)
43711e:	8b 07                	mov    (%edi),%eax
437120:	8b 70 70             	mov    0x70(%eax),%esi
437123:	8b ce                	mov    %esi,%ecx
437125:	ff 15 2c 81 4a 00    	call   *0x4a812c
43712b:	8b cf                	mov    %edi,%ecx
43712d:	ff d6                	call   *%esi
43712f:	84 c0                	test   %al,%al
437131:	74 19                	je     0x43714c
437133:	8b 07                	mov    (%edi),%eax
437135:	6a 02                	push   $0x2
437137:	53                   	push   %ebx
437138:	8b 70 78             	mov    0x78(%eax),%esi
43713b:	8b ce                	mov    %esi,%ecx
43713d:	ff 15 2c 81 4a 00    	call   *0x4a812c
437143:	8b cf                	mov    %edi,%ecx
437145:	ff d6                	call   *%esi
437147:	e9 6e 02 00 00       	jmp    0x4373ba
43714c:	e8 5a 61 ff ff       	call   0x42d2ab
437151:	83 3d 30 49 4a 00 00 	cmpl   $0x0,0x4a4930
437158:	75 22                	jne    0x43717c
43715a:	83 3d 44 65 4a 00 00 	cmpl   $0x0,0x4a6544
437161:	75 19                	jne    0x43717c
437163:	8b 75 d0             	mov    -0x30(%ebp),%esi
437166:	8d 45 d4             	lea    -0x2c(%ebp),%eax
437169:	ff 76 30             	push   0x30(%esi)
43716c:	ff 76 2c             	push   0x2c(%esi)
43716f:	6a 00                	push   $0x0
437171:	6a 00                	push   $0x0
437173:	50                   	push   %eax
437174:	ff 15 08 7e 4a 00    	call   *0x4a7e08
43717a:	eb 20                	jmp    0x43719c
43717c:	6a 01                	push   $0x1
43717e:	6a 01                	push   $0x1
437180:	8b cb                	mov    %ebx,%ecx
437182:	e8 74 cc ff ff       	call   0x433dfb
437187:	be a8 4b 4a 00       	mov    $0x4a4ba8,%esi
43718c:	8d 7d d4             	lea    -0x2c(%ebp),%edi
43718f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437190:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437191:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437192:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437193:	ff 4d dc             	decl   -0x24(%ebp)
437196:	ff 4d e0             	decl   -0x20(%ebp)
437199:	8b 75 d0             	mov    -0x30(%ebp),%esi
43719c:	83 3d 30 49 4a 00 00 	cmpl   $0x0,0x4a4930
4371a3:	75 72                	jne    0x437217
4371a5:	83 3d 44 65 4a 00 00 	cmpl   $0x0,0x4a6544
4371ac:	75 69                	jne    0x437217
4371ae:	8b 4b 48             	mov    0x48(%ebx),%ecx
4371b1:	e8 6a 6e ff ff       	call   0x42e020
4371b6:	6a 03                	push   $0x3
4371b8:	ff 76 0c             	push   0xc(%esi)
4371bb:	ff 15 98 70 4a 00    	call   *0x4a7098
4371c1:	8b 4e 0c             	mov    0xc(%esi),%ecx
4371c4:	8b 75 e0             	mov    -0x20(%ebp),%esi
4371c7:	8b 45 d8             	mov    -0x28(%ebp),%eax
4371ca:	8b 7d dc             	mov    -0x24(%ebp),%edi
4371cd:	2b c6                	sub    %esi,%eax
4371cf:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4371d2:	2b fa                	sub    %edx,%edi
4371d4:	50                   	push   %eax
4371d5:	57                   	push   %edi
4371d6:	8d 46 ff             	lea    -0x1(%esi),%eax
4371d9:	2b 75 d8             	sub    -0x28(%ebp),%esi
4371dc:	50                   	push   %eax
4371dd:	52                   	push   %edx
4371de:	51                   	push   %ecx
4371df:	56                   	push   %esi
4371e0:	57                   	push   %edi
4371e1:	ff 75 d8             	push   -0x28(%ebp)
4371e4:	e8 f4 78 ff ff       	call   0x42eadd
4371e9:	8b 4b 48             	mov    0x48(%ebx),%ecx
4371ec:	8d 55 d4             	lea    -0x2c(%ebp),%edx
4371ef:	e8 e8 5b ff ff       	call   0x42cddc
4371f4:	8b 4b 48             	mov    0x48(%ebx),%ecx
4371f7:	8d 55 d4             	lea    -0x2c(%ebp),%edx
4371fa:	e8 aa 5c ff ff       	call   0x42cea9
4371ff:	8d 45 d4             	lea    -0x2c(%ebp),%eax
437202:	8b cb                	mov    %ebx,%ecx
437204:	50                   	push   %eax
437205:	e8 d9 ee ff ff       	call   0x4360e3
43720a:	8b 4b 48             	mov    0x48(%ebx),%ecx
43720d:	e8 65 5b ff ff       	call   0x42cd77
437212:	e9 a3 01 00 00       	jmp    0x4373ba
437217:	83 3d 60 58 4a 00 00 	cmpl   $0x0,0x4a5860
43721e:	be b4 48 4a 00       	mov    $0x4a48b4,%esi
437223:	74 0b                	je     0x437230
437225:	8b ce                	mov    %esi,%ecx
437227:	e8 b0 c2 ff ff       	call   0x4334dc
43722c:	8b f8                	mov    %eax,%edi
43722e:	eb 02                	jmp    0x437232
437230:	33 ff                	xor    %edi,%edi
437232:	6a 03                	push   $0x3
437234:	8b ce                	mov    %esi,%ecx
437236:	ff 15 bc 76 4a 00    	call   *0x4a76bc
43723c:	8b 35 d0 48 4a 00    	mov    0x4a48d0,%esi
437242:	8b c6                	mov    %esi,%eax
437244:	8b 15 cc 48 4a 00    	mov    0x4a48cc,%edx
43724a:	f7 d8                	neg    %eax
43724c:	8b 0d b8 48 4a 00    	mov    0x4a48b8,%ecx
437252:	50                   	push   %eax
437253:	52                   	push   %edx
437254:	8d 46 ff             	lea    -0x1(%esi),%eax
437257:	50                   	push   %eax
437258:	6a 00                	push   $0x0
43725a:	51                   	push   %ecx
43725b:	56                   	push   %esi
43725c:	52                   	push   %edx
43725d:	6a 00                	push   $0x0
43725f:	33 d2                	xor    %edx,%edx
437261:	e8 77 78 ff ff       	call   0x42eadd
437266:	8b 35 d0 48 4a 00    	mov    0x4a48d0,%esi
43726c:	8b c6                	mov    %esi,%eax
43726e:	8b 15 cc 48 4a 00    	mov    0x4a48cc,%edx
437274:	f7 d8                	neg    %eax
437276:	8b 0d d8 48 4a 00    	mov    0x4a48d8,%ecx
43727c:	50                   	push   %eax
43727d:	52                   	push   %edx
43727e:	8d 46 ff             	lea    -0x1(%esi),%eax
437281:	50                   	push   %eax
437282:	6a 00                	push   $0x0
437284:	51                   	push   %ecx
437285:	56                   	push   %esi
437286:	52                   	push   %edx
437287:	33 f6                	xor    %esi,%esi
437289:	33 d2                	xor    %edx,%edx
43728b:	56                   	push   %esi
43728c:	e8 4c 78 ff ff       	call   0x42eadd
437291:	85 ff                	test   %edi,%edi
437293:	74 0d                	je     0x4372a2
437295:	56                   	push   %esi
437296:	57                   	push   %edi
437297:	b9 b4 48 4a 00       	mov    $0x4a48b4,%ecx
43729c:	ff 15 98 75 4a 00    	call   *0x4a7598
4372a2:	39 35 50 49 4a 00    	cmp    %esi,0x4a4950
4372a8:	0f 84 00 01 00 00    	je     0x4373ae
4372ae:	6a 10                	push   $0x10
4372b0:	89 75 d0             	mov    %esi,-0x30(%ebp)
4372b3:	ff 15 08 c0 4a 00    	call   *0x4ac008
4372b9:	8b f0                	mov    %eax,%esi
4372bb:	89 75 cc             	mov    %esi,-0x34(%ebp)
4372be:	85 f6                	test   %esi,%esi
4372c0:	74 23                	je     0x4372e5
4372c2:	8b 0d 4c 49 4a 00    	mov    0x4a494c,%ecx
4372c8:	e8 0c 23 00 00       	call   0x4395d9
4372cd:	50                   	push   %eax
4372ce:	ff 35 58 49 4a 00    	push   0x4a4958
4372d4:	8b ce                	mov    %esi,%ecx
4372d6:	ff 35 54 49 4a 00    	push   0x4a4954
4372dc:	e8 1b 23 00 00       	call   0x4395fc
4372e1:	8b f8                	mov    %eax,%edi
4372e3:	eb 02                	jmp    0x4372e7
4372e5:	33 ff                	xor    %edi,%edi
4372e7:	57                   	push   %edi
4372e8:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4372eb:	e8 b8 22 00 00       	call   0x4395a8
4372f0:	6a 01                	push   $0x1
4372f2:	ff 75 c8             	push   -0x38(%ebp)
4372f5:	ff 15 4c c0 4a 00    	call   *0x4ac04c
4372fb:	85 c0                	test   %eax,%eax
4372fd:	74 03                	je     0x437302
4372ff:	89 45 cc             	mov    %eax,-0x34(%ebp)
437302:	6a 00                	push   $0x0
437304:	ff 75 c8             	push   -0x38(%ebp)
437307:	ff 15 50 c0 4a 00    	call   *0x4ac050
43730d:	85 c0                	test   %eax,%eax
43730f:	74 03                	je     0x437314
437311:	89 45 cc             	mov    %eax,-0x34(%ebp)
437314:	8b cf                	mov    %edi,%ecx
437316:	e8 3f 22 00 00       	call   0x43955a
43731b:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
43731f:	8b cf                	mov    %edi,%ecx
437321:	89 45 e8             	mov    %eax,-0x18(%ebp)
437324:	e8 31 22 00 00       	call   0x43955a
437329:	8b cf                	mov    %edi,%ecx
43732b:	8b f0                	mov    %eax,%esi
43732d:	e8 4f 22 00 00       	call   0x439581
437332:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
437336:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
43733a:	51                   	push   %ecx
43733b:	89 45 ec             	mov    %eax,-0x14(%ebp)
43733e:	8d 4d c8             	lea    -0x38(%ebp),%ecx
437341:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437344:	89 75 f0             	mov    %esi,-0x10(%ebp)
437347:	50                   	push   %eax
437348:	ff 35 4c 49 4a 00    	push   0x4a494c
43734e:	e8 d3 21 00 00       	call   0x439526
437353:	ff 75 c8             	push   -0x38(%ebp)
437356:	ff 15 2c c0 4a 00    	call   *0x4ac02c
43735c:	68 00 00 00 ff       	push   $0xff000000
437361:	8d 45 d0             	lea    -0x30(%ebp),%eax
437364:	50                   	push   %eax
437365:	ff 77 04             	push   0x4(%edi)
437368:	ff 15 24 c0 4a 00    	call   *0x4ac024
43736e:	85 c0                	test   %eax,%eax
437370:	74 03                	je     0x437375
437372:	89 47 08             	mov    %eax,0x8(%edi)
437375:	a1 4c 49 4a 00       	mov    0x4a494c,%eax
43737a:	85 c0                	test   %eax,%eax
43737c:	74 16                	je     0x437394
43737e:	8b 00                	mov    (%eax),%eax
437380:	6a 01                	push   $0x1
437382:	8b 30                	mov    (%eax),%esi
437384:	8b ce                	mov    %esi,%ecx
437386:	ff 15 2c 81 4a 00    	call   *0x4a812c
43738c:	8b 0d 4c 49 4a 00    	mov    0x4a494c,%ecx
437392:	ff d6                	call   *%esi
437394:	ff 35 50 49 4a 00    	push   0x4a4950
43739a:	89 3d 4c 49 4a 00    	mov    %edi,0x4a494c
4373a0:	ff 15 60 71 4a 00    	call   *0x4a7160
4373a6:	8b 45 d0             	mov    -0x30(%ebp),%eax
4373a9:	a3 50 49 4a 00       	mov    %eax,0x4a4950
4373ae:	68 34 49 4a 00       	push   $0x4a4934
4373b3:	8b cb                	mov    %ebx,%ecx
4373b5:	e8 6d f3 ff ff       	call   0x436727
4373ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4373bd:	5f                   	pop    %edi
4373be:	5e                   	pop    %esi
4373bf:	33 cd                	xor    %ebp,%ecx
4373c1:	5b                   	pop    %ebx
4373c2:	e8 39 8b 05 00       	call   0x48ff00
4373c7:	c9                   	leave
4373c8:	c3                   	ret
4373c9:	8b ff                	mov    %edi,%edi
4373cb:	55                   	push   %ebp
4373cc:	8b ec                	mov    %esp,%ebp
4373ce:	83 e4 f8             	and    $0xfffffff8,%esp
4373d1:	83 ec 24             	sub    $0x24,%esp
4373d4:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
4373d9:	33 c4                	xor    %esp,%eax
4373db:	89 44 24 20          	mov    %eax,0x20(%esp)
4373df:	83 3d 44 65 4a 00 00 	cmpl   $0x0,0x4a6544
4373e6:	53                   	push   %ebx
4373e7:	56                   	push   %esi
4373e8:	57                   	push   %edi
4373e9:	8b d9                	mov    %ecx,%ebx
4373eb:	75 16                	jne    0x437403
4373ed:	83 3d 30 49 4a 00 00 	cmpl   $0x0,0x4a4930
4373f4:	75 0d                	jne    0x437403
4373f6:	6a 00                	push   $0x0
4373f8:	ff 15 d4 7d 4a 00    	call   *0x4a7dd4
4373fe:	e9 d7 00 00 00       	jmp    0x4374da
437403:	6a 00                	push   $0x0
437405:	6a 01                	push   $0x1
437407:	e8 ef c9 ff ff       	call   0x433dfb
43740c:	be 34 49 4a 00       	mov    $0x4a4934,%esi
437411:	8d 7c 24 0c          	lea    0xc(%esp),%edi
437415:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437416:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437417:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437418:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437419:	8b 35 cc 48 4a 00    	mov    0x4a48cc,%esi
43741f:	8b c6                	mov    %esi,%eax
437421:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
437425:	99                   	cltd
437426:	2b c2                	sub    %edx,%eax
437428:	d1 f8                	sar    $1,%eax
43742a:	f7 d8                	neg    %eax
43742c:	03 c8                	add    %eax,%ecx
43742e:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
437432:	8d 04 71             	lea    (%ecx,%esi,2),%eax
437435:	8b 35 d0 48 4a 00    	mov    0x4a48d0,%esi
43743b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
43743f:	89 44 24 14          	mov    %eax,0x14(%esp)
437443:	8b c6                	mov    %esi,%eax
437445:	99                   	cltd
437446:	2b c2                	sub    %edx,%eax
437448:	d1 f8                	sar    $1,%eax
43744a:	f7 d8                	neg    %eax
43744c:	03 c8                	add    %eax,%ecx
43744e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
437452:	8d 04 71             	lea    (%ecx,%esi,2),%eax
437455:	89 44 24 18          	mov    %eax,0x18(%esp)
437459:	8b 43 48             	mov    0x48(%ebx),%eax
43745c:	8b 48 30             	mov    0x30(%eax),%ecx
43745f:	8b 40 2c             	mov    0x2c(%eax),%eax
437462:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
437467:	83 64 24 20 00       	andl   $0x0,0x20(%esp)
43746c:	89 44 24 24          	mov    %eax,0x24(%esp)
437470:	8d 44 24 1c          	lea    0x1c(%esp),%eax
437474:	50                   	push   %eax
437475:	8d 44 24 10          	lea    0x10(%esp),%eax
437479:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
43747d:	50                   	push   %eax
43747e:	50                   	push   %eax
43747f:	ff 15 f0 7c 4a 00    	call   *0x4a7cf0
437485:	e8 21 5e ff ff       	call   0x42d2ab
43748a:	8b 44 24 18          	mov    0x18(%esp),%eax
43748e:	8b 54 24 14          	mov    0x14(%esp),%edx
437492:	2b 44 24 10          	sub    0x10(%esp),%eax
437496:	2b 54 24 0c          	sub    0xc(%esp),%edx
43749a:	50                   	push   %eax
43749b:	52                   	push   %edx
43749c:	51                   	push   %ecx
43749d:	b9 a0 48 4a 00       	mov    $0x4a48a0,%ecx
4374a2:	e8 af 26 ff ff       	call   0x429b56
4374a7:	8d 44 24 0c          	lea    0xc(%esp),%eax
4374ab:	8b cb                	mov    %ebx,%ecx
4374ad:	50                   	push   %eax
4374ae:	e8 74 f2 ff ff       	call   0x436727
4374b3:	83 3d 44 65 4a 00 00 	cmpl   $0x0,0x4a6544
4374ba:	74 1e                	je     0x4374da
4374bc:	a1 cc 48 4a 00       	mov    0x4a48cc,%eax
4374c1:	99                   	cltd