43760e:	8b 00                	mov    (%eax),%eax
437610:	89 42 18             	mov    %eax,0x18(%edx)
437613:	8a 03                	mov    (%ebx),%al
437615:	88 42 28             	mov    %al,0x28(%edx)
437618:	8b 45 fc             	mov    -0x4(%ebp),%eax
43761b:	47                   	inc    %edi
43761c:	83 c0 04             	add    $0x4,%eax
43761f:	43                   	inc    %ebx
437620:	89 45 fc             	mov    %eax,-0x4(%ebp)
437623:	3b fe                	cmp    %esi,%edi
437625:	75 ad                	jne    0x4375d4
437627:	5f                   	pop    %edi
437628:	5e                   	pop    %esi
437629:	5b                   	pop    %ebx
43762a:	8b e5                	mov    %ebp,%esp
43762c:	5d                   	pop    %ebp
43762d:	c3                   	ret
43762e:	8b ff                	mov    %edi,%edi
437630:	53                   	push   %ebx
437631:	56                   	push   %esi
437632:	57                   	push   %edi
437633:	33 ff                	xor    %edi,%edi
437635:	8b c7                	mov    %edi,%eax
437637:	8b cf                	mov    %edi,%ecx
437639:	83 e0 3f             	and    $0x3f,%eax
43763c:	c1 f9 06             	sar    $0x6,%ecx
43763f:	6b f0 30             	imul   $0x30,%eax,%esi
437642:	03 34 8d 58 b1 46 00 	add    0x46b158(,%ecx,4),%esi
437649:	83 7e 18 ff          	cmpl   $0xffffffff,0x18(%esi)
43764d:	74 0c                	je     0x43765b
43764f:	83 7e 18 fe          	cmpl   $0xfffffffe,0x18(%esi)
437653:	74 06                	je     0x43765b
437655:	80 4e 28 80          	orb    $0x80,0x28(%esi)
437659:	eb 7b                	jmp    0x4376d6
43765b:	8b c7                	mov    %edi,%eax
43765d:	c6 46 28 81          	movb   $0x81,0x28(%esi)
437661:	83 e8 00             	sub    $0x0,%eax
437664:	74 10                	je     0x437676
437666:	83 e8 01             	sub    $0x1,%eax
437669:	74 07                	je     0x437672
43766b:	6a f4                	push   $0xfffffff4
43766d:	83 e8 01             	sub    $0x1,%eax
437670:	eb 06                	jmp    0x437678
437672:	6a f5                	push   $0xfffffff5
437674:	eb 02                	jmp    0x437678
437676:	6a f6                	push   $0xfffffff6
437678:	58                   	pop    %eax
437679:	50                   	push   %eax
43767a:	ff 15 dc b2 44 00    	call   *0x44b2dc
437680:	8b d8                	mov    %eax,%ebx
437682:	83 fb ff             	cmp    $0xffffffff,%ebx
437685:	74 0d                	je     0x437694
437687:	85 db                	test   %ebx,%ebx
437689:	74 09                	je     0x437694
43768b:	53                   	push   %ebx
43768c:	ff 15 d0 b2 44 00    	call   *0x44b2d0
437692:	eb 02                	jmp    0x437696
437694:	33 c0                	xor    %eax,%eax
437696:	85 c0                	test   %eax,%eax
437698:	74 1e                	je     0x4376b8
43769a:	25 ff 00 00 00       	and    $0xff,%eax
43769f:	89 5e 18             	mov    %ebx,0x18(%esi)
4376a2:	83 f8 02             	cmp    $0x2,%eax
4376a5:	75 06                	jne    0x4376ad
4376a7:	80 4e 28 40          	orb    $0x40,0x28(%esi)
4376ab:	eb 29                	jmp    0x4376d6
4376ad:	83 f8 03             	cmp    $0x3,%eax
4376b0:	75 24                	jne    0x4376d6
4376b2:	80 4e 28 08          	orb    $0x8,0x28(%esi)
4376b6:	eb 1e                	jmp    0x4376d6
4376b8:	80 4e 28 40          	orb    $0x40,0x28(%esi)
4376bc:	c7 46 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%esi)
4376c3:	a1 44 b1 46 00       	mov    0x46b144,%eax
4376c8:	85 c0                	test   %eax,%eax
4376ca:	74 0a                	je     0x4376d6
4376cc:	8b 04 b8             	mov    (%eax,%edi,4),%eax
4376cf:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
4376d6:	47                   	inc    %edi
4376d7:	83 ff 03             	cmp    $0x3,%edi
4376da:	0f 85 55 ff ff ff    	jne    0x437635
4376e0:	5f                   	pop    %edi
4376e1:	5e                   	pop    %esi
4376e2:	5b                   	pop    %ebx
4376e3:	c3                   	ret
4376e4:	6a 0c                	push   $0xc
4376e6:	68 40 7e 46 00       	push   $0x467e40
4376eb:	e8 40 71 ff ff       	call   0x42e830
4376f0:	6a 07                	push   $0x7
4376f2:	e8 3f 0f 00 00       	call   0x438636
4376f7:	59                   	pop    %ecx
4376f8:	33 db                	xor    %ebx,%ebx
4376fa:	88 5d e7             	mov    %bl,-0x19(%ebp)
4376fd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
437700:	53                   	push   %ebx
437701:	e8 d9 14 00 00       	call   0x438bdf
437706:	59                   	pop    %ecx
437707:	85 c0                	test   %eax,%eax
437709:	75 0f                	jne    0x43771a
43770b:	e8 68 fe ff ff       	call   0x437578
437710:	e8 19 ff ff ff       	call   0x43762e
437715:	b3 01                	mov    $0x1,%bl
437717:	88 5d e7             	mov    %bl,-0x19(%ebp)
43771a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
437721:	e8 0b 00 00 00       	call   0x437731
437726:	8a c3                	mov    %bl,%al
437728:	e8 49 71 ff ff       	call   0x42e876
43772d:	c3                   	ret
43772e:	8a 5d e7             	mov    -0x19(%ebp),%bl
437731:	6a 07                	push   $0x7
437733:	e8 46 0f 00 00       	call   0x43867e
437738:	59                   	pop    %ecx
437739:	c3                   	ret
43773a:	8b ff                	mov    %edi,%edi
43773c:	56                   	push   %esi
43773d:	33 f6                	xor    %esi,%esi
43773f:	8b 86 58 b1 46 00    	mov    0x46b158(%esi),%eax
437745:	85 c0                	test   %eax,%eax
437747:	74 0e                	je     0x437757
437749:	50                   	push   %eax
43774a:	e8 5b 14 00 00       	call   0x438baa
43774f:	83 a6 58 b1 46 00 00 	andl   $0x0,0x46b158(%esi)
437756:	59                   	pop    %ecx
437757:	83 c6 04             	add    $0x4,%esi
43775a:	81 fe 00 02 00 00    	cmp    $0x200,%esi
437760:	72 dd                	jb     0x43773f
437762:	b0 01                	mov    $0x1,%al
437764:	5e                   	pop    %esi
437765:	c3                   	ret
437766:	8b ff                	mov    %edi,%edi
437768:	55                   	push   %ebp
437769:	8b ec                	mov    %esp,%ebp
43776b:	8b 55 08             	mov    0x8(%ebp),%edx
43776e:	56                   	push   %esi
43776f:	85 d2                	test   %edx,%edx
437771:	74 13                	je     0x437786
437773:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437776:	85 c9                	test   %ecx,%ecx
437778:	74 0c                	je     0x437786
43777a:	8b 75 10             	mov    0x10(%ebp),%esi
43777d:	85 f6                	test   %esi,%esi
43777f:	75 19                	jne    0x43779a
437781:	33 c0                	xor    %eax,%eax
437783:	66 89 02             	mov    %ax,(%edx)
437786:	e8 ab c6 ff ff       	call   0x433e36
43778b:	6a 16                	push   $0x16
43778d:	5e                   	pop    %esi
43778e:	89 30                	mov    %esi,(%eax)
437790:	e8 e5 c5 ff ff       	call   0x433d7a
437795:	8b c6                	mov    %esi,%eax
437797:	5e                   	pop    %esi
437798:	5d                   	pop    %ebp
437799:	c3                   	ret
43779a:	57                   	push   %edi
43779b:	8b fa                	mov    %edx,%edi
43779d:	2b f2                	sub    %edx,%esi
43779f:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4377a3:	66 89 07             	mov    %ax,(%edi)
4377a6:	8d 7f 02             	lea    0x2(%edi),%edi
4377a9:	66 85 c0             	test   %ax,%ax
4377ac:	74 05                	je     0x4377b3
4377ae:	83 e9 01             	sub    $0x1,%ecx
4377b1:	75 ec                	jne    0x43779f
4377b3:	5f                   	pop    %edi
4377b4:	85 c9                	test   %ecx,%ecx
4377b6:	75 0e                	jne    0x4377c6
4377b8:	33 c0                	xor    %eax,%eax
4377ba:	66 89 02             	mov    %ax,(%edx)
4377bd:	e8 74 c6 ff ff       	call   0x433e36
4377c2:	6a 22                	push   $0x22
4377c4:	eb c7                	jmp    0x43778d
4377c6:	33 f6                	xor    %esi,%esi
4377c8:	eb cb                	jmp    0x437795
4377ca:	8b ff                	mov    %edi,%edi
4377cc:	55                   	push   %ebp
4377cd:	8b ec                	mov    %esp,%ebp
4377cf:	51                   	push   %ecx
4377d0:	8b 55 14             	mov    0x14(%ebp),%edx
4377d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4377d6:	56                   	push   %esi
4377d7:	85 d2                	test   %edx,%edx
4377d9:	75 0d                	jne    0x4377e8
4377db:	85 c9                	test   %ecx,%ecx
4377dd:	75 0d                	jne    0x4377ec
4377df:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
4377e2:	75 26                	jne    0x43780a
4377e4:	33 c0                	xor    %eax,%eax
4377e6:	eb 33                	jmp    0x43781b
4377e8:	85 c9                	test   %ecx,%ecx
4377ea:	74 1e                	je     0x43780a
4377ec:	8b 45 0c             	mov    0xc(%ebp),%eax
4377ef:	85 c0                	test   %eax,%eax
4377f1:	74 17                	je     0x43780a
4377f3:	85 d2                	test   %edx,%edx
4377f5:	75 07                	jne    0x4377fe
4377f7:	33 c0                	xor    %eax,%eax
4377f9:	66 89 01             	mov    %ax,(%ecx)
4377fc:	eb e6                	jmp    0x4377e4
4377fe:	8b 75 10             	mov    0x10(%ebp),%esi
437801:	85 f6                	test   %esi,%esi
437803:	75 1b                	jne    0x437820
437805:	33 c0                	xor    %eax,%eax
437807:	66 89 01             	mov    %ax,(%ecx)
43780a:	e8 27 c6 ff ff       	call   0x433e36
43780f:	6a 16                	push   $0x16
437811:	5e                   	pop    %esi
437812:	89 30                	mov    %esi,(%eax)
437814:	e8 61 c5 ff ff       	call   0x433d7a
437819:	8b c6                	mov    %esi,%eax
43781b:	5e                   	pop    %esi
43781c:	8b e5                	mov    %ebp,%esp
43781e:	5d                   	pop    %ebp
43781f:	c3                   	ret
437820:	53                   	push   %ebx
437821:	2b f1                	sub    %ecx,%esi
437823:	8b d8                	mov    %eax,%ebx
437825:	57                   	push   %edi
437826:	8b f9                	mov    %ecx,%edi
437828:	83 fa ff             	cmp    $0xffffffff,%edx
43782b:	75 16                	jne    0x437843
43782d:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
437831:	66 89 07             	mov    %ax,(%edi)
437834:	8d 7f 02             	lea    0x2(%edi),%edi
437837:	66 85 c0             	test   %ax,%ax
43783a:	74 2c                	je     0x437868
43783c:	83 eb 01             	sub    $0x1,%ebx
43783f:	75 ec                	jne    0x43782d
437841:	eb 25                	jmp    0x437868
437843:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
437847:	66 89 07             	mov    %ax,(%edi)
43784a:	8d 7f 02             	lea    0x2(%edi),%edi
43784d:	66 85 c0             	test   %ax,%ax
437850:	74 0a                	je     0x43785c
437852:	83 eb 01             	sub    $0x1,%ebx
437855:	74 05                	je     0x43785c
437857:	83 ea 01             	sub    $0x1,%edx
43785a:	75 e7                	jne    0x437843
43785c:	85 d2                	test   %edx,%edx
43785e:	8b 55 14             	mov    0x14(%ebp),%edx
437861:	75 05                	jne    0x437868
437863:	33 c0                	xor    %eax,%eax
437865:	66 89 07             	mov    %ax,(%edi)
437868:	5f                   	pop    %edi
437869:	85 db                	test   %ebx,%ebx
43786b:	5b                   	pop    %ebx
43786c:	0f 85 72 ff ff ff    	jne    0x4377e4
437872:	83 fa ff             	cmp    $0xffffffff,%edx
437875:	75 0f                	jne    0x437886
437877:	8b 45 0c             	mov    0xc(%ebp),%eax
43787a:	33 d2                	xor    %edx,%edx
43787c:	6a 50                	push   $0x50
43787e:	66 89 54 41 fe       	mov    %dx,-0x2(%ecx,%eax,2)
437883:	58                   	pop    %eax
437884:	eb 95                	jmp    0x43781b
437886:	33 c0                	xor    %eax,%eax
437888:	66 89 01             	mov    %ax,(%ecx)
43788b:	e8 a6 c5 ff ff       	call   0x433e36
437890:	6a 22                	push   $0x22
437892:	e9 7a ff ff ff       	jmp    0x437811
437897:	8b ff                	mov    %edi,%edi
437899:	55                   	push   %ebp
43789a:	8b ec                	mov    %esp,%ebp
43789c:	5d                   	pop    %ebp
43789d:	e9 28 ff ff ff       	jmp    0x4377ca
4378a2:	8b ff                	mov    %edi,%edi
4378a4:	55                   	push   %ebp
4378a5:	8b ec                	mov    %esp,%ebp
4378a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4378aa:	3b 45 08             	cmp    0x8(%ebp),%eax
4378ad:	76 05                	jbe    0x4378b4
4378af:	83 c8 ff             	or     $0xffffffff,%eax
4378b2:	5d                   	pop    %ebp
4378b3:	c3                   	ret
4378b4:	1b c0                	sbb    %eax,%eax
4378b6:	f7 d8                	neg    %eax
4378b8:	5d                   	pop    %ebp
4378b9:	c3                   	ret
4378ba:	8b ff                	mov    %edi,%edi
4378bc:	55                   	push   %ebp
4378bd:	8b ec                	mov    %esp,%ebp
4378bf:	83 ec 30             	sub    $0x30,%esp
4378c2:	a1 08 a0 46 00       	mov    0x46a008,%eax
4378c7:	33 c5                	xor    %ebp,%eax
4378c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4378cc:	8b 45 0c             	mov    0xc(%ebp),%eax
4378cf:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4378d2:	56                   	push   %esi
4378d3:	8b 75 08             	mov    0x8(%ebp),%esi
4378d6:	85 c0                	test   %eax,%eax
4378d8:	75 16                	jne    0x4378f0
4378da:	e8 57 c5 ff ff       	call   0x433e36
4378df:	6a 16                	push   $0x16
4378e1:	5e                   	pop    %esi
4378e2:	89 30                	mov    %esi,(%eax)
4378e4:	e8 91 c4 ff ff       	call   0x433d7a
4378e9:	8b c6                	mov    %esi,%eax
4378eb:	e9 7b 01 00 00       	jmp    0x437a6b
4378f0:	33 c9                	xor    %ecx,%ecx
4378f2:	53                   	push   %ebx
4378f3:	57                   	push   %edi
4378f4:	89 08                	mov    %ecx,(%eax)
4378f6:	8b f9                	mov    %ecx,%edi
4378f8:	8b d9                	mov    %ecx,%ebx
4378fa:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4378fd:	89 7d d8             	mov    %edi,-0x28(%ebp)
437900:	89 5d dc             	mov    %ebx,-0x24(%ebp)
437903:	89 4d e0             	mov    %ecx,-0x20(%ebp)
437906:	39 0e                	cmp    %ecx,(%esi)
437908:	74 61                	je     0x43796b
43790a:	6a 2a                	push   $0x2a
43790c:	58                   	pop    %eax
43790d:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
437911:	6a 3f                	push   $0x3f
437913:	58                   	pop    %eax
437914:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
437918:	33 c0                	xor    %eax,%eax
43791a:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
43791e:	8d 45 f4             	lea    -0xc(%ebp),%eax
437921:	50                   	push   %eax
437922:	ff 36                	push   (%esi)
437924:	e8 3c 17 00 00       	call   0x439065
437929:	59                   	pop    %ecx
43792a:	59                   	pop    %ecx
43792b:	85 c0                	test   %eax,%eax
43792d:	75 14                	jne    0x437943
43792f:	8d 45 d8             	lea    -0x28(%ebp),%eax
437932:	50                   	push   %eax
437933:	33 c0                	xor    %eax,%eax
437935:	50                   	push   %eax
437936:	50                   	push   %eax
437937:	ff 36                	push   (%esi)
437939:	e8 49 01 00 00       	call   0x437a87
43793e:	83 c4 10             	add    $0x10,%esp
437941:	eb 0f                	jmp    0x437952
437943:	8d 4d d8             	lea    -0x28(%ebp),%ecx
437946:	51                   	push   %ecx
437947:	50                   	push   %eax
437948:	ff 36                	push   (%esi)
43794a:	e8 d6 01 00 00       	call   0x437b25
43794f:	83 c4 0c             	add    $0xc,%esp
437952:	8b f8                	mov    %eax,%edi
437954:	85 ff                	test   %edi,%edi
437956:	0f 85 03 01 00 00    	jne    0x437a5f
43795c:	83 c6 04             	add    $0x4,%esi
43795f:	33 c9                	xor    %ecx,%ecx
437961:	39 0e                	cmp    %ecx,(%esi)
437963:	75 a5                	jne    0x43790a
437965:	8b 5d dc             	mov    -0x24(%ebp),%ebx
437968:	8b 7d d8             	mov    -0x28(%ebp),%edi
43796b:	8b c3                	mov    %ebx,%eax
43796d:	89 4d ec             	mov    %ecx,-0x14(%ebp)