43f551:	85 c9                	test   %ecx,%ecx
43f553:	0f 85 92 00 00 00    	jne    0x43f5eb
43f559:	ff 15 6c 20 45 00    	call   *0x45206c
43f55f:	85 ff                	test   %edi,%edi
43f561:	75 1e                	jne    0x43f581
43f563:	83 f8 7f             	cmp    $0x7f,%eax
43f566:	74 0c                	je     0x43f574
43f568:	bf 95 ff ff ff       	mov    $0xffffff95,%edi
43f56d:	b8 17 01 00 00       	mov    $0x117,%eax
43f572:	eb 0a                	jmp    0x43f57e
43f574:	bf 8f ff ff ff       	mov    $0xffffff8f,%edi
43f579:	b8 13 01 00 00       	mov    $0x113,%eax
43f57e:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f581:	53                   	push   %ebx
43f582:	ff 15 60 21 45 00    	call   *0x452160
43f588:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43f58b:	8d 4e 02             	lea    0x2(%esi),%ecx
43f58e:	8b ff                	mov    %edi,%edi
43f590:	66 8b 06             	mov    (%esi),%ax
43f593:	83 c6 02             	add    $0x2,%esi
43f596:	66 85 c0             	test   %ax,%ax
43f599:	75 f5                	jne    0x43f590
43f59b:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f59e:	2b f1                	sub    %ecx,%esi
43f5a0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43f5a3:	40                   	inc    %eax
43f5a4:	d1 fe                	sar    $1,%esi
43f5a6:	03 c6                	add    %esi,%eax
43f5a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f5ab:	98                   	cwtl
43f5ac:	66 83 3c 41 00       	cmpw   $0x0,(%ecx,%eax,2)
43f5b1:	8d 34 41             	lea    (%ecx,%eax,2),%esi
43f5b4:	74 48                	je     0x43f5fe
43f5b6:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f5b9:	e9 72 ff ff ff       	jmp    0x43f530
43f5be:	ff 15 6c 20 45 00    	call   *0x45206c
43f5c4:	85 ff                	test   %edi,%edi
43f5c6:	75 c0                	jne    0x43f588
43f5c8:	83 f8 7e             	cmp    $0x7e,%eax
43f5cb:	74 0f                	je     0x43f5dc
43f5cd:	bb 2e 01 00 00       	mov    $0x12e,%ebx
43f5d2:	bf 95 ff ff ff       	mov    $0xffffff95,%edi
43f5d7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43f5da:	eb af                	jmp    0x43f58b
43f5dc:	bb 2a 01 00 00       	mov    $0x12a,%ebx
43f5e1:	bf 8f ff ff ff       	mov    $0xffffff8f,%edi
43f5e6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43f5e9:	eb a0                	jmp    0x43f58b
43f5eb:	8b 45 0c             	mov    0xc(%ebp),%eax
43f5ee:	33 ff                	xor    %edi,%edi
43f5f0:	8b 55 f4             	mov    -0xc(%ebp),%edx
43f5f3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43f5f6:	66 89 10             	mov    %dx,(%eax)
43f5f9:	8b 45 10             	mov    0x10(%ebp),%eax
43f5fc:	89 08                	mov    %ecx,(%eax)
43f5fe:	8b 4d 10             	mov    0x10(%ebp),%ecx
43f601:	83 39 00             	cmpl   $0x0,(%ecx)
43f604:	75 39                	jne    0x43f63f
43f606:	83 3d 0c 1d 45 00 00 	cmpl   $0x0,0x451d0c
43f60d:	74 30                	je     0x43f63f
43f60f:	e8 dc e6 ff ff       	call   0x43dcf0
43f614:	83 c0 10             	add    $0x10,%eax
43f617:	74 0a                	je     0x43f623
43f619:	e8 d2 e6 ff ff       	call   0x43dcf0
43f61e:	83 c0 14             	add    $0x14,%eax
43f621:	eb 02                	jmp    0x43f625
43f623:	33 c0                	xor    %eax,%eax
43f625:	c7 00 6c 32 41 00    	movl   $0x41326c,(%eax)
43f62b:	89 58 04             	mov    %ebx,0x4(%eax)
43f62e:	89 78 08             	mov    %edi,0x8(%eax)
43f631:	39 3d 30 1a 45 00    	cmp    %edi,0x451a30
43f637:	75 06                	jne    0x43f63f
43f639:	ff 15 58 20 45 00    	call   *0x452058
43f63f:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
43f643:	74 0b                	je     0x43f650
43f645:	6a 00                	push   $0x0
43f647:	ff 75 e8             	push   -0x18(%ebp)
43f64a:	ff 15 80 20 45 00    	call   *0x452080
43f650:	8b c7                	mov    %edi,%eax
43f652:	5f                   	pop    %edi
43f653:	5e                   	pop    %esi
43f654:	5b                   	pop    %ebx
43f655:	8b e5                	mov    %ebp,%esp
43f657:	5d                   	pop    %ebp
43f658:	c2 0c 00             	ret    $0xc
43f65b:	cc                   	int3
43f65c:	cc                   	int3
43f65d:	cc                   	int3
43f65e:	cc                   	int3
43f65f:	cc                   	int3
43f660:	8b ff                	mov    %edi,%edi
43f662:	55                   	push   %ebp
43f663:	8b ec                	mov    %esp,%ebp
43f665:	83 e4 f8             	and    $0xfffffff8,%esp
43f668:	51                   	push   %ecx
43f669:	8b 4d 28             	mov    0x28(%ebp),%ecx
43f66c:	53                   	push   %ebx
43f66d:	56                   	push   %esi
43f66e:	57                   	push   %edi
43f66f:	85 c9                	test   %ecx,%ecx
43f671:	0f 84 11 01 00 00    	je     0x43f788
43f677:	8b 45 0c             	mov    0xc(%ebp),%eax
43f67a:	83 e8 00             	sub    $0x0,%eax
43f67d:	0f 84 b6 00 00 00    	je     0x43f739
43f683:	83 e8 01             	sub    $0x1,%eax
43f686:	0f 85 fc 00 00 00    	jne    0x43f788
43f68c:	8a 45 10             	mov    0x10(%ebp),%al
43f68f:	33 f6                	xor    %esi,%esi
43f691:	88 41 28             	mov    %al,0x28(%ecx)
43f694:	8b 45 14             	mov    0x14(%ebp),%eax
43f697:	89 41 10             	mov    %eax,0x10(%ecx)
43f69a:	8b 45 18             	mov    0x18(%ebp),%eax
43f69d:	89 41 14             	mov    %eax,0x14(%ecx)
43f6a0:	8b 45 1c             	mov    0x1c(%ebp),%eax
43f6a3:	89 41 18             	mov    %eax,0x18(%ecx)
43f6a6:	8b 45 20             	mov    0x20(%ebp),%eax
43f6a9:	89 41 1c             	mov    %eax,0x1c(%ecx)
43f6ac:	33 c0                	xor    %eax,%eax
43f6ae:	c7 41 24 01 00 00 00 	movl   $0x1,0x24(%ecx)
43f6b5:	66 3b 41 2a          	cmp    0x2a(%ecx),%ax
43f6b9:	0f 83 c9 00 00 00    	jae    0x43f788
43f6bf:	90                   	nop
43f6c0:	8b 41 34             	mov    0x34(%ecx),%eax
43f6c3:	8a 51 28             	mov    0x28(%ecx),%dl
43f6c6:	38 14 06             	cmp    %dl,(%esi,%eax,1)
43f6c9:	76 04                	jbe    0x43f6cf
43f6cb:	84 d2                	test   %dl,%dl
43f6cd:	75 32                	jne    0x43f701
43f6cf:	8b 41 30             	mov    0x30(%ecx),%eax
43f6d2:	8b 3c f0             	mov    (%eax,%esi,8),%edi
43f6d5:	8b 5c f0 04          	mov    0x4(%eax,%esi,8),%ebx
43f6d9:	8b c7                	mov    %edi,%eax
43f6db:	0b c3                	or     %ebx,%eax
43f6dd:	74 26                	je     0x43f705
43f6df:	8b d7                	mov    %edi,%edx
43f6e1:	8b c3                	mov    %ebx,%eax
43f6e3:	23 51 10             	and    0x10(%ecx),%edx
43f6e6:	23 41 14             	and    0x14(%ecx),%eax
43f6e9:	0b d0                	or     %eax,%edx
43f6eb:	74 14                	je     0x43f701
43f6ed:	8b 41 18             	mov    0x18(%ecx),%eax
43f6f0:	23 c7                	and    %edi,%eax
43f6f2:	8b 79 1c             	mov    0x1c(%ecx),%edi
43f6f5:	23 fb                	and    %ebx,%edi
43f6f7:	3b 41 18             	cmp    0x18(%ecx),%eax
43f6fa:	75 05                	jne    0x43f701
43f6fc:	3b 79 1c             	cmp    0x1c(%ecx),%edi
43f6ff:	74 04                	je     0x43f705
43f701:	32 db                	xor    %bl,%bl
43f703:	eb 02                	jmp    0x43f707
43f705:	b3 01                	mov    $0x1,%bl
43f707:	8b 41 2c             	mov    0x2c(%ecx),%eax
43f70a:	8b d6                	mov    %esi,%edx
43f70c:	c1 ea 05             	shr    $0x5,%edx
43f70f:	8b fe                	mov    %esi,%edi
43f711:	83 e7 1f             	and    $0x1f,%edi
43f714:	8d 14 90             	lea    (%eax,%edx,4),%edx
43f717:	8b 02                	mov    (%edx),%eax
43f719:	84 db                	test   %bl,%bl
43f71b:	74 05                	je     0x43f722
43f71d:	0f ab f8             	bts    %edi,%eax
43f720:	eb 03                	jmp    0x43f725
43f722:	0f b3 f8             	btr    %edi,%eax
43f725:	89 02                	mov    %eax,(%edx)
43f727:	46                   	inc    %esi
43f728:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
43f72c:	3b f0                	cmp    %eax,%esi
43f72e:	72 90                	jb     0x43f6c0
43f730:	5f                   	pop    %edi
43f731:	5e                   	pop    %esi
43f732:	5b                   	pop    %ebx
43f733:	8b e5                	mov    %ebp,%esp
43f735:	5d                   	pop    %ebp
43f736:	c2 24 00             	ret    $0x24
43f739:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
43f73d:	c7 41 24 00 00 00 00 	movl   $0x0,0x24(%ecx)
43f744:	c6 41 28 00          	movb   $0x0,0x28(%ecx)
43f748:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
43f74f:	c7 41 14 00 00 00 00 	movl   $0x0,0x14(%ecx)
43f756:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
43f75d:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
43f764:	66 85 c0             	test   %ax,%ax
43f767:	74 1f                	je     0x43f788
43f769:	48                   	dec    %eax
43f76a:	99                   	cltd
43f76b:	83 e2 1f             	and    $0x1f,%edx
43f76e:	03 c2                	add    %edx,%eax
43f770:	c1 f8 05             	sar    $0x5,%eax
43f773:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
43f77a:	50                   	push   %eax
43f77b:	6a 00                	push   $0x0
43f77d:	ff 71 2c             	push   0x2c(%ecx)
43f780:	e8 dc e2 00 00       	call   0x44da61
43f785:	83 c4 0c             	add    $0xc,%esp
43f788:	5f                   	pop    %edi
43f789:	5e                   	pop    %esi
43f78a:	5b                   	pop    %ebx
43f78b:	8b e5                	mov    %ebp,%esp
43f78d:	5d                   	pop    %ebp
43f78e:	c2 24 00             	ret    $0x24
43f791:	cc                   	int3
43f792:	cc                   	int3
43f793:	cc                   	int3
43f794:	cc                   	int3
43f795:	cc                   	int3
43f796:	cc                   	int3
43f797:	cc                   	int3
43f798:	cc                   	int3
43f799:	cc                   	int3
43f79a:	cc                   	int3
43f79b:	cc                   	int3
43f79c:	cc                   	int3
43f79d:	cc                   	int3
43f79e:	cc                   	int3
43f79f:	cc                   	int3
43f7a0:	8b ff                	mov    %edi,%edi
43f7a2:	55                   	push   %ebp
43f7a3:	8b ec                	mov    %esp,%ebp
43f7a5:	83 e4 f8             	and    $0xfffffff8,%esp
43f7a8:	51                   	push   %ecx
43f7a9:	a1 48 f0 44 00       	mov    0x44f048,%eax
43f7ae:	53                   	push   %ebx
43f7af:	8b da                	mov    %edx,%ebx
43f7b1:	56                   	push   %esi
43f7b2:	57                   	push   %edi
43f7b3:	8b 7d 10             	mov    0x10(%ebp),%edi
43f7b6:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
43f7bd:	85 c0                	test   %eax,%eax
43f7bf:	75 06                	jne    0x43f7c7
43f7c1:	89 07                	mov    %eax,(%edi)
43f7c3:	33 c9                	xor    %ecx,%ecx
43f7c5:	eb 0a                	jmp    0x43f7d1
43f7c7:	89 07                	mov    %eax,(%edi)
43f7c9:	b9 02 00 00 00       	mov    $0x2,%ecx
43f7ce:	0f b7 00             	movzwl (%eax),%eax
43f7d1:	89 47 08             	mov    %eax,0x8(%edi)
43f7d4:	89 4f 0c             	mov    %ecx,0xc(%edi)
43f7d7:	8b 35 ac f7 44 00    	mov    0x44f7ac,%esi
43f7dd:	85 f6                	test   %esi,%esi
43f7df:	75 4d                	jne    0x43f82e
43f7e1:	8b 15 a4 f7 44 00    	mov    0x44f7a4,%edx
43f7e7:	8d 44 24 0c          	lea    0xc(%esp),%eax
43f7eb:	8b 0d 98 f7 44 00    	mov    0x44f798,%ecx
43f7f1:	81 e2 00 08 00 00    	and    $0x800,%edx
43f7f7:	50                   	push   %eax
43f7f8:	68 a6 f7 44 00       	push   $0x44f7a6
43f7fd:	ff 35 9c f7 44 00    	push   0x44f79c
43f803:	c1 ea 0b             	shr    $0xb,%edx
43f806:	89 74 24 18          	mov    %esi,0x18(%esp)
43f80a:	e8 d1 fc ff ff       	call   0x43f4e0
43f80f:	8b 74 24 0c          	mov    0xc(%esp),%esi
43f813:	89 35 ac f7 44 00    	mov    %esi,0x44f7ac
43f819:	a3 a8 f7 44 00       	mov    %eax,0x44f7a8
43f81e:	85 f6                	test   %esi,%esi
43f820:	75 0c                	jne    0x43f82e
43f822:	8b 35 a0 f7 44 00    	mov    0x44f7a0,%esi
43f828:	89 35 ac f7 44 00    	mov    %esi,0x44f7ac
43f82e:	57                   	push   %edi
43f82f:	ff 75 0c             	push   0xc(%ebp)
43f832:	8b ce                	mov    %esi,%ecx
43f834:	6a 00                	push   $0x0
43f836:	6a 00                	push   $0x0
43f838:	53                   	push   %ebx
43f839:	ff 35 44 f0 44 00    	push   0x44f044
43f83f:	ff 35 40 f0 44 00    	push   0x44f040
43f845:	ff 15 84 23 45 00    	call   *0x452384
43f84b:	ff d6                	call   *%esi
43f84d:	5f                   	pop    %edi
43f84e:	5e                   	pop    %esi
43f84f:	5b                   	pop    %ebx
43f850:	8b e5                	mov    %ebp,%esp
43f852:	5d                   	pop    %ebp
43f853:	c2 0c 00             	ret    $0xc
43f856:	cc                   	int3
43f857:	cc                   	int3
43f858:	cc                   	int3
43f859:	cc                   	int3
43f85a:	cc                   	int3
43f85b:	cc                   	int3
43f85c:	cc                   	int3
43f85d:	cc                   	int3
43f85e:	cc                   	int3
43f85f:	cc                   	int3
43f860:	8b ff                	mov    %edi,%edi
43f862:	55                   	push   %ebp
43f863:	8b ec                	mov    %esp,%ebp
43f865:	51                   	push   %ecx
43f866:	a1 40 f0 44 00       	mov    0x44f040,%eax
43f86b:	0b 05 44 f0 44 00    	or     0x44f044,%eax
43f871:	74 08                	je     0x43f87b
43f873:	33 c0                	xor    %eax,%eax
43f875:	8b e5                	mov    %ebp,%esp
43f877:	5d                   	pop    %ebp
43f878:	c2 08 00             	ret    $0x8
43f87b:	56                   	push   %esi
43f87c:	8b 35 c4 f7 44 00    	mov    0x44f7c4,%esi
43f882:	85 f6                	test   %esi,%esi
43f884:	75 4a                	jne    0x43f8d0
43f886:	8b 15 bc f7 44 00    	mov    0x44f7bc,%edx
43f88c:	8d 45 fc             	lea    -0x4(%ebp),%eax
43f88f:	8b 0d b0 f7 44 00    	mov    0x44f7b0,%ecx
43f895:	81 e2 00 08 00 00    	and    $0x800,%edx
43f89b:	50                   	push   %eax
43f89c:	68 be f7 44 00       	push   $0x44f7be
43f8a1:	ff 35 b4 f7 44 00    	push   0x44f7b4
43f8a7:	c1 ea 0b             	shr    $0xb,%edx
43f8aa:	89 75 fc             	mov    %esi,-0x4(%ebp)
43f8ad:	e8 2e fc ff ff       	call   0x43f4e0
43f8b2:	8b 75 fc             	mov    -0x4(%ebp),%esi
43f8b5:	89 35 c4 f7 44 00    	mov    %esi,0x44f7c4
43f8bb:	a3 c0 f7 44 00       	mov    %eax,0x44f7c0
43f8c0:	85 f6                	test   %esi,%esi
43f8c2:	75 0c                	jne    0x43f8d0
43f8c4:	8b 35 b8 f7 44 00    	mov    0x44f7b8,%esi
43f8ca:	89 35 c4 f7 44 00    	mov    %esi,0x44f7c4
43f8d0:	68 40 f0 44 00       	push   $0x44f040
43f8d5:	68 40 f0 44 00       	push   $0x44f040
43f8da:	68 60 f6 43 00       	push   $0x43f660
43f8df:	68 68 3c 41 00       	push   $0x413c68
43f8e4:	8b ce                	mov    %esi,%ecx
43f8e6:	ff 15 84 23 45 00    	call   *0x452384
43f8ec:	ff d6                	call   *%esi
43f8ee:	5e                   	pop    %esi
43f8ef:	8b e5                	mov    %ebp,%esp
43f8f1:	5d                   	pop    %ebp
43f8f2:	c2 08 00             	ret    $0x8
43f8f5:	cc                   	int3
43f8f6:	cc                   	int3
43f8f7:	cc                   	int3
43f8f8:	cc                   	int3
43f8f9:	cc                   	int3
43f8fa:	cc                   	int3
43f8fb:	cc                   	int3
43f8fc:	cc                   	int3
43f8fd:	cc                   	int3
43f8fe:	cc                   	int3
43f8ff:	cc                   	int3
43f900:	8b ff                	mov    %edi,%edi
43f902:	55                   	push   %ebp
43f903:	8b ec                	mov    %esp,%ebp
43f905:	51                   	push   %ecx
43f906:	a1 40 f0 44 00       	mov    0x44f040,%eax
43f90b:	0b 05 44 f0 44 00    	or     0x44f044,%eax
43f911:	56                   	push   %esi
43f912:	75 05                	jne    0x43f919
43f914:	5e                   	pop    %esi
43f915:	8b e5                	mov    %ebp,%esp
43f917:	5d                   	pop    %ebp
43f918:	c3                   	ret
43f919:	8b 35 dc f7 44 00    	mov    0x44f7dc,%esi