438650:	8b c7                	mov    %edi,%eax
438652:	23 7d 08             	and    0x8(%ebp),%edi
438655:	f7 d0                	not    %eax
438657:	23 c1                	and    %ecx,%eax
438659:	0b c7                	or     %edi,%eax
43865b:	3b c1                	cmp    %ecx,%eax
43865d:	0f 84 b5 00 00 00    	je     0x438718
438663:	50                   	push   %eax
438664:	e8 24 fd ff ff       	call   0x43838d
438669:	50                   	push   %eax
43866a:	89 45 0c             	mov    %eax,0xc(%ebp)
43866d:	e8 ff 49 ff ff       	call   0x42d071
438672:	59                   	pop    %ecx
438673:	59                   	pop    %ecx
438674:	0f ae 5d 0c          	stmxcsr 0xc(%ebp)
438678:	8b 45 0c             	mov    0xc(%ebp),%eax
43867b:	33 c9                	xor    %ecx,%ecx
43867d:	84 c0                	test   %al,%al
43867f:	79 03                	jns    0x438684
438681:	6a 10                	push   $0x10
438683:	59                   	pop    %ecx
438684:	a9 00 02 00 00       	test   $0x200,%eax
438689:	74 03                	je     0x43868e
43868b:	83 c9 08             	or     $0x8,%ecx
43868e:	a9 00 04 00 00       	test   $0x400,%eax
438693:	74 03                	je     0x438698
438695:	83 c9 04             	or     $0x4,%ecx
438698:	a9 00 08 00 00       	test   $0x800,%eax
43869d:	74 03                	je     0x4386a2
43869f:	83 c9 02             	or     $0x2,%ecx
4386a2:	a9 00 10 00 00       	test   $0x1000,%eax
4386a7:	74 03                	je     0x4386ac
4386a9:	83 c9 01             	or     $0x1,%ecx
4386ac:	a9 00 01 00 00       	test   $0x100,%eax
4386b1:	74 06                	je     0x4386b9
4386b3:	81 c9 00 00 08 00    	or     $0x80000,%ecx
4386b9:	8b d0                	mov    %eax,%edx
4386bb:	bf 00 60 00 00       	mov    $0x6000,%edi
4386c0:	23 d7                	and    %edi,%edx
4386c2:	74 2a                	je     0x4386ee
4386c4:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
4386ca:	74 1c                	je     0x4386e8
4386cc:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
4386d2:	74 0c                	je     0x4386e0
4386d4:	3b d7                	cmp    %edi,%edx
4386d6:	75 16                	jne    0x4386ee
4386d8:	81 c9 00 03 00 00    	or     $0x300,%ecx
4386de:	eb 0e                	jmp    0x4386ee
4386e0:	81 c9 00 02 00 00    	or     $0x200,%ecx
4386e6:	eb 06                	jmp    0x4386ee
4386e8:	81 c9 00 01 00 00    	or     $0x100,%ecx
4386ee:	25 40 80 00 00       	and    $0x8040,%eax
4386f3:	2b c3                	sub    %ebx,%eax
4386f5:	74 1b                	je     0x438712
4386f7:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
4386fc:	74 0c                	je     0x43870a
4386fe:	2b c3                	sub    %ebx,%eax
438700:	75 16                	jne    0x438718
438702:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
438708:	eb 0e                	jmp    0x438718
43870a:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
438710:	eb 06                	jmp    0x438718
438712:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
438718:	8b c1                	mov    %ecx,%eax
43871a:	33 c6                	xor    %esi,%eax
43871c:	0b ce                	or     %esi,%ecx
43871e:	a9 1f 03 08 00       	test   $0x8031f,%eax
438723:	74 06                	je     0x43872b
438725:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
43872b:	8b c1                	mov    %ecx,%eax
43872d:	eb 02                	jmp    0x438731
43872f:	8b c6                	mov    %esi,%eax
438731:	5f                   	pop    %edi
438732:	5e                   	pop    %esi
438733:	5b                   	pop    %ebx
438734:	c9                   	leave
438735:	c3                   	ret
438736:	55                   	push   %ebp
438737:	8b ec                	mov    %esp,%ebp
438739:	8b 4d 08             	mov    0x8(%ebp),%ecx
43873c:	33 c0                	xor    %eax,%eax
43873e:	f6 c1 10             	test   $0x10,%cl
438741:	74 01                	je     0x438744
438743:	40                   	inc    %eax
438744:	f6 c1 08             	test   $0x8,%cl
438747:	74 03                	je     0x43874c
438749:	83 c8 04             	or     $0x4,%eax
43874c:	f6 c1 04             	test   $0x4,%cl
43874f:	74 03                	je     0x438754
438751:	83 c8 08             	or     $0x8,%eax
438754:	f6 c1 02             	test   $0x2,%cl
438757:	74 03                	je     0x43875c
438759:	83 c8 10             	or     $0x10,%eax
43875c:	f6 c1 01             	test   $0x1,%cl
43875f:	74 03                	je     0x438764
438761:	83 c8 20             	or     $0x20,%eax
438764:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
43876a:	74 03                	je     0x43876f
43876c:	83 c8 02             	or     $0x2,%eax
43876f:	56                   	push   %esi
438770:	8b d1                	mov    %ecx,%edx
438772:	be 00 03 00 00       	mov    $0x300,%esi
438777:	57                   	push   %edi
438778:	bf 00 02 00 00       	mov    $0x200,%edi
43877d:	23 d6                	and    %esi,%edx
43877f:	74 23                	je     0x4387a4
438781:	81 fa 00 01 00 00    	cmp    $0x100,%edx
438787:	74 16                	je     0x43879f
438789:	3b d7                	cmp    %edi,%edx
43878b:	74 0b                	je     0x438798
43878d:	3b d6                	cmp    %esi,%edx
43878f:	75 13                	jne    0x4387a4
438791:	0d 00 0c 00 00       	or     $0xc00,%eax
438796:	eb 0c                	jmp    0x4387a4
438798:	0d 00 08 00 00       	or     $0x800,%eax
43879d:	eb 05                	jmp    0x4387a4
43879f:	0d 00 04 00 00       	or     $0x400,%eax
4387a4:	8b d1                	mov    %ecx,%edx
4387a6:	81 e2 00 00 03 00    	and    $0x30000,%edx
4387ac:	74 0c                	je     0x4387ba
4387ae:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
4387b4:	75 06                	jne    0x4387bc
4387b6:	0b c7                	or     %edi,%eax
4387b8:	eb 02                	jmp    0x4387bc
4387ba:	0b c6                	or     %esi,%eax
4387bc:	5f                   	pop    %edi
4387bd:	5e                   	pop    %esi
4387be:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
4387c4:	74 05                	je     0x4387cb
4387c6:	0d 00 10 00 00       	or     $0x1000,%eax
4387cb:	5d                   	pop    %ebp
4387cc:	c3                   	ret
4387cd:	55                   	push   %ebp
4387ce:	8b ec                	mov    %esp,%ebp
4387d0:	83 ec 0c             	sub    $0xc,%esp
4387d3:	8b 45 08             	mov    0x8(%ebp),%eax
4387d6:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4387da:	57                   	push   %edi
4387db:	85 c0                	test   %eax,%eax
4387dd:	75 15                	jne    0x4387f4
4387df:	e8 2a f4 fe ff       	call   0x427c0e
4387e4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4387ea:	e8 21 e6 fe ff       	call   0x426e10
4387ef:	83 c8 ff             	or     $0xffffffff,%eax
4387f2:	eb 74                	jmp    0x438868
4387f4:	53                   	push   %ebx
4387f5:	8b 18                	mov    (%eax),%ebx
4387f7:	56                   	push   %esi
4387f8:	85 db                	test   %ebx,%ebx
4387fa:	74 5c                	je     0x438858
4387fc:	6a 3d                	push   $0x3d
4387fe:	53                   	push   %ebx
4387ff:	e8 a9 06 00 00       	call   0x438ead
438804:	8b f0                	mov    %eax,%esi
438806:	59                   	pop    %ecx
438807:	59                   	pop    %ecx
438808:	89 75 f4             	mov    %esi,-0xc(%ebp)
43880b:	85 f6                	test   %esi,%esi
43880d:	74 49                	je     0x438858
43880f:	3b de                	cmp    %esi,%ebx
438811:	74 45                	je     0x438858
438813:	8b 3d 24 01 4c 00    	mov    0x4c0124,%edi
438819:	33 c0                	xor    %eax,%eax
43881b:	38 46 01             	cmp    %al,0x1(%esi)
43881e:	0f 94 c0             	sete   %al
438821:	89 45 fc             	mov    %eax,-0x4(%ebp)
438824:	3b 3d 10 01 4c 00    	cmp    0x4c0110,%edi
43882a:	75 12                	jne    0x43883e
43882c:	57                   	push   %edi
43882d:	e8 e1 01 00 00       	call   0x438a13
438832:	8b f8                	mov    %eax,%edi
438834:	8b 45 fc             	mov    -0x4(%ebp),%eax
438837:	59                   	pop    %ecx
438838:	89 3d 24 01 4c 00    	mov    %edi,0x4c0124
43883e:	85 ff                	test   %edi,%edi
438840:	75 6c                	jne    0x4388ae
438842:	39 7d 0c             	cmp    %edi,0xc(%ebp)
438845:	74 24                	je     0x43886b
438847:	39 3d 28 01 4c 00    	cmp    %edi,0x4c0128
43884d:	74 1c                	je     0x43886b
43884f:	e8 a0 e8 ff ff       	call   0x4370f4
438854:	85 c0                	test   %eax,%eax
438856:	74 4c                	je     0x4388a4
438858:	e8 b1 f3 fe ff       	call   0x427c0e
43885d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
438863:	83 c8 ff             	or     $0xffffffff,%eax
438866:	5e                   	pop    %esi
438867:	5b                   	pop    %ebx
438868:	5f                   	pop    %edi
438869:	c9                   	leave
43886a:	c3                   	ret
43886b:	85 c0                	test   %eax,%eax
43886d:	0f 85 8c 01 00 00    	jne    0x4389ff
438873:	6a 04                	push   $0x4
438875:	e8 56 e1 fe ff       	call   0x4269d0
43887a:	59                   	pop    %ecx
43887b:	a3 24 01 4c 00       	mov    %eax,0x4c0124
438880:	85 c0                	test   %eax,%eax
438882:	74 df                	je     0x438863
438884:	83 20 00             	andl   $0x0,(%eax)
438887:	83 3d 28 01 4c 00 00 	cmpl   $0x0,0x4c0128
43888e:	75 14                	jne    0x4388a4
438890:	6a 04                	push   $0x4
438892:	e8 39 e1 fe ff       	call   0x4269d0
438897:	59                   	pop    %ecx
438898:	a3 28 01 4c 00       	mov    %eax,0x4c0128
43889d:	85 c0                	test   %eax,%eax
43889f:	74 c2                	je     0x438863
4388a1:	83 20 00             	andl   $0x0,(%eax)
4388a4:	8b 3d 24 01 4c 00    	mov    0x4c0124,%edi
4388aa:	85 ff                	test   %edi,%edi
4388ac:	74 b5                	je     0x438863
4388ae:	8b c6                	mov    %esi,%eax
4388b0:	2b c3                	sub    %ebx,%eax
4388b2:	50                   	push   %eax
4388b3:	53                   	push   %ebx
4388b4:	e8 ba 01 00 00       	call   0x438a73
4388b9:	8b f0                	mov    %eax,%esi
4388bb:	59                   	pop    %ecx
4388bc:	59                   	pop    %ecx
4388bd:	85 f6                	test   %esi,%esi
4388bf:	78 57                	js     0x438918
4388c1:	83 3f 00             	cmpl   $0x0,(%edi)
4388c4:	74 52                	je     0x438918
4388c6:	ff 34 b7             	push   (%edi,%esi,4)
4388c9:	e8 cf 93 fe ff       	call   0x421c9d
4388ce:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4388d2:	59                   	pop    %ecx
4388d3:	75 16                	jne    0x4388eb
4388d5:	89 1c b7             	mov    %ebx,(%edi,%esi,4)
4388d8:	8b 7d 08             	mov    0x8(%ebp),%edi
4388db:	83 27 00             	andl   $0x0,(%edi)
4388de:	e9 87 00 00 00       	jmp    0x43896a
4388e3:	8b 44 b7 04          	mov    0x4(%edi,%esi,4),%eax
4388e7:	89 04 b7             	mov    %eax,(%edi,%esi,4)
4388ea:	46                   	inc    %esi
4388eb:	83 3c b7 00          	cmpl   $0x0,(%edi,%esi,4)
4388ef:	75 f2                	jne    0x4388e3
4388f1:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4388f7:	73 6e                	jae    0x438967
4388f9:	6a 04                	push   $0x4
4388fb:	56                   	push   %esi
4388fc:	ff 35 24 01 4c 00    	push   0x4c0124
438902:	e8 5e e1 fe ff       	call   0x426a65
438907:	8b 7d 08             	mov    0x8(%ebp),%edi
43890a:	83 c4 0c             	add    $0xc,%esp
43890d:	85 c0                	test   %eax,%eax
43890f:	74 59                	je     0x43896a
438911:	a3 24 01 4c 00       	mov    %eax,0x4c0124
438916:	eb 52                	jmp    0x43896a
438918:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
43891c:	0f 85 d0 00 00 00    	jne    0x4389f2
438922:	85 f6                	test   %esi,%esi
438924:	79 02                	jns    0x438928
438926:	f7 de                	neg    %esi
438928:	8d 46 02             	lea    0x2(%esi),%eax
43892b:	3b c6                	cmp    %esi,%eax
43892d:	0f 8c 30 ff ff ff    	jl     0x438863
438933:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
438938:	0f 83 25 ff ff ff    	jae    0x438863
43893e:	50                   	push   %eax
43893f:	6a 04                	push   $0x4
438941:	ff 35 24 01 4c 00    	push   0x4c0124
438947:	e8 19 e1 fe ff       	call   0x426a65
43894c:	83 c4 0c             	add    $0xc,%esp
43894f:	85 c0                	test   %eax,%eax
438951:	0f 84 0c ff ff ff    	je     0x438863
438957:	8b 7d 08             	mov    0x8(%ebp),%edi
43895a:	83 64 b0 04 00       	andl   $0x0,0x4(%eax,%esi,4)
43895f:	89 1c b0             	mov    %ebx,(%eax,%esi,4)
438962:	83 27 00             	andl   $0x0,(%edi)
438965:	eb aa                	jmp    0x438911
438967:	8b 7d 08             	mov    0x8(%ebp),%edi
43896a:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
43896e:	74 6a                	je     0x4389da
438970:	6a 01                	push   $0x1
438972:	53                   	push   %ebx
438973:	e8 58 8e fe ff       	call   0x4217d0
438978:	59                   	pop    %ecx
438979:	83 c0 02             	add    $0x2,%eax
43897c:	50                   	push   %eax
43897d:	e8 04 e0 fe ff       	call   0x426986
438982:	8b f0                	mov    %eax,%esi
438984:	59                   	pop    %ecx
438985:	59                   	pop    %ecx
438986:	85 f6                	test   %esi,%esi
438988:	74 50                	je     0x4389da
43898a:	53                   	push   %ebx
43898b:	53                   	push   %ebx
43898c:	e8 3f 8e fe ff       	call   0x4217d0
438991:	59                   	pop    %ecx
438992:	83 c0 02             	add    $0x2,%eax
438995:	50                   	push   %eax
438996:	56                   	push   %esi
438997:	e8 76 9b ff ff       	call   0x432512
43899c:	83 c4 0c             	add    $0xc,%esp
43899f:	85 c0                	test   %eax,%eax
4389a1:	75 63                	jne    0x438a06
4389a3:	8b ce                	mov    %esi,%ecx
4389a5:	2b cb                	sub    %ebx,%ecx
4389a7:	03 4d f4             	add    -0xc(%ebp),%ecx
4389aa:	88 01                	mov    %al,(%ecx)
4389ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
4389af:	41                   	inc    %ecx
4389b0:	f7 d8                	neg    %eax
4389b2:	1b c0                	sbb    %eax,%eax
4389b4:	f7 d0                	not    %eax
4389b6:	23 c1                	and    %ecx,%eax
4389b8:	50                   	push   %eax
4389b9:	56                   	push   %esi
4389ba:	ff 15 e0 d3 48 00    	call   *0x48d3e0
4389c0:	85 c0                	test   %eax,%eax
4389c2:	75 0f                	jne    0x4389d3
4389c4:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
4389c8:	e8 41 f2 fe ff       	call   0x427c0e
4389cd:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4389d3:	56                   	push   %esi
4389d4:	e8 c4 92 fe ff       	call   0x421c9d
4389d9:	59                   	pop    %ecx
4389da:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4389de:	74 0a                	je     0x4389ea
4389e0:	53                   	push   %ebx
4389e1:	e8 b7 92 fe ff       	call   0x421c9d
4389e6:	83 27 00             	andl   $0x0,(%edi)
4389e9:	59                   	pop    %ecx
4389ea:	8b 45 f8             	mov    -0x8(%ebp),%eax
4389ed:	e9 74 fe ff ff       	jmp    0x438866
4389f2:	53                   	push   %ebx
4389f3:	e8 a5 92 fe ff       	call   0x421c9d
4389f8:	8b 7d 08             	mov    0x8(%ebp),%edi
4389fb:	59                   	pop    %ecx
4389fc:	83 27 00             	andl   $0x0,(%edi)
4389ff:	33 c0                	xor    %eax,%eax
438a01:	e9 60 fe ff ff       	jmp    0x438866
438a06:	33 c0                	xor    %eax,%eax
438a08:	50                   	push   %eax
438a09:	50                   	push   %eax
438a0a:	50                   	push   %eax
438a0b:	50                   	push   %eax
438a0c:	50                   	push   %eax
438a0d:	e8 0e e4 fe ff       	call   0x426e20
438a12:	cc                   	int3
438a13:	55                   	push   %ebp
438a14:	8b ec                	mov    %esp,%ebp
438a16:	56                   	push   %esi
438a17:	8b 75 08             	mov    0x8(%ebp),%esi
438a1a:	33 c9                	xor    %ecx,%ecx
438a1c:	8b c6                	mov    %esi,%eax
438a1e:	85 f6                	test   %esi,%esi
438a20:	74 4e                	je     0x438a70