46183b:	75 e8                	jne    0x461825
46183d:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
461840:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
461844:	e8 5d ae fd ff       	call   0x43c6a6
461849:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
46184d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
461850:	e8 51 ae fd ff       	call   0x43c6a6
461855:	8b 4d f4             	mov    -0xc(%ebp),%ecx
461858:	5e                   	pop    %esi
461859:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
461860:	c9                   	leave
461861:	c3                   	ret
461862:	e9 e4 3b fd ff       	jmp    0x43544b
461867:	55                   	push   %ebp
461868:	8b ec                	mov    %esp,%ebp
46186a:	51                   	push   %ecx
46186b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
46186f:	75 04                	jne    0x461875
461871:	33 c0                	xor    %eax,%eax
461873:	eb 3d                	jmp    0x4618b2
461875:	8b 81 84 00 00 00    	mov    0x84(%ecx),%eax
46187b:	85 c0                	test   %eax,%eax
46187d:	56                   	push   %esi
46187e:	57                   	push   %edi
46187f:	89 45 fc             	mov    %eax,-0x4(%ebp)
461882:	74 2a                	je     0x4618ae
461884:	8d b9 80 00 00 00    	lea    0x80(%ecx),%edi
46188a:	8d 45 fc             	lea    -0x4(%ebp),%eax
46188d:	50                   	push   %eax
46188e:	8b cf                	mov    %edi,%ecx
461890:	e8 cd 5b fa ff       	call   0x407462
461895:	8b 30                	mov    (%eax),%esi
461897:	ff 76 1c             	push   0x1c(%esi)
46189a:	ff 15 0c 08 4b 00    	call   *0x4b080c
4618a0:	0f b7 c0             	movzwl %ax,%eax
4618a3:	3b 45 08             	cmp    0x8(%ebp),%eax
4618a6:	74 0e                	je     0x4618b6
4618a8:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4618ac:	75 dc                	jne    0x46188a
4618ae:	33 c0                	xor    %eax,%eax
4618b0:	5f                   	pop    %edi
4618b1:	5e                   	pop    %esi
4618b2:	c9                   	leave
4618b3:	c2 04 00             	ret    $0x4
4618b6:	8b c6                	mov    %esi,%eax
4618b8:	eb f6                	jmp    0x4618b0
4618ba:	56                   	push   %esi
4618bb:	8b 74 24 08          	mov    0x8(%esp),%esi
4618bf:	ff 76 04             	push   0x4(%esi)
4618c2:	e8 a0 ff ff ff       	call   0x461867
4618c7:	85 c0                	test   %eax,%eax
4618c9:	74 19                	je     0x4618e4
4618cb:	57                   	push   %edi
4618cc:	8b 3e                	mov    (%esi),%edi
4618ce:	8b c8                	mov    %eax,%ecx
4618d0:	e8 71 f3 fd ff       	call   0x440c46
4618d5:	c1 e8 1c             	shr    $0x1c,%eax
4618d8:	83 e0 01             	and    $0x1,%eax
4618db:	50                   	push   %eax
4618dc:	8b ce                	mov    %esi,%ecx
4618de:	ff 57 04             	call   *0x4(%edi)
4618e1:	5f                   	pop    %edi
4618e2:	eb 07                	jmp    0x4618eb
4618e4:	c7 46 1c 01 00 00 00 	movl   $0x1,0x1c(%esi)
4618eb:	5e                   	pop    %esi
4618ec:	c2 04 00             	ret    $0x4
4618ef:	56                   	push   %esi
4618f0:	57                   	push   %edi
4618f1:	ff 74 24 0c          	push   0xc(%esp)
4618f5:	8b f9                	mov    %ecx,%edi
4618f7:	e8 6b ff ff ff       	call   0x461867
4618fc:	8b f0                	mov    %eax,%esi
4618fe:	85 f6                	test   %esi,%esi
461900:	74 1f                	je     0x461921
461902:	6a 00                	push   $0x0
461904:	8b ce                	mov    %esi,%ecx
461906:	e8 3b f3 fd ff       	call   0x440c46
46190b:	c1 e8 1c             	shr    $0x1c,%eax
46190e:	f7 d0                	not    %eax
461910:	83 e0 01             	and    $0x1,%eax
461913:	50                   	push   %eax
461914:	56                   	push   %esi
461915:	8b cf                	mov    %edi,%ecx
461917:	e8 7e fa ff ff       	call   0x46139a
46191c:	33 c0                	xor    %eax,%eax
46191e:	40                   	inc    %eax
46191f:	eb 02                	jmp    0x461923
461921:	33 c0                	xor    %eax,%eax
461923:	5f                   	pop    %edi
461924:	5e                   	pop    %esi
461925:	c2 04 00             	ret    $0x4
461928:	57                   	push   %edi
461929:	8b 7c 24 08          	mov    0x8(%esp),%edi
46192d:	8b 47 04             	mov    0x4(%edi),%eax
461930:	2d 01 e7 00 00       	sub    $0xe701,%eax
461935:	74 26                	je     0x46195d
461937:	48                   	dec    %eax
461938:	74 1c                	je     0x461956
46193a:	48                   	dec    %eax
46193b:	74 12                	je     0x46194f
46193d:	83 e8 03             	sub    $0x3,%eax
461940:	74 09                	je     0x46194b
461942:	c7 47 1c 01 00 00 00 	movl   $0x1,0x1c(%edi)
461949:	eb 28                	jmp    0x461973
46194b:	6a 15                	push   $0x15
46194d:	eb 10                	jmp    0x46195f
46194f:	b8 91 00 00 00       	mov    $0x91,%eax
461954:	eb 0a                	jmp    0x461960
461956:	b8 90 00 00 00       	mov    $0x90,%eax
46195b:	eb 03                	jmp    0x461960
46195d:	6a 14                	push   $0x14
46195f:	58                   	pop    %eax
461960:	56                   	push   %esi
461961:	8b 37                	mov    (%edi),%esi
461963:	50                   	push   %eax
461964:	ff 15 a4 07 4b 00    	call   *0x4b07a4
46196a:	8b cf                	mov    %edi,%ecx
46196c:	83 e0 01             	and    $0x1,%eax
46196f:	50                   	push   %eax
461970:	ff 16                	call   *(%esi)
461972:	5e                   	pop    %esi
461973:	5f                   	pop    %edi
461974:	c2 04 00             	ret    $0x4
461977:	56                   	push   %esi
461978:	8b f1                	mov    %ecx,%esi
46197a:	e8 29 5b fa ff       	call   0x4074a8
46197f:	3b c6                	cmp    %esi,%eax
461981:	75 14                	jne    0x461997
461983:	8b 4c 24 08          	mov    0x8(%esp),%ecx
461987:	8b 01                	mov    (%ecx),%eax
461989:	33 d2                	xor    %edx,%edx
46198b:	39 56 64             	cmp    %edx,0x64(%esi)
46198e:	0f 95 c2             	setne  %dl
461991:	52                   	push   %edx
461992:	ff 50 04             	call   *0x4(%eax)
461995:	eb 0b                	jmp    0x4619a2
461997:	8b 44 24 08          	mov    0x8(%esp),%eax
46199b:	c7 40 1c 01 00 00 00 	movl   $0x1,0x1c(%eax)
4619a2:	5e                   	pop    %esi
4619a3:	c2 04 00             	ret    $0x4
4619a6:	83 ec 0c             	sub    $0xc,%esp
4619a9:	53                   	push   %ebx
4619aa:	55                   	push   %ebp
4619ab:	56                   	push   %esi
4619ac:	8b f1                	mov    %ecx,%esi
4619ae:	8b 06                	mov    (%esi),%eax
4619b0:	57                   	push   %edi
4619b1:	ff 90 3c 01 00 00    	call   *0x13c(%eax)
4619b7:	33 db                	xor    %ebx,%ebx
4619b9:	39 5c 24 20          	cmp    %ebx,0x20(%esp)
4619bd:	89 44 24 18          	mov    %eax,0x18(%esp)
4619c1:	74 0e                	je     0x4619d1
4619c3:	39 58 7c             	cmp    %ebx,0x7c(%eax)
4619c6:	74 09                	je     0x4619d1
4619c8:	8b 48 7c             	mov    0x7c(%eax),%ecx
4619cb:	8b 01                	mov    (%ecx),%eax
4619cd:	53                   	push   %ebx
4619ce:	ff 50 5c             	call   *0x5c(%eax)
4619d1:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4619d7:	3b c3                	cmp    %ebx,%eax
4619d9:	8b 7c 24 24          	mov    0x24(%esp),%edi
4619dd:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4619e1:	89 44 24 14          	mov    %eax,0x14(%esp)
4619e5:	74 7e                	je     0x461a65
4619e7:	8d 44 24 14          	lea    0x14(%esp),%eax
4619eb:	50                   	push   %eax
4619ec:	8d 8e 80 00 00 00    	lea    0x80(%esi),%ecx
4619f2:	e8 6b 5a fa ff       	call   0x407462
4619f7:	8b 18                	mov    (%eax),%ebx
4619f9:	ff 73 1c             	push   0x1c(%ebx)
4619fc:	ff 15 0c 08 4b 00    	call   *0x4b080c
461a02:	0f b7 c0             	movzwl %ax,%eax
461a05:	3d 00 e8 00 00       	cmp    $0xe800,%eax
461a0a:	89 44 24 24          	mov    %eax,0x24(%esp)
461a0e:	72 4c                	jb     0x461a5c
461a10:	3d 1f e8 00 00       	cmp    $0xe81f,%eax
461a15:	77 45                	ja     0x461a5c
461a17:	8d 88 00 18 ff ff    	lea    -0xe800(%eax),%ecx
461a1d:	8b 03                	mov    (%ebx),%eax
461a1f:	33 ed                	xor    %ebp,%ebp
461a21:	45                   	inc    %ebp
461a22:	d3 e5                	shl    %cl,%ebp
461a24:	8b cb                	mov    %ebx,%ecx
461a26:	ff 90 50 01 00 00    	call   *0x150(%eax)
461a2c:	85 c0                	test   %eax,%eax
461a2e:	74 04                	je     0x461a34
461a30:	09 6c 24 10          	or     %ebp,0x10(%esp)
461a34:	8b 03                	mov    (%ebx),%eax
461a36:	8b cb                	mov    %ebx,%ecx
461a38:	ff 90 58 01 00 00    	call   *0x158(%eax)
461a3e:	85 c0                	test   %eax,%eax
461a40:	74 0a                	je     0x461a4c
461a42:	81 7c 24 24 1f e8 00 	cmpl   $0xe81f,0x24(%esp)
461a49:	00
461a4a:	74 10                	je     0x461a5c
461a4c:	8b 47 08             	mov    0x8(%edi),%eax
461a4f:	6a 01                	push   $0x1
461a51:	23 c5                	and    %ebp,%eax
461a53:	50                   	push   %eax
461a54:	53                   	push   %ebx
461a55:	8b ce                	mov    %esi,%ecx
461a57:	e8 3e f9 ff ff       	call   0x46139a
461a5c:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
461a61:	75 84                	jne    0x4619e7
461a63:	33 db                	xor    %ebx,%ebx
461a65:	39 5c 24 20          	cmp    %ebx,0x20(%esp)
461a69:	8b 44 24 10          	mov    0x10(%esp),%eax
461a6d:	89 47 08             	mov    %eax,0x8(%edi)
461a70:	0f 84 9c 00 00 00    	je     0x461b12
461a76:	8b 47 10             	mov    0x10(%edi),%eax
461a79:	53                   	push   %ebx
461a7a:	8b ce                	mov    %esi,%ecx
461a7c:	89 86 b0 00 00 00    	mov    %eax,0xb0(%esi)
461a82:	e8 6d eb ff ff       	call   0x4605f4
461a87:	ff 37                	push   (%edi)
461a89:	8b 2d 50 08 4b 00    	mov    0x4b0850,%ebp
461a8f:	ff 76 1c             	push   0x1c(%esi)
461a92:	ff d5                	call   *%ebp
461a94:	53                   	push   %ebx
461a95:	50                   	push   %eax
461a96:	89 44 24 28          	mov    %eax,0x28(%esp)
461a9a:	ff 15 ec 07 4b 00    	call   *0x4b07ec
461aa0:	ff 76 1c             	push   0x1c(%esi)
461aa3:	ff 15 00 07 4b 00    	call   *0x4b0700
461aa9:	3b c3                	cmp    %ebx,%eax
461aab:	89 47 04             	mov    %eax,0x4(%edi)
461aae:	74 1d                	je     0x461acd
461ab0:	6a 01                	push   $0x1
461ab2:	53                   	push   %ebx
461ab3:	ff 76 1c             	push   0x1c(%esi)
461ab6:	ff 15 14 06 4b 00    	call   *0x4b0614
461abc:	53                   	push   %ebx
461abd:	ff 76 1c             	push   0x1c(%esi)
461ac0:	ff 15 44 08 4b 00    	call   *0x4b0844
461ac6:	83 a6 cc 00 00 00 fe 	andl   $0xfffffffe,0xcc(%esi)
461acd:	8b 46 5c             	mov    0x5c(%esi),%eax
461ad0:	89 47 14             	mov    %eax,0x14(%edi)
461ad3:	68 15 79 00 00       	push   $0x7915
461ad8:	8b ce                	mov    %esi,%ecx
461ada:	89 5e 5c             	mov    %ebx,0x5c(%esi)
461add:	e8 c7 ed ff ff       	call   0x4608a9
461ae2:	bb 00 e9 00 00       	mov    $0xe900,%ebx
461ae7:	39 1f                	cmp    %ebx,(%edi)
461ae9:	74 08                	je     0x461af3
461aeb:	53                   	push   %ebx
461aec:	ff 76 1c             	push   0x1c(%esi)
461aef:	ff d5                	call   *%ebp
461af1:	eb 04                	jmp    0x461af7
461af3:	8b 44 24 20          	mov    0x20(%esp),%eax
461af7:	85 c0                	test   %eax,%eax
461af9:	0f 84 c5 00 00 00    	je     0x461bc4
461aff:	68 21 ea 00 00       	push   $0xea21
461b04:	6a f4                	push   $0xfffffff4
461b06:	50                   	push   %eax
461b07:	ff 15 08 08 4b 00    	call   *0x4b0808
461b0d:	e9 b2 00 00 00       	jmp    0x461bc4
461b12:	8b 2d 50 08 4b 00    	mov    0x4b0850,%ebp
461b18:	68 21 ea 00 00       	push   $0xea21
461b1d:	ff 76 1c             	push   0x1c(%esi)
461b20:	89 9e b0 00 00 00    	mov    %ebx,0xb0(%esi)
461b26:	ff d5                	call   *%ebp
461b28:	85 c0                	test   %eax,%eax
461b2a:	89 44 24 20          	mov    %eax,0x20(%esp)
461b2e:	bb 00 e9 00 00       	mov    $0xe900,%ebx
461b33:	74 25                	je     0x461b5a
461b35:	53                   	push   %ebx
461b36:	ff 76 1c             	push   0x1c(%esi)
461b39:	ff d5                	call   *%ebp
461b3b:	85 c0                	test   %eax,%eax
461b3d:	74 0e                	je     0x461b4d
461b3f:	68 21 ea 00 00       	push   $0xea21
461b44:	6a f4                	push   $0xfffffff4
461b46:	50                   	push   %eax
461b47:	ff 15 08 08 4b 00    	call   *0x4b0808
461b4d:	53                   	push   %ebx
461b4e:	6a f4                	push   $0xfffffff4
461b50:	ff 74 24 28          	push   0x28(%esp)
461b54:	ff 15 08 08 4b 00    	call   *0x4b0808
461b5a:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
461b5e:	74 19                	je     0x461b79
461b60:	6a 01                	push   $0x1
461b62:	6a 00                	push   $0x0
461b64:	ff 76 1c             	push   0x1c(%esi)
461b67:	ff 15 14 06 4b 00    	call   *0x4b0614
461b6d:	ff 77 04             	push   0x4(%edi)
461b70:	ff 76 1c             	push   0x1c(%esi)
461b73:	ff 15 44 08 4b 00    	call   *0x4b0844
461b79:	8b 44 24 18          	mov    0x18(%esp),%eax
461b7d:	83 78 7c 00          	cmpl   $0x0,0x7c(%eax)
461b81:	74 0a                	je     0x461b8d
461b83:	8b 48 7c             	mov    0x7c(%eax),%ecx
461b86:	8b 01                	mov    (%ecx),%eax
461b88:	6a 01                	push   $0x1
461b8a:	ff 50 5c             	call   *0x5c(%eax)
461b8d:	8b 06                	mov    (%esi),%eax
461b8f:	6a 01                	push   $0x1
461b91:	8b ce                	mov    %esi,%ecx
461b93:	ff 90 44 01 00 00    	call   *0x144(%eax)
461b99:	8b 07                	mov    (%edi),%eax
461b9b:	3b c3                	cmp    %ebx,%eax
461b9d:	74 0a                	je     0x461ba9
461b9f:	50                   	push   %eax
461ba0:	ff 76 1c             	push   0x1c(%esi)
461ba3:	ff d5                	call   *%ebp
461ba5:	89 44 24 20          	mov    %eax,0x20(%esp)
461ba9:	6a 05                	push   $0x5
461bab:	ff 74 24 24          	push   0x24(%esp)
461baf:	ff 15 ec 07 4b 00    	call   *0x4b07ec
461bb5:	8b 47 14             	mov    0x14(%edi),%eax
461bb8:	6a 01                	push   $0x1
461bba:	8b ce                	mov    %esi,%ecx
461bbc:	89 46 5c             	mov    %eax,0x5c(%esi)
461bbf:	e8 30 ea ff ff       	call   0x4605f4
461bc4:	5f                   	pop    %edi
461bc5:	5e                   	pop    %esi
461bc6:	5d                   	pop    %ebp
461bc7:	5b                   	pop    %ebx
461bc8:	83 c4 0c             	add    $0xc,%esp
461bcb:	c2 08 00             	ret    $0x8
461bce:	56                   	push   %esi
461bcf:	8b f1                	mov    %ecx,%esi
461bd1:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
461bd7:	a8 01                	test   $0x1,%al
461bd9:	74 17                	je     0x461bf2
461bdb:	ff b6 bc 00 00 00    	push   0xbc(%esi)
461be1:	83 e0 fe             	and    $0xfffffffe,%eax
461be4:	89 86 cc 00 00 00    	mov    %eax,0xcc(%esi)
461bea:	8b 06                	mov    (%esi),%eax
461bec:	ff 90 60 01 00 00    	call   *0x160(%eax)
461bf2:	f6 86 cc 00 00 00 02 	testb  $0x2,0xcc(%esi)
461bf9:	74 0c                	je     0x461c07
461bfb:	8b 06                	mov    (%esi),%eax
461bfd:	6a 01                	push   $0x1
461bff:	8b ce                	mov    %esi,%ecx
461c01:	ff 90 5c 01 00 00    	call   *0x15c(%eax)
461c07:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
461c0d:	a8 08                	test   $0x8,%al
461c0f:	74 17                	je     0x461c28
461c11:	8b 16                	mov    (%esi),%edx
461c13:	83 e0 04             	and    $0x4,%eax
461c16:	50                   	push   %eax
461c17:	8b ce                	mov    %esi,%ecx
461c19:	ff 92 44 01 00 00    	call   *0x144(%edx)
461c1f:	ff 76 1c             	push   0x1c(%esi)
461c22:	ff 15 48 08 4b 00    	call   *0x4b0848
461c28:	8b 86 a4 00 00 00    	mov    0xa4(%esi),%eax
461c2e:	3b 86 a8 00 00 00    	cmp    0xa8(%esi),%eax
461c34:	74 08                	je     0x461c3e
461c36:	50                   	push   %eax
461c37:	8b ce                	mov    %esi,%ecx