4051e0:	c9                   	leave
4051e1:	c2 04 00             	ret    $0x4
4051e4:	55                   	push   %ebp
4051e5:	8b ec                	mov    %esp,%ebp
4051e7:	b8 40 00 01 00       	mov    $0x10040,%eax
4051ec:	e8 3f bf ff ff       	call   0x401130
4051f1:	53                   	push   %ebx
4051f2:	8b d9                	mov    %ecx,%ebx
4051f4:	56                   	push   %esi
4051f5:	57                   	push   %edi
4051f6:	83 7b 0c ff          	cmpl   $0xffffffff,0xc(%ebx)
4051fa:	0f 84 88 01 00 00    	je     0x405388
405200:	6a 04                	push   $0x4
405202:	8d 45 e8             	lea    -0x18(%ebp),%eax
405205:	c7 45 e8 60 ea 00 00 	movl   $0xea60,-0x18(%ebp)
40520c:	50                   	push   %eax
40520d:	68 06 10 00 00       	push   $0x1006
405212:	be ff ff 00 00       	mov    $0xffff,%esi
405217:	56                   	push   %esi
405218:	ff 73 0c             	push   0xc(%ebx)
40521b:	ff 15 04 23 41 00    	call   *0x412304
405221:	56                   	push   %esi
405222:	33 f6                	xor    %esi,%esi
405224:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
40522a:	56                   	push   %esi
40522b:	50                   	push   %eax
40522c:	e8 21 be ff ff       	call   0x401052
405231:	83 c4 0c             	add    $0xc,%esp
405234:	89 75 c8             	mov    %esi,-0x38(%ebp)
405237:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40523a:	89 75 cc             	mov    %esi,-0x34(%ebp)
40523d:	68 fc 27 41 00       	push   $0x4127fc
405242:	e8 a5 df ff ff       	call   0x4031ec
405247:	50                   	push   %eax
405248:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40524b:	e8 e3 db ff ff       	call   0x402e33
405250:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405253:	e8 d5 07 00 00       	call   0x405a2d
405258:	89 75 f4             	mov    %esi,-0xc(%ebp)
40525b:	89 75 f8             	mov    %esi,-0x8(%ebp)
40525e:	56                   	push   %esi
40525f:	6a 0c                	push   $0xc
405261:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
405267:	50                   	push   %eax
405268:	ff 73 0c             	push   0xc(%ebx)
40526b:	ff 15 10 23 41 00    	call   *0x412310
405271:	8b f8                	mov    %eax,%edi
405273:	83 ff 0c             	cmp    $0xc,%edi
405276:	75 7d                	jne    0x4052f5
405278:	50                   	push   %eax
405279:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
40527f:	89 75 ec             	mov    %esi,-0x14(%ebp)
405282:	50                   	push   %eax
405283:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405286:	89 75 f0             	mov    %esi,-0x10(%ebp)
405289:	e8 33 db ff ff       	call   0x402dc1
40528e:	51                   	push   %ecx
40528f:	51                   	push   %ecx
405290:	8d 45 ec             	lea    -0x14(%ebp),%eax
405293:	8b cc                	mov    %esp,%ecx
405295:	50                   	push   %eax
405296:	e8 de db ff ff       	call   0x402e79
40529b:	51                   	push   %ecx
40529c:	51                   	push   %ecx
40529d:	8d 45 d8             	lea    -0x28(%ebp),%eax
4052a0:	8b cc                	mov    %esp,%ecx
4052a2:	50                   	push   %eax
4052a3:	e8 d1 db ff ff       	call   0x402e79
4052a8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4052ab:	e8 82 09 00 00       	call   0x405c32
4052b0:	8b 45 d0             	mov    -0x30(%ebp),%eax
4052b3:	83 c4 10             	add    $0x10,%esp
4052b6:	8b 40 04             	mov    0x4(%eax),%eax
4052b9:	8d 70 0c             	lea    0xc(%eax),%esi
4052bc:	85 c0                	test   %eax,%eax
4052be:	74 23                	je     0x4052e3
4052c0:	3b f7                	cmp    %edi,%esi
4052c2:	74 1f                	je     0x4052e3
4052c4:	6a 00                	push   $0x0
4052c6:	8b c6                	mov    %esi,%eax
4052c8:	2b c7                	sub    %edi,%eax
4052ca:	50                   	push   %eax
4052cb:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
4052d1:	03 c7                	add    %edi,%eax
4052d3:	50                   	push   %eax
4052d4:	ff 73 0c             	push   0xc(%ebx)
4052d7:	ff 15 10 23 41 00    	call   *0x412310
4052dd:	03 f8                	add    %eax,%edi
4052df:	3b f7                	cmp    %edi,%esi
4052e1:	75 e1                	jne    0x4052c4
4052e3:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4052e6:	e8 7b db ff ff       	call   0x402e66
4052eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4052ee:	e8 73 db ff ff       	call   0x402e66
4052f3:	eb 05                	jmp    0x4052fa
4052f5:	83 ff ff             	cmp    $0xffffffff,%edi
4052f8:	74 76                	je     0x405370
4052fa:	57                   	push   %edi
4052fb:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
405301:	50                   	push   %eax
405302:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405305:	e8 b7 da ff ff       	call   0x402dc1
40530a:	51                   	push   %ecx
40530b:	51                   	push   %ecx
40530c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40530f:	8b cc                	mov    %esp,%ecx
405311:	50                   	push   %eax
405312:	e8 62 db ff ff       	call   0x402e79
405317:	51                   	push   %ecx
405318:	51                   	push   %ecx
405319:	8d 45 d8             	lea    -0x28(%ebp),%eax
40531c:	8b cc                	mov    %esp,%ecx
40531e:	50                   	push   %eax
40531f:	e8 55 db ff ff       	call   0x402e79
405324:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405327:	e8 06 09 00 00       	call   0x405c32
40532c:	83 c4 10             	add    $0x10,%esp
40532f:	8d 4b 10             	lea    0x10(%ebx),%ecx
405332:	e8 bc da ff ff       	call   0x402df3
405337:	57                   	push   %edi
405338:	ff 75 e0             	push   -0x20(%ebp)
40533b:	8d 4b 10             	lea    0x10(%ebx),%ecx
40533e:	e8 7e da ff ff       	call   0x402dc1
405343:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405346:	e8 a8 da ff ff       	call   0x402df3
40534b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40534e:	e8 a0 da ff ff       	call   0x402df3
405353:	ff 75 08             	push   0x8(%ebp)
405356:	8b cb                	mov    %ebx,%ecx
405358:	e8 30 f8 ff ff       	call   0x404b8d
40535d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405360:	e8 01 db ff ff       	call   0x402e66
405365:	6a 00                	push   $0x0
405367:	5e                   	pop    %esi
405368:	85 ff                	test   %edi,%edi
40536a:	0f 8f ee fe ff ff    	jg     0x40525e
405370:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405373:	e8 ee da ff ff       	call   0x402e66
405378:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40537b:	e8 e6 da ff ff       	call   0x402e66
405380:	8d 4d c8             	lea    -0x38(%ebp),%ecx
405383:	e8 de da ff ff       	call   0x402e66
405388:	5f                   	pop    %edi
405389:	5e                   	pop    %esi
40538a:	5b                   	pop    %ebx
40538b:	c9                   	leave
40538c:	c2 04 00             	ret    $0x4
40538f:	55                   	push   %ebp
405390:	8b ec                	mov    %esp,%ebp
405392:	83 ec 24             	sub    $0x24,%esp
405395:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405399:	8d 45 08             	lea    0x8(%ebp),%eax
40539c:	53                   	push   %ebx
40539d:	56                   	push   %esi
40539e:	57                   	push   %edi
40539f:	50                   	push   %eax
4053a0:	8b d9                	mov    %ecx,%ebx
4053a2:	e8 ab db ff ff       	call   0x402f52
4053a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4053aa:	8d 8b d8 01 00 00    	lea    0x1d8(%ebx),%ecx
4053b0:	89 43 04             	mov    %eax,0x4(%ebx)
4053b3:	e8 55 8e 00 00       	call   0x40e20d
4053b8:	6a 08                	push   $0x8
4053ba:	59                   	pop    %ecx
4053bb:	33 c0                	xor    %eax,%eax
4053bd:	8d 7d dc             	lea    -0x24(%ebp),%edi
4053c0:	f3 ab                	rep stos %eax,%es:(%edi)
4053c2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4053c5:	c7 45 e8 06 00 00 00 	movl   $0x6,-0x18(%ebp)
4053cc:	50                   	push   %eax
4053cd:	8d 45 dc             	lea    -0x24(%ebp),%eax
4053d0:	33 ff                	xor    %edi,%edi
4053d2:	50                   	push   %eax
4053d3:	6a 00                	push   $0x0
4053d5:	ff 75 08             	push   0x8(%ebp)
4053d8:	47                   	inc    %edi
4053d9:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4053dc:	ff 15 00 23 41 00    	call   *0x412300
4053e2:	85 c0                	test   %eax,%eax
4053e4:	75 5d                	jne    0x405443
4053e6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4053e9:	6a 00                	push   $0x0
4053eb:	57                   	push   %edi
4053ec:	6a 02                	push   $0x2
4053ee:	8b 70 18             	mov    0x18(%eax),%esi
4053f1:	58                   	pop    %eax
4053f2:	50                   	push   %eax
4053f3:	ff 15 18 23 41 00    	call   *0x412318
4053f9:	89 43 0c             	mov    %eax,0xc(%ebx)
4053fc:	83 f8 ff             	cmp    $0xffffffff,%eax
4053ff:	74 42                	je     0x405443
405401:	8b 46 04             	mov    0x4(%esi),%eax
405404:	8d b3 c8 01 00 00    	lea    0x1c8(%ebx),%esi
40540a:	6a 02                	push   $0x2
40540c:	89 83 cc 01 00 00    	mov    %eax,0x1cc(%ebx)
405412:	58                   	pop    %eax
405413:	ff 75 0c             	push   0xc(%ebp)
405416:	66 89 06             	mov    %ax,(%esi)
405419:	ff 15 0c 23 41 00    	call   *0x41230c
40541f:	ff 75 fc             	push   -0x4(%ebp)
405422:	66 89 83 ca 01 00 00 	mov    %ax,0x1ca(%ebx)
405429:	ff 15 08 23 41 00    	call   *0x412308
40542f:	6a 10                	push   $0x10
405431:	56                   	push   %esi
405432:	ff 73 0c             	push   0xc(%ebx)
405435:	ff 15 14 23 41 00    	call   *0x412314
40543b:	83 f8 ff             	cmp    $0xffffffff,%eax
40543e:	75 16                	jne    0x405456
405440:	09 43 0c             	or     %eax,0xc(%ebx)
405443:	33 ff                	xor    %edi,%edi
405445:	8b 4d 08             	mov    0x8(%ebp),%ecx
405448:	e8 e0 05 00 00       	call   0x405a2d
40544d:	8b c7                	mov    %edi,%eax
40544f:	5f                   	pop    %edi
405450:	5e                   	pop    %esi
405451:	5b                   	pop    %ebx
405452:	c9                   	leave
405453:	c2 08 00             	ret    $0x8
405456:	ff b3 d8 01 00 00    	push   0x1d8(%ebx)
40545c:	89 7b 08             	mov    %edi,0x8(%ebx)
40545f:	ff 15 50 21 41 00    	call   *0x412150
405465:	eb de                	jmp    0x405445
405467:	56                   	push   %esi
405468:	57                   	push   %edi
405469:	8b f1                	mov    %ecx,%esi
40546b:	e8 80 db ff ff       	call   0x402ff0
405470:	33 ff                	xor    %edi,%edi
405472:	89 7e 10             	mov    %edi,0x10(%esi)
405475:	89 7e 14             	mov    %edi,0x14(%esi)
405478:	51                   	push   %ecx
405479:	8d 8e d8 01 00 00    	lea    0x1d8(%esi),%ecx
40547f:	89 7e 30             	mov    %edi,0x30(%esi)
405482:	89 7e 34             	mov    %edi,0x34(%esi)
405485:	e8 ac 8d 00 00       	call   0x40e236
40548a:	8d 46 38             	lea    0x38(%esi),%eax
40548d:	50                   	push   %eax
40548e:	6a 02                	push   $0x2
405490:	ff 15 e0 22 41 00    	call   *0x4122e0
405496:	83 4e 0c ff          	orl    $0xffffffff,0xc(%esi)
40549a:	8b c6                	mov    %esi,%eax
40549c:	89 7e 18             	mov    %edi,0x18(%esi)
40549f:	89 7e 24             	mov    %edi,0x24(%esi)
4054a2:	5f                   	pop    %edi
4054a3:	5e                   	pop    %esi
4054a4:	c3                   	ret
4054a5:	55                   	push   %ebp
4054a6:	8b ec                	mov    %esp,%ebp
4054a8:	51                   	push   %ecx
4054a9:	51                   	push   %ecx
4054aa:	56                   	push   %esi
4054ab:	8b f1                	mov    %ecx,%esi
4054ad:	57                   	push   %edi
4054ae:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4054b2:	8d 7e 08             	lea    0x8(%esi),%edi
4054b5:	75 29                	jne    0x4054e0
4054b7:	8d 4e 44             	lea    0x44(%esi),%ecx
4054ba:	8b 01                	mov    (%ecx),%eax
4054bc:	ff 30                	push   (%eax)
4054be:	8d 45 f8             	lea    -0x8(%ebp),%eax
4054c1:	6a 04                	push   $0x4
4054c3:	50                   	push   %eax
4054c4:	e8 bc d7 ff ff       	call   0x402c85
4054c9:	50                   	push   %eax
4054ca:	8b cf                	mov    %edi,%ecx
4054cc:	e8 fb d7 ff ff       	call   0x402ccc
4054d1:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4054d4:	e8 8d d9 ff ff       	call   0x402e66
4054d9:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
4054e0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4054e3:	57                   	push   %edi
4054e4:	e8 90 d9 ff ff       	call   0x402e79
4054e9:	8b 45 08             	mov    0x8(%ebp),%eax
4054ec:	5f                   	pop    %edi
4054ed:	5e                   	pop    %esi
4054ee:	c9                   	leave
4054ef:	c2 04 00             	ret    $0x4
4054f2:	55                   	push   %ebp
4054f3:	8b ec                	mov    %esp,%ebp
4054f5:	83 ec 10             	sub    $0x10,%esp
4054f8:	56                   	push   %esi
4054f9:	8b f1                	mov    %ecx,%esi
4054fb:	8d 4e 44             	lea    0x44(%esi),%ecx
4054fe:	8b 01                	mov    (%ecx),%eax
405500:	8b 10                	mov    (%eax),%edx
405502:	8b 46 48             	mov    0x48(%esi),%eax
405505:	2b c2                	sub    %edx,%eax
405507:	83 e8 04             	sub    $0x4,%eax
40550a:	50                   	push   %eax
40550b:	8d 42 04             	lea    0x4(%edx),%eax
40550e:	50                   	push   %eax
40550f:	8d 45 f4             	lea    -0xc(%ebp),%eax
405512:	50                   	push   %eax
405513:	e8 6d d7 ff ff       	call   0x402c85
405518:	51                   	push   %ecx
405519:	51                   	push   %ecx
40551a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40551d:	8b cc                	mov    %esp,%ecx
40551f:	50                   	push   %eax
405520:	e8 54 d9 ff ff       	call   0x402e79
405525:	51                   	push   %ecx
405526:	51                   	push   %ecx
405527:	54                   	push   %esp
405528:	8b ce                	mov    %esi,%ecx
40552a:	e8 76 ff ff ff       	call   0x4054a5
40552f:	8b 4d 08             	mov    0x8(%ebp),%ecx
405532:	e8 fb 06 00 00       	call   0x405c32
405537:	83 c4 10             	add    $0x10,%esp
40553a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40553d:	e8 24 d9 ff ff       	call   0x402e66
405542:	8b 45 08             	mov    0x8(%ebp),%eax
405545:	5e                   	pop    %esi
405546:	c9                   	leave
405547:	c2 04 00             	ret    $0x4
40554a:	8b 41 40             	mov    0x40(%ecx),%eax
40554d:	c3                   	ret
40554e:	8b 41 3c             	mov    0x3c(%ecx),%eax
405551:	c3                   	ret
405552:	8b 41 38             	mov    0x38(%ecx),%eax
405555:	c3                   	ret
405556:	55                   	push   %ebp
405557:	8b ec                	mov    %esp,%ebp
405559:	8d 41 30             	lea    0x30(%ecx),%eax
40555c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40555f:	50                   	push   %eax
405560:	e8 f5 de ff ff       	call   0x40345a
405565:	8b 45 08             	mov    0x8(%ebp),%eax
405568:	5d                   	pop    %ebp
405569:	c2 04 00             	ret    $0x4
40556c:	55                   	push   %ebp
40556d:	8b ec                	mov    %esp,%ebp
40556f:	8d 41 24             	lea    0x24(%ecx),%eax
405572:	8b 4d 08             	mov    0x8(%ebp),%ecx
405575:	50                   	push   %eax
405576:	e8 df de ff ff       	call   0x40345a
40557b:	8b 45 08             	mov    0x8(%ebp),%eax
40557e:	5d                   	pop    %ebp
40557f:	c2 04 00             	ret    $0x4
405582:	8b 41 20             	mov    0x20(%ecx),%eax
405585:	c3                   	ret
405586:	55                   	push   %ebp
405587:	8b ec                	mov    %esp,%ebp
405589:	8d 41 1c             	lea    0x1c(%ecx),%eax
40558c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40558f:	50                   	push   %eax
405590:	e8 c5 de ff ff       	call   0x40345a
405595:	8b 45 08             	mov    0x8(%ebp),%eax
405598:	5d                   	pop    %ebp
405599:	c2 04 00             	ret    $0x4
40559c:	8b 41 18             	mov    0x18(%ecx),%eax
40559f:	c3                   	ret