40f4e0:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f4e7:	00 00 00
40f4ea:	51                   	push   %ecx
40f4eb:	8b 30                	mov    (%eax),%esi
40f4ed:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f4f3:	51                   	push   %ecx
40f4f4:	6a 00                	push   $0x0
40f4f6:	68 ec 66 40 00       	push   $0x4066ec
40f4fb:	8b 76 10             	mov    0x10(%esi),%esi
40f4fe:	8b ce                	mov    %esi,%ecx
40f500:	50                   	push   %eax
40f501:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f508:	00 00 00
40f50b:	ff 15 c4 12 45 00    	call   *0x4512c4
40f511:	ff d6                	call   *%esi
40f513:	85 c0                	test   %eax,%eax
40f515:	0f 88 15 9a 01 00    	js     0x428f30
40f51b:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f522:	66 83 f8 08          	cmp    $0x8,%ax
40f526:	0f 85 fc 99 01 00    	jne    0x428f28
40f52c:	ff b7 50 06 00 00    	push   0x650(%edi)
40f532:	8b 8d d0 fb ff ff    	mov    -0x430(%ebp),%ecx
40f538:	8d 87 84 06 00 00    	lea    0x684(%edi),%eax
40f53e:	ff b5 b4 fb ff ff    	push   -0x44c(%ebp)
40f544:	8d 97 78 06 00 00    	lea    0x678(%edi),%edx
40f54a:	50                   	push   %eax
40f54b:	8d 87 7c 06 00 00    	lea    0x67c(%edi),%eax
40f551:	50                   	push   %eax
40f552:	e8 69 0c 00 00       	call   0x4101c0
40f557:	8b d8                	mov    %eax,%ebx
40f559:	85 db                	test   %ebx,%ebx
40f55b:	0f 88 bd 99 01 00    	js     0x428f1e
40f561:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f567:	50                   	push   %eax
40f568:	ff 15 1c 30 45 00    	call   *0x45301c
40f56e:	85 db                	test   %ebx,%ebx
40f570:	0f 88 a7 00 00 00    	js     0x40f61d
40f576:	8b 87 78 06 00 00    	mov    0x678(%edi),%eax
40f57c:	83 f8 04             	cmp    $0x4,%eax
40f57f:	74 0f                	je     0x40f590
40f581:	83 f8 0a             	cmp    $0xa,%eax
40f584:	74 0a                	je     0x40f590
40f586:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
40f58a:	0f 84 fc 99 01 00    	je     0x428f8c
40f590:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f596:	50                   	push   %eax
40f597:	ff 15 00 30 45 00    	call   *0x453000
40f59d:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f5a3:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f5a9:	51                   	push   %ecx
40f5aa:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f5b0:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f5b7:	00 00 00
40f5ba:	51                   	push   %ecx
40f5bb:	8b 30                	mov    (%eax),%esi
40f5bd:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f5c3:	51                   	push   %ecx
40f5c4:	6a 00                	push   $0x0
40f5c6:	68 c4 66 40 00       	push   $0x4066c4
40f5cb:	8b 76 10             	mov    0x10(%esi),%esi
40f5ce:	8b ce                	mov    %esi,%ecx
40f5d0:	50                   	push   %eax
40f5d1:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f5d8:	00 00 00
40f5db:	ff 15 c4 12 45 00    	call   *0x4512c4
40f5e1:	ff d6                	call   *%esi
40f5e3:	85 c0                	test   %eax,%eax
40f5e5:	0f 88 d4 99 01 00    	js     0x428fbf
40f5eb:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f5f2:	66 83 f8 08          	cmp    $0x8,%ax
40f5f6:	0f 84 9a 99 01 00    	je     0x428f96
40f5fc:	66 83 f8 01          	cmp    $0x1,%ax
40f600:	0f 85 af 99 01 00    	jne    0x428fb5
40f606:	c7 87 e0 06 00 00 00 	movl   $0x0,0x6e0(%edi)
40f60d:	00 00 00
40f610:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f616:	50                   	push   %eax
40f617:	ff 15 1c 30 45 00    	call   *0x45301c
40f61d:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40f623:	85 c0                	test   %eax,%eax
40f625:	74 07                	je     0x40f62e
40f627:	50                   	push   %eax
40f628:	ff 15 0c 30 45 00    	call   *0x45300c
40f62e:	8b c3                	mov    %ebx,%eax
40f630:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f633:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f63a:	59                   	pop    %ecx
40f63b:	5f                   	pop    %edi
40f63c:	5e                   	pop    %esi
40f63d:	5b                   	pop    %ebx
40f63e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f641:	33 cd                	xor    %ebp,%ecx
40f643:	e8 c8 fc 00 00       	call   0x41f310
40f648:	8b e5                	mov    %ebp,%esp
40f64a:	5d                   	pop    %ebp
40f64b:	c2 10 00             	ret    $0x10
40f64e:	8d 41 20             	lea    0x20(%ecx),%eax
40f651:	0f b7 f8             	movzwl %ax,%edi
40f654:	e9 6f f2 ff ff       	jmp    0x40e8c8
40f659:	8b 87 90 06 00 00    	mov    0x690(%edi),%eax
40f65f:	85 c0                	test   %eax,%eax
40f661:	0f 85 07 94 01 00    	jne    0x428a6e
40f667:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40f66d:	ff 15 10 30 45 00    	call   *0x453010
40f673:	89 87 90 06 00 00    	mov    %eax,0x690(%edi)
40f679:	85 c0                	test   %eax,%eax
40f67b:	0f 84 03 94 01 00    	je     0x428a84
40f681:	8d 8d 24 fb ff ff    	lea    -0x4dc(%ebp),%ecx
40f687:	e8 df d8 ff ff       	call   0x40cf6b
40f68c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40f693:	ff b7 90 06 00 00    	push   0x690(%edi)
40f699:	e8 32 ac 00 00       	call   0x41a2d0
40f69e:	85 c0                	test   %eax,%eax
40f6a0:	0f 88 d4 93 01 00    	js     0x428a7a
40f6a6:	33 db                	xor    %ebx,%ebx
40f6a8:	66 83 bd 38 fb ff ff 	cmpw   $0xffff,-0x4c8(%ebp)
40f6af:	ff
40f6b0:	0f 85 c4 93 01 00    	jne    0x428a7a
40f6b6:	8b 85 44 fb ff ff    	mov    -0x4bc(%ebp),%eax
40f6bc:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40f6bf:	8b 85 48 fb ff ff    	mov    -0x4b8(%ebp),%eax
40f6c5:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
40f6c8:	8b c8                	mov    %eax,%ecx
40f6ca:	c1 e1 04             	shl    $0x4,%ecx
40f6cd:	2b c8                	sub    %eax,%ecx
40f6cf:	8b 85 4c fb ff ff    	mov    -0x4b4(%ebp),%eax
40f6d5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40f6d8:	8b c8                	mov    %eax,%ecx
40f6da:	c1 e1 04             	shl    $0x4,%ecx
40f6dd:	2b c8                	sub    %eax,%ecx
40f6df:	8b 85 50 fb ff ff    	mov    -0x4b0(%ebp),%eax
40f6e5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40f6e8:	69 c8 e8 03 00 00    	imul   $0x3e8,%eax,%ecx
40f6ee:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
40f6f3:	f7 ad 54 fb ff ff    	imull  -0x4ac(%ebp)
40f6f9:	c1 fa 06             	sar    $0x6,%edx
40f6fc:	8b c2                	mov    %edx,%eax
40f6fe:	03 ca                	add    %edx,%ecx
40f700:	c1 e8 1f             	shr    $0x1f,%eax
40f703:	03 c1                	add    %ecx,%eax
40f705:	89 87 94 06 00 00    	mov    %eax,0x694(%edi)
40f70b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40f712:	c7 85 24 fb ff ff d0 	movl   $0x4013d0,-0x4dc(%ebp)
40f719:	13 40 00
40f71c:	e9 f7 f5 ff ff       	jmp    0x40ed18
40f721:	c7 87 54 06 00 00 00 	movl   $0x0,0x654(%edi)
40f728:	00 00 00
40f72b:	e9 8b f6 ff ff       	jmp    0x40edbb
40f730:	8d 87 c0 06 00 00    	lea    0x6c0(%edi),%eax
40f736:	50                   	push   %eax
40f737:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40f73d:	ff 15 50 30 45 00    	call   *0x453050
40f743:	8b d8                	mov    %eax,%ebx
40f745:	85 db                	test   %ebx,%ebx
40f747:	0f 89 99 f4 ff ff    	jns    0x40ebe6
40f74d:	e9 99 92 01 00       	jmp    0x4289eb
40f752:	8b 85 d0 fb ff ff    	mov    -0x430(%ebp),%eax
40f758:	89 87 50 06 00 00    	mov    %eax,0x650(%edi)
40f75e:	e9 a4 ed ff ff       	jmp    0x40e507
40f763:	66 83 bd d0 fb ff ff 	cmpw   $0xffff,-0x430(%ebp)
40f76a:	ff
40f76b:	74 0d                	je     0x40f77a
40f76d:	33 c0                	xor    %eax,%eax
40f76f:	89 87 5c 06 00 00    	mov    %eax,0x65c(%edi)
40f775:	e9 6c fb ff ff       	jmp    0x40f2e6
40f77a:	b8 01 00 00 00       	mov    $0x1,%eax
40f77f:	eb ee                	jmp    0x40f76f
40f781:	cc                   	int3
40f782:	cc                   	int3
40f783:	cc                   	int3
40f784:	cc                   	int3
40f785:	cc                   	int3
40f786:	cc                   	int3
40f787:	cc                   	int3
40f788:	cc                   	int3
40f789:	cc                   	int3
40f78a:	cc                   	int3
40f78b:	cc                   	int3
40f78c:	cc                   	int3
40f78d:	cc                   	int3
40f78e:	cc                   	int3
40f78f:	cc                   	int3
40f790:	8b ff                	mov    %edi,%edi
40f792:	55                   	push   %ebp
40f793:	8b ec                	mov    %esp,%ebp
40f795:	83 ec 0c             	sub    $0xc,%esp
40f798:	53                   	push   %ebx
40f799:	56                   	push   %esi
40f79a:	57                   	push   %edi
40f79b:	8b 7d 08             	mov    0x8(%ebp),%edi
40f79e:	33 f6                	xor    %esi,%esi
40f7a0:	85 ff                	test   %edi,%edi
40f7a2:	74 29                	je     0x40f7cd
40f7a4:	8d 55 0c             	lea    0xc(%ebp),%edx
40f7a7:	8b 4a 04             	mov    0x4(%edx),%ecx
40f7aa:	8d 52 04             	lea    0x4(%edx),%edx
40f7ad:	85 c9                	test   %ecx,%ecx
40f7af:	74 14                	je     0x40f7c5
40f7b1:	8d 59 02             	lea    0x2(%ecx),%ebx
40f7b4:	66 8b 01             	mov    (%ecx),%ax
40f7b7:	83 c1 02             	add    $0x2,%ecx
40f7ba:	66 85 c0             	test   %ax,%ax
40f7bd:	75 f5                	jne    0x40f7b4
40f7bf:	2b cb                	sub    %ebx,%ecx
40f7c1:	d1 f9                	sar    $1,%ecx
40f7c3:	03 f1                	add    %ecx,%esi
40f7c5:	83 ef 01             	sub    $0x1,%edi
40f7c8:	75 dd                	jne    0x40f7a7
40f7ca:	8b 7d 08             	mov    0x8(%ebp),%edi
40f7cd:	8d 46 01             	lea    0x1(%esi),%eax
40f7d0:	50                   	push   %eax
40f7d1:	6a 00                	push   $0x0
40f7d3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f7d6:	ff 15 20 30 45 00    	call   *0x453020
40f7dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f7df:	89 01                	mov    %eax,(%ecx)
40f7e1:	85 c0                	test   %eax,%eax
40f7e3:	0f 84 f5 97 01 00    	je     0x428fde
40f7e9:	33 f6                	xor    %esi,%esi
40f7eb:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f7ee:	85 ff                	test   %edi,%edi
40f7f0:	0f 84 96 00 00 00    	je     0x40f88c
40f7f6:	8d 45 0c             	lea    0xc(%ebp),%eax
40f7f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f800:	8b 58 04             	mov    0x4(%eax),%ebx
40f803:	83 c0 04             	add    $0x4,%eax
40f806:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f809:	85 db                	test   %ebx,%ebx
40f80b:	74 73                	je     0x40f880
40f80d:	8b 01                	mov    (%ecx),%eax
40f80f:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f812:	8d 04 70             	lea    (%eax,%esi,2),%eax
40f815:	2b d6                	sub    %esi,%edx
40f817:	0f 84 b4 97 01 00    	je     0x428fd1
40f81d:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40f823:	0f 87 a8 97 01 00    	ja     0x428fd1
40f829:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40f82e:	8b fb                	mov    %ebx,%edi
40f830:	2b f2                	sub    %edx,%esi
40f832:	2b f8                	sub    %eax,%edi
40f834:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
40f837:	85 c9                	test   %ecx,%ecx
40f839:	74 19                	je     0x40f854
40f83b:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40f83f:	66 85 c9             	test   %cx,%cx
40f842:	74 10                	je     0x40f854
40f844:	66 89 08             	mov    %cx,(%eax)
40f847:	83 c0 02             	add    $0x2,%eax
40f84a:	83 ea 01             	sub    $0x1,%edx
40f84d:	75 e5                	jne    0x40f834
40f84f:	83 e8 02             	sub    $0x2,%eax
40f852:	eb 04                	jmp    0x40f858
40f854:	85 d2                	test   %edx,%edx
40f856:	74 f7                	je     0x40f84f
40f858:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f85b:	8b 7d 08             	mov    0x8(%ebp),%edi
40f85e:	33 c9                	xor    %ecx,%ecx
40f860:	66 89 08             	mov    %cx,(%eax)
40f863:	8d 4b 02             	lea    0x2(%ebx),%ecx
40f866:	66 8b 03             	mov    (%ebx),%ax
40f869:	83 c3 02             	add    $0x2,%ebx
40f86c:	66 85 c0             	test   %ax,%ax
40f86f:	75 f5                	jne    0x40f866
40f871:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f874:	2b d9                	sub    %ecx,%ebx
40f876:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f879:	d1 fb                	sar    $1,%ebx
40f87b:	03 f3                	add    %ebx,%esi
40f87d:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f880:	83 ef 01             	sub    $0x1,%edi
40f883:	89 7d 08             	mov    %edi,0x8(%ebp)
40f886:	0f 85 74 ff ff ff    	jne    0x40f800
40f88c:	8b 09                	mov    (%ecx),%ecx
40f88e:	33 d2                	xor    %edx,%edx
40f890:	33 c0                	xor    %eax,%eax
40f892:	66 89 14 71          	mov    %dx,(%ecx,%esi,2)
40f896:	5f                   	pop    %edi
40f897:	5e                   	pop    %esi
40f898:	5b                   	pop    %ebx
40f899:	8b e5                	mov    %ebp,%esp
40f89b:	5d                   	pop    %ebp
40f89c:	c3                   	ret
40f89d:	cc                   	int3
40f89e:	cc                   	int3
40f89f:	cc                   	int3
40f8a0:	8b ff                	mov    %edi,%edi
40f8a2:	55                   	push   %ebp
40f8a3:	8b ec                	mov    %esp,%ebp
40f8a5:	83 ec 14             	sub    $0x14,%esp
40f8a8:	53                   	push   %ebx
40f8a9:	56                   	push   %esi
40f8aa:	57                   	push   %edi
40f8ab:	a1 00 f0 44 00       	mov    0x44f000,%eax
40f8b0:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f8b3:	8b 75 0c             	mov    0xc(%ebp),%esi
40f8b6:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
40f8bb:	74 0a                	je     0x40f8c7
40f8bd:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
40f8c1:	0f 85 21 97 01 00    	jne    0x428fe8
40f8c7:	8b 7d 08             	mov    0x8(%ebp),%edi
40f8ca:	8b d6                	mov    %esi,%edx
40f8cc:	81 e2 ff e0 ff ff    	and    $0xffffe0ff,%edx
40f8d2:	89 55 f0             	mov    %edx,-0x10(%ebp)
40f8d5:	0f 85 2d 01 00 00    	jne    0x40fa08
40f8db:	83 7f 58 00          	cmpl   $0x0,0x58(%edi)
40f8df:	0f 85 da 01 00 00    	jne    0x40fabf
40f8e5:	80 bf 94 00 00 00 00 	cmpb   $0x0,0x94(%edi)
40f8ec:	8d 77 7c             	lea    0x7c(%edi),%esi
40f8ef:	89 75 f4             	mov    %esi,-0xc(%ebp)
40f8f2:	0f 84 3c 97 01 00    	je     0x429034
40f8f8:	8b ce                	mov    %esi,%ecx
40f8fa:	e8 a1 c2 ff ff       	call   0x40bba0
40f8ff:	84 c0                	test   %al,%al
40f901:	0f 84 2d 97 01 00    	je     0x429034
40f907:	8b 5f 70             	mov    0x70(%edi),%ebx
40f90a:	85 db                	test   %ebx,%ebx
40f90c:	0f 84 98 01 00 00    	je     0x40faaa
40f912:	a1 80 0b 45 00       	mov    0x450b80,%eax
40f917:	8b 70 08             	mov    0x8(%eax),%esi
40f91a:	8b 78 04             	mov    0x4(%eax),%edi
40f91d:	83 e6 05             	and    $0x5,%esi
40f920:	83 ce 08             	or     $0x8,%esi
40f923:	85 ff                	test   %edi,%edi
40f925:	0f 84 f3 96 01 00    	je     0x42901e
40f92b:	33 c9                	xor    %ecx,%ecx
40f92d:	8b c3                	mov    %ebx,%eax
40f92f:	ba 04 00 00 00       	mov    $0x4,%edx
40f934:	f7 e2                	mul    %edx
40f936:	0f 90 c1             	seto   %cl
40f939:	f7 d9                	neg    %ecx
40f93b:	0b c8                	or     %eax,%ecx
40f93d:	51                   	push   %ecx
40f93e:	56                   	push   %esi
40f93f:	57                   	push   %edi
40f940:	ff 15 78 10 45 00    	call   *0x451078
40f946:	8b f0                	mov    %eax,%esi
40f948:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f94b:	85 f6                	test   %esi,%esi
40f94d:	0f 84 c5 96 01 00    	je     0x429018
40f953:	33 ff                	xor    %edi,%edi
40f955:	85 db                	test   %ebx,%ebx
40f957:	7e 4b                	jle    0x40f9a4
40f959:	8b 75 08             	mov    0x8(%ebp),%esi
40f95c:	8d 64 24 00          	lea    0x0(%esp),%esp
40f960:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f963:	50                   	push   %eax
40f964:	8d 4e 60             	lea    0x60(%esi),%ecx
40f967:	e8 24 05 00 00       	call   0x40fe90
40f96c:	85 c0                	test   %eax,%eax
40f96e:	75 2c                	jne    0x40f99c