405106:	50                   	push   %eax
405107:	8d 45 cc             	lea    -0x34(%ebp),%eax
40510a:	50                   	push   %eax
40510b:	ba 78 16 40 00       	mov    $0x401678,%edx
405110:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
405114:	e8 a9 2a 00 00       	call   0x407bc2
405119:	85 c0                	test   %eax,%eax
40511b:	0f 84 b6 00 00 00    	je     0x4051d7
405121:	ff 75 cc             	push   -0x34(%ebp)
405124:	ff 75 c8             	push   -0x38(%ebp)
405127:	68 8c 16 40 00       	push   $0x40168c
40512c:	8d 45 d0             	lea    -0x30(%ebp),%eax
40512f:	50                   	push   %eax
405130:	ff 15 04 22 41 00    	call   *0x412204
405136:	83 c4 10             	add    $0x10,%esp
405139:	8d 4b 34             	lea    0x34(%ebx),%ecx
40513c:	ff 15 38 22 41 00    	call   *0x412238
405142:	8b 40 04             	mov    0x4(%eax),%eax
405145:	85 c0                	test   %eax,%eax
405147:	74 14                	je     0x40515d
405149:	ff 75 bc             	push   -0x44(%ebp)
40514c:	6a 01                	push   $0x1
40514e:	8b 53 34             	mov    0x34(%ebx),%edx
405151:	8b 4d d0             	mov    -0x30(%ebp),%ecx
405154:	e8 41 53 00 00       	call   0x40a49a
405159:	85 c0                	test   %eax,%eax
40515b:	75 5d                	jne    0x4051ba
40515d:	51                   	push   %ecx
40515e:	8b 55 d0             	mov    -0x30(%ebp),%edx
405161:	8b 4d a8             	mov    -0x58(%ebp),%ecx
405164:	e8 96 39 00 00       	call   0x408aff
405169:	83 f8 ff             	cmp    $0xffffffff,%eax
40516c:	75 4c                	jne    0x4051ba
40516e:	89 7d a4             	mov    %edi,-0x5c(%ebp)
405171:	3b 7d c0             	cmp    -0x40(%ebp),%edi
405174:	73 20                	jae    0x405196
405176:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
40517a:	85 c9                	test   %ecx,%ecx
40517c:	74 15                	je     0x405193
40517e:	8b 01                	mov    (%ecx),%eax
405180:	51                   	push   %ecx
405181:	8b 70 08             	mov    0x8(%eax),%esi
405184:	8b ce                	mov    %esi,%ecx
405186:	ff 15 20 23 41 00    	call   *0x412320
40518c:	ff d6                	call   *%esi
40518e:	83 64 bd d8 00       	andl   $0x0,-0x28(%ebp,%edi,4)
405193:	47                   	inc    %edi
405194:	eb d8                	jmp    0x40516e
405196:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
405199:	85 c9                	test   %ecx,%ecx
40519b:	0f 84 fa fd ff ff    	je     0x404f9b
4051a1:	8b 01                	mov    (%ecx),%eax
4051a3:	51                   	push   %ecx
4051a4:	8b 70 08             	mov    0x8(%eax),%esi
4051a7:	8b ce                	mov    %esi,%ecx
4051a9:	ff 15 20 23 41 00    	call   *0x412320
4051af:	ff d6                	call   *%esi
4051b1:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
4051b5:	e9 e1 fd ff ff       	jmp    0x404f9b
4051ba:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
4051be:	85 c9                	test   %ecx,%ecx
4051c0:	74 15                	je     0x4051d7
4051c2:	8b 01                	mov    (%ecx),%eax
4051c4:	51                   	push   %ecx
4051c5:	8b 70 08             	mov    0x8(%eax),%esi
4051c8:	8b ce                	mov    %esi,%ecx
4051ca:	ff 15 20 23 41 00    	call   *0x412320
4051d0:	ff d6                	call   *%esi
4051d2:	83 64 bd d8 00       	andl   $0x0,-0x28(%ebp,%edi,4)
4051d7:	47                   	inc    %edi
4051d8:	e9 ef fe ff ff       	jmp    0x4050cc
4051dd:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
4051e1:	0f 84 a5 fe ff ff    	je     0x40508c
4051e7:	eb 12                	jmp    0x4051fb
4051e9:	8b c8                	mov    %eax,%ecx
4051eb:	e8 1a 27 00 00       	call   0x40790a
4051f0:	68 fd 00 03 80       	push   $0x800300fd
4051f5:	ff 15 74 20 41 00    	call   *0x412074
4051fb:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
405202:	33 db                	xor    %ebx,%ebx
405204:	8b fb                	mov    %ebx,%edi
405206:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
40520a:	85 c9                	test   %ecx,%ecx
40520c:	74 14                	je     0x405222
40520e:	8b 01                	mov    (%ecx),%eax
405210:	51                   	push   %ecx
405211:	8b 70 08             	mov    0x8(%eax),%esi
405214:	8b ce                	mov    %esi,%ecx
405216:	ff 15 20 23 41 00    	call   *0x412320
40521c:	ff d6                	call   *%esi
40521e:	89 5c bd d8          	mov    %ebx,-0x28(%ebp,%edi,4)
405222:	47                   	inc    %edi
405223:	83 ff 05             	cmp    $0x5,%edi
405226:	72 de                	jb     0x405206
405228:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40522b:	85 c9                	test   %ecx,%ecx
40522d:	74 13                	je     0x405242
40522f:	8b 01                	mov    (%ecx),%eax
405231:	51                   	push   %ecx
405232:	8b 70 08             	mov    0x8(%eax),%esi
405235:	8b ce                	mov    %esi,%ecx
405237:	ff 15 20 23 41 00    	call   *0x412320
40523d:	ff d6                	call   *%esi
40523f:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
405242:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
405246:	8d 4d cc             	lea    -0x34(%ebp),%ecx
405249:	ff 15 30 22 41 00    	call   *0x412230
40524f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405253:	8d 4d c8             	lea    -0x38(%ebp),%ecx
405256:	ff 15 30 22 41 00    	call   *0x412230
40525c:	88 5d fc             	mov    %bl,-0x4(%ebp)
40525f:	8d 4d d0             	lea    -0x30(%ebp),%ecx
405262:	ff 15 30 22 41 00    	call   *0x412230
405268:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40526c:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40526f:	ff 15 30 22 41 00    	call   *0x412230
405275:	33 c0                	xor    %eax,%eax
405277:	40                   	inc    %eax
405278:	eb 65                	jmp    0x4052df
40527a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40527d:	85 c9                	test   %ecx,%ecx
40527f:	74 14                	je     0x405295
405281:	8b 01                	mov    (%ecx),%eax
405283:	51                   	push   %ecx
405284:	8b 70 08             	mov    0x8(%eax),%esi
405287:	8b ce                	mov    %esi,%ecx
405289:	ff 15 20 23 41 00    	call   *0x412320
40528f:	ff d6                	call   *%esi
405291:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
405295:	8b 45 98             	mov    -0x68(%ebp),%eax
405298:	8b 48 04             	mov    0x4(%eax),%ecx
40529b:	e8 6a 26 00 00       	call   0x40790a
4052a0:	b8 a6 52 40 00       	mov    $0x4052a6,%eax
4052a5:	c3                   	ret
4052a6:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4052ad:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4052b0:	ff 15 30 22 41 00    	call   *0x412230
4052b6:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4052ba:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4052bd:	ff 15 30 22 41 00    	call   *0x412230
4052c3:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4052c7:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4052ca:	ff 15 30 22 41 00    	call   *0x412230
4052d0:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4052d4:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4052d7:	ff 15 30 22 41 00    	call   *0x412230
4052dd:	33 c0                	xor    %eax,%eax
4052df:	e8 29 a0 00 00       	call   0x40f30d
4052e4:	c2 08 00             	ret    $0x8
4052e7:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4052ea:	85 c9                	test   %ecx,%ecx
4052ec:	74 14                	je     0x405302
4052ee:	8b 01                	mov    (%ecx),%eax
4052f0:	51                   	push   %ecx
4052f1:	8b 70 08             	mov    0x8(%eax),%esi
4052f4:	8b ce                	mov    %esi,%ecx
4052f6:	ff 15 20 23 41 00    	call   *0x412320
4052fc:	ff d6                	call   *%esi
4052fe:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
405302:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
405307:	e8 fe 25 00 00       	call   0x40790a
40530c:	b8 a6 52 40 00       	mov    $0x4052a6,%eax
405311:	c3                   	ret
405312:	8b ce                	mov    %esi,%ecx
405314:	e8 08 34 00 00       	call   0x408721
405319:	cc                   	int3
40531a:	cc                   	int3
40531b:	cc                   	int3
40531c:	cc                   	int3
40531d:	cc                   	int3
40531e:	cc                   	int3
40531f:	cc                   	int3
405320:	6a 08                	push   $0x8
405322:	b8 47 f8 40 00       	mov    $0x40f847,%eax
405327:	e8 23 a0 00 00       	call   0x40f34f
40532c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405330:	74 76                	je     0x4053a8
405332:	8b 7d 18             	mov    0x18(%ebp),%edi
405335:	85 ff                	test   %edi,%edi
405337:	74 6f                	je     0x4053a8
405339:	83 3f 09             	cmpl   $0x9,(%edi)
40533c:	75 6a                	jne    0x4053a8
40533e:	8b 47 0c             	mov    0xc(%edi),%eax
405341:	89 45 ec             	mov    %eax,-0x14(%ebp)
405344:	85 c0                	test   %eax,%eax
405346:	74 60                	je     0x4053a8
405348:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40534c:	6a 5c                	push   $0x5c
40534e:	ff 75 08             	push   0x8(%ebp)
405351:	ff 15 cc 22 41 00    	call   *0x4122cc
405357:	59                   	pop    %ecx
405358:	59                   	pop    %ecx
405359:	8b f0                	mov    %eax,%esi
40535b:	85 f6                	test   %esi,%esi
40535d:	75 05                	jne    0x405364
40535f:	8b 75 08             	mov    0x8(%ebp),%esi
405362:	eb 0a                	jmp    0x40536e
405364:	83 c6 02             	add    $0x2,%esi
405367:	33 c0                	xor    %eax,%eax
405369:	66 39 06             	cmp    %ax,(%esi)
40536c:	74 3a                	je     0x4053a8
40536e:	8b 57 08             	mov    0x8(%edi),%edx
405371:	85 d2                	test   %edx,%edx
405373:	74 10                	je     0x405385
405375:	ff 77 04             	push   0x4(%edi)
405378:	6a 01                	push   $0x1
40537a:	8b ce                	mov    %esi,%ecx
40537c:	e8 19 51 00 00       	call   0x40a49a
405381:	85 c0                	test   %eax,%eax
405383:	75 10                	jne    0x405395
405385:	51                   	push   %ecx
405386:	8b d6                	mov    %esi,%edx
405388:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40538b:	e8 6f 37 00 00       	call   0x408aff
405390:	83 f8 ff             	cmp    $0xffffffff,%eax
405393:	74 13                	je     0x4053a8
405395:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405399:	33 c0                	xor    %eax,%eax
40539b:	40                   	inc    %eax
40539c:	eb 0c                	jmp    0x4053aa
40539e:	b8 a4 53 40 00       	mov    $0x4053a4,%eax
4053a3:	c3                   	ret
4053a4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4053a8:	33 c0                	xor    %eax,%eax
4053aa:	e8 4a 9f 00 00       	call   0x40f2f9
4053af:	c2 14 00             	ret    $0x14
4053b2:	8b ff                	mov    %edi,%edi
4053b4:	53                   	push   %ebx
4053b5:	56                   	push   %esi
4053b6:	57                   	push   %edi
4053b7:	8b f9                	mov    %ecx,%edi
4053b9:	b9 97 00 00 00       	mov    $0x97,%ecx
4053be:	8b 77 50             	mov    0x50(%edi),%esi
4053c1:	e8 8b 46 00 00       	call   0x409a51
4053c6:	8b c8                	mov    %eax,%ecx
4053c8:	e8 68 48 00 00       	call   0x409c35
4053cd:	33 db                	xor    %ebx,%ebx
4053cf:	89 86 00 02 00 00    	mov    %eax,0x200(%esi)
4053d5:	6a 41                	push   $0x41
4053d7:	8d 8e 08 02 00 00    	lea    0x208(%esi),%ecx
4053dd:	c7 86 04 02 00 00 10 	movl   $0x1010,0x204(%esi)
4053e4:	10 00 00
4053e7:	ba 30 12 40 00       	mov    $0x401230,%edx
4053ec:	89 9e 8c 02 00 00    	mov    %ebx,0x28c(%esi)
4053f2:	89 9e 90 02 00 00    	mov    %ebx,0x290(%esi)
4053f8:	e8 f9 4f 00 00       	call   0x40a3f6
4053fd:	68 00 01 00 00       	push   $0x100
405402:	6a 65                	push   $0x65
405404:	59                   	pop    %ecx
405405:	e8 47 46 00 00       	call   0x409a51
40540a:	8b d0                	mov    %eax,%edx
40540c:	8b ce                	mov    %esi,%ecx
40540e:	e8 e3 4f 00 00       	call   0x40a3f6
405413:	8b 77 50             	mov    0x50(%edi),%esi
405416:	b9 98 00 00 00       	mov    $0x98,%ecx
40541b:	81 c6 78 0f 00 00    	add    $0xf78,%esi
405421:	e8 2b 46 00 00       	call   0x409a51
405426:	8b c8                	mov    %eax,%ecx
405428:	e8 08 48 00 00       	call   0x409c35
40542d:	6a 41                	push   $0x41
40542f:	8d 8e 08 02 00 00    	lea    0x208(%esi),%ecx
405435:	89 86 00 02 00 00    	mov    %eax,0x200(%esi)
40543b:	ba 30 12 40 00       	mov    $0x401230,%edx
405440:	c7 86 04 02 00 00 10 	movl   $0x101010,0x204(%esi)
405447:	10 10 00
40544a:	89 9e 8c 02 00 00    	mov    %ebx,0x28c(%esi)
405450:	89 9e 90 02 00 00    	mov    %ebx,0x290(%esi)
405456:	e8 9b 4f 00 00       	call   0x40a3f6
40545b:	68 00 01 00 00       	push   $0x100
405460:	6a 66                	push   $0x66
405462:	59                   	pop    %ecx
405463:	e8 e9 45 00 00       	call   0x409a51
405468:	8b d0                	mov    %eax,%edx
40546a:	8b ce                	mov    %esi,%ecx
40546c:	e8 85 4f 00 00       	call   0x40a3f6
405471:	8b 77 50             	mov    0x50(%edi),%esi
405474:	b9 a6 00 00 00       	mov    $0xa6,%ecx
405479:	81 c6 94 02 00 00    	add    $0x294,%esi
40547f:	39 5f 18             	cmp    %ebx,0x18(%edi)
405482:	75 03                	jne    0x405487
405484:	83 c1 f3             	add    $0xfffffff3,%ecx
405487:	e8 c5 45 00 00       	call   0x409a51
40548c:	8b c8                	mov    %eax,%ecx
40548e:	e8 a2 47 00 00       	call   0x409c35
405493:	6a 41                	push   $0x41
405495:	8d 8e 08 02 00 00    	lea    0x208(%esi),%ecx
40549b:	89 86 00 02 00 00    	mov    %eax,0x200(%esi)
4054a1:	ba 30 12 40 00       	mov    $0x401230,%edx
4054a6:	c7 86 04 02 00 00 10 	movl   $0x1010,0x204(%esi)
4054ad:	10 00 00
4054b0:	89 9e 8c 02 00 00    	mov    %ebx,0x28c(%esi)
4054b6:	89 9e 90 02 00 00    	mov    %ebx,0x290(%esi)
4054bc:	e8 35 4f 00 00       	call   0x40a3f6
4054c1:	68 00 01 00 00       	push   $0x100
4054c6:	6a 67                	push   $0x67
4054c8:	59                   	pop    %ecx
4054c9:	e8 83 45 00 00       	call   0x409a51
4054ce:	8b d0                	mov    %eax,%edx
4054d0:	8b ce                	mov    %esi,%ecx
4054d2:	e8 1f 4f 00 00       	call   0x40a3f6
4054d7:	8b 77 50             	mov    0x50(%edi),%esi
4054da:	b9 9a 00 00 00       	mov    $0x9a,%ecx
4054df:	81 c6 28 05 00 00    	add    $0x528,%esi
4054e5:	e8 67 45 00 00       	call   0x409a51
4054ea:	8b c8                	mov    %eax,%ecx
4054ec:	e8 44 47 00 00       	call   0x409c35
4054f1:	6a 41                	push   $0x41
4054f3:	8d 8e 08 02 00 00    	lea    0x208(%esi),%ecx
4054f9:	89 86 00 02 00 00    	mov    %eax,0x200(%esi)
4054ff:	ba 30 12 40 00       	mov    $0x401230,%edx
405504:	c7 86 04 02 00 00 20 	movl   $0x1020,0x204(%esi)
40550b:	10 00 00
40550e:	89 9e 8c 02 00 00    	mov    %ebx,0x28c(%esi)
405514:	89 9e 90 02 00 00    	mov    %ebx,0x290(%esi)
40551a:	e8 d7 4e 00 00       	call   0x40a3f6
40551f:	68 00 01 00 00       	push   $0x100
405524:	6a 68                	push   $0x68
405526:	59                   	pop    %ecx
405527:	e8 25 45 00 00       	call   0x409a51
40552c:	8b d0                	mov    %eax,%edx
40552e:	8b ce                	mov    %esi,%ecx
405530:	e8 c1 4e 00 00       	call   0x40a3f6
405535:	8b 77 50             	mov    0x50(%edi),%esi
405538:	b9 a2 00 00 00       	mov    $0xa2,%ecx
40553d:	81 c6 bc 07 00 00    	add    $0x7bc,%esi
405543:	e8 09 45 00 00       	call   0x409a51
405548:	8b c8                	mov    %eax,%ecx
40554a:	e8 e6 46 00 00       	call   0x409c35
40554f:	6a 41                	push   $0x41
405551:	8d 8e 08 02 00 00    	lea    0x208(%esi),%ecx
405557:	89 86 00 02 00 00    	mov    %eax,0x200(%esi)
40555d:	ba 30 12 40 00       	mov    $0x401230,%edx
405562:	c7 86 04 02 00 00 10 	movl   $0x1010,0x204(%esi)
405569:	10 00 00
40556c:	89 9e 8c 02 00 00    	mov    %ebx,0x28c(%esi)
405572:	89 9e 90 02 00 00    	mov    %ebx,0x290(%esi)
405578:	e8 79 4e 00 00       	call   0x40a3f6
40557d:	68 00 01 00 00       	push   $0x100
405582:	6a 6f                	push   $0x6f
405584:	59                   	pop    %ecx
405585:	e8 c7 44 00 00       	call   0x409a51
40558a:	8b d0                	mov    %eax,%edx
40558c:	8b ce                	mov    %esi,%ecx
40558e:	e8 63 4e 00 00       	call   0x40a3f6
405593:	8b 77 50             	mov    0x50(%edi),%esi
405596:	bb 10 10 01 00       	mov    $0x11010,%ebx
40559b:	83 a6 dc 0c 00 00 00 	andl   $0x0,0xcdc(%esi)
4055a2:	81 c6 50 0a 00 00    	add    $0xa50,%esi
4055a8:	6a 41                	push   $0x41
4055aa:	ba 30 12 40 00       	mov    $0x401230,%edx