49183e:	57                   	push   %edi
49183f:	e8 ec 70 ff ff       	call   0x488930
491844:	85 c0                	test   %eax,%eax
491846:	75 06                	jne    0x49184e
491848:	21 46 58             	and    %eax,0x58(%esi)
49184b:	40                   	inc    %eax
49184c:	eb 56                	jmp    0x4918a4
49184e:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
491854:	50                   	push   %eax
491855:	ff 76 50             	push   0x50(%esi)
491858:	e8 7b 8a fe ff       	call   0x47a2d8
49185d:	59                   	pop    %ecx
49185e:	59                   	pop    %ecx
49185f:	85 c0                	test   %eax,%eax
491861:	75 36                	jne    0x491899
491863:	8b cf                	mov    %edi,%ecx
491865:	53                   	push   %ebx
491866:	33 db                	xor    %ebx,%ebx
491868:	8d 51 02             	lea    0x2(%ecx),%edx
49186b:	66 8b 01             	mov    (%ecx),%ax
49186e:	83 c1 02             	add    $0x2,%ecx
491871:	66 3b c3             	cmp    %bx,%ax
491874:	75 f5                	jne    0x49186b
491876:	2b ca                	sub    %edx,%ecx
491878:	d1 f9                	sar    $1,%ecx
49187a:	8d 41 01             	lea    0x1(%ecx),%eax
49187d:	50                   	push   %eax
49187e:	57                   	push   %edi
49187f:	8d 86 a0 02 00 00    	lea    0x2a0(%esi),%eax
491885:	6a 55                	push   $0x55
491887:	50                   	push   %eax
491888:	e8 81 e6 fe ff       	call   0x47ff0e
49188d:	83 c4 10             	add    $0x10,%esp
491890:	85 c0                	test   %eax,%eax
491892:	75 20                	jne    0x4918b4
491894:	83 4e 58 04          	orl    $0x4,0x58(%esi)
491898:	5b                   	pop    %ebx
491899:	8b 46 58             	mov    0x58(%esi),%eax
49189c:	c1 e8 02             	shr    $0x2,%eax
49189f:	f7 d0                	not    %eax
4918a1:	83 e0 01             	and    $0x1,%eax
4918a4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4918a7:	5f                   	pop    %edi
4918a8:	33 cd                	xor    %ebp,%ecx
4918aa:	5e                   	pop    %esi
4918ab:	e8 1a 81 fd ff       	call   0x4699ca
4918b0:	c9                   	leave
4918b1:	c2 0c 00             	ret    $0xc
4918b4:	53                   	push   %ebx
4918b5:	53                   	push   %ebx
4918b6:	53                   	push   %ebx
4918b7:	53                   	push   %ebx
4918b8:	53                   	push   %ebx
4918b9:	e8 90 7d fe ff       	call   0x47964e
4918be:	cc                   	int3
4918bf:	8b ff                	mov    %edi,%edi
4918c1:	55                   	push   %ebp
4918c2:	8b ec                	mov    %esp,%ebp
4918c4:	51                   	push   %ecx
4918c5:	56                   	push   %esi
4918c6:	8b 75 08             	mov    0x8(%ebp),%esi
4918c9:	57                   	push   %edi
4918ca:	85 f6                	test   %esi,%esi
4918cc:	0f 84 be 00 00 00    	je     0x491990
4918d2:	33 ff                	xor    %edi,%edi
4918d4:	66 39 3e             	cmp    %di,(%esi)
4918d7:	0f 84 b3 00 00 00    	je     0x491990
4918dd:	b9 48 51 4a 00       	mov    $0x4a5148,%ecx
4918e2:	8b c6                	mov    %esi,%eax
4918e4:	66 8b 10             	mov    (%eax),%dx
4918e7:	66 3b 11             	cmp    (%ecx),%dx
4918ea:	75 1e                	jne    0x49190a
4918ec:	66 85 d2             	test   %dx,%dx
4918ef:	74 15                	je     0x491906
4918f1:	66 8b 50 02          	mov    0x2(%eax),%dx
4918f5:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4918f9:	75 0f                	jne    0x49190a
4918fb:	83 c0 04             	add    $0x4,%eax
4918fe:	83 c1 04             	add    $0x4,%ecx
491901:	66 85 d2             	test   %dx,%dx
491904:	75 de                	jne    0x4918e4
491906:	8b c7                	mov    %edi,%eax
491908:	eb 05                	jmp    0x49190f
49190a:	1b c0                	sbb    %eax,%eax
49190c:	83 c8 01             	or     $0x1,%eax
49190f:	85 c0                	test   %eax,%eax
491911:	74 7d                	je     0x491990
491913:	68 3c 51 4a 00       	push   $0x4a513c
491918:	56                   	push   %esi
491919:	e8 ba 89 fe ff       	call   0x47a2d8
49191e:	59                   	pop    %ecx
49191f:	59                   	pop    %ecx
491920:	85 c0                	test   %eax,%eax
491922:	74 5a                	je     0x49197e
491924:	68 50 51 4a 00       	push   $0x4a5150
491929:	56                   	push   %esi
49192a:	e8 a9 89 fe ff       	call   0x47a2d8
49192f:	59                   	pop    %ecx
491930:	59                   	pop    %ecx
491931:	85 c0                	test   %eax,%eax
491933:	74 49                	je     0x49197e
491935:	b9 5c 51 4a 00       	mov    $0x4a515c,%ecx
49193a:	8b c6                	mov    %esi,%eax
49193c:	66 8b 10             	mov    (%eax),%dx
49193f:	66 3b 11             	cmp    (%ecx),%dx
491942:	75 1c                	jne    0x491960
491944:	66 85 d2             	test   %dx,%dx
491947:	74 1c                	je     0x491965
491949:	66 8b 50 02          	mov    0x2(%eax),%dx
49194d:	66 3b 51 02          	cmp    0x2(%ecx),%dx
491951:	75 0d                	jne    0x491960
491953:	83 c0 04             	add    $0x4,%eax
491956:	83 c1 04             	add    $0x4,%ecx
491959:	66 85 d2             	test   %dx,%dx
49195c:	75 de                	jne    0x49193c
49195e:	eb 05                	jmp    0x491965
491960:	1b ff                	sbb    %edi,%edi
491962:	83 cf 01             	or     $0x1,%edi
491965:	85 ff                	test   %edi,%edi
491967:	75 1e                	jne    0x491987
491969:	6a 02                	push   $0x2
49196b:	8d 45 fc             	lea    -0x4(%ebp),%eax
49196e:	50                   	push   %eax
49196f:	68 0b 00 00 20       	push   $0x2000000b
491974:	eb 25                	jmp    0x49199b
491976:	8b 45 fc             	mov    -0x4(%ebp),%eax
491979:	83 f8 03             	cmp    $0x3,%eax
49197c:	7d 05                	jge    0x491983
49197e:	b8 e9 fd 00 00       	mov    $0xfde9,%eax
491983:	5f                   	pop    %edi
491984:	5e                   	pop    %esi
491985:	c9                   	leave
491986:	c3                   	ret
491987:	56                   	push   %esi
491988:	e8 da e0 fe ff       	call   0x47fa67
49198d:	59                   	pop    %ecx
49198e:	eb f3                	jmp    0x491983
491990:	6a 02                	push   $0x2
491992:	8d 45 fc             	lea    -0x4(%ebp),%eax
491995:	50                   	push   %eax
491996:	68 04 10 00 20       	push   $0x20001004
49199b:	8b 45 0c             	mov    0xc(%ebp),%eax
49199e:	05 50 02 00 00       	add    $0x250,%eax
4919a3:	50                   	push   %eax
4919a4:	e8 87 6f ff ff       	call   0x488930
4919a9:	85 c0                	test   %eax,%eax
4919ab:	75 c9                	jne    0x491976
4919ad:	eb d4                	jmp    0x491983
4919af:	8b ff                	mov    %edi,%edi
4919b1:	55                   	push   %ebp
4919b2:	8b ec                	mov    %esp,%ebp
4919b4:	83 ec 18             	sub    $0x18,%esp
4919b7:	a1 14 40 4c 00       	mov    0x4c4014,%eax
4919bc:	33 c5                	xor    %ebp,%eax
4919be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4919c1:	56                   	push   %esi
4919c2:	8b 75 08             	mov    0x8(%ebp),%esi
4919c5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4919c8:	6a 09                	push   $0x9
4919ca:	50                   	push   %eax
4919cb:	6a 59                	push   $0x59
4919cd:	56                   	push   %esi
4919ce:	e8 5d 6f ff ff       	call   0x488930
4919d3:	85 c0                	test   %eax,%eax
4919d5:	74 16                	je     0x4919ed
4919d7:	6a 09                	push   $0x9
4919d9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4919dc:	56                   	push   %esi
4919dd:	50                   	push   %eax
4919de:	e8 64 8b fe ff       	call   0x47a547
4919e3:	83 c4 0c             	add    $0xc,%esp
4919e6:	f7 d8                	neg    %eax
4919e8:	1b c0                	sbb    %eax,%eax
4919ea:	40                   	inc    %eax
4919eb:	eb 02                	jmp    0x4919ef
4919ed:	33 c0                	xor    %eax,%eax
4919ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4919f2:	33 cd                	xor    %ebp,%ecx
4919f4:	5e                   	pop    %esi
4919f5:	e8 d0 7f fd ff       	call   0x4699ca
4919fa:	c9                   	leave
4919fb:	c3                   	ret
4919fc:	8b ff                	mov    %edi,%edi
4919fe:	55                   	push   %ebp
4919ff:	8b ec                	mov    %esp,%ebp
491a01:	51                   	push   %ecx
491a02:	56                   	push   %esi
491a03:	8b 75 0c             	mov    0xc(%ebp),%esi
491a06:	33 d2                	xor    %edx,%edx
491a08:	57                   	push   %edi
491a09:	42                   	inc    %edx
491a0a:	33 ff                	xor    %edi,%edi
491a0c:	85 f6                	test   %esi,%esi
491a0e:	78 4e                	js     0x491a5e
491a10:	53                   	push   %ebx
491a11:	85 d2                	test   %edx,%edx
491a13:	74 48                	je     0x491a5d
491a15:	8d 04 37             	lea    (%edi,%esi,1),%eax
491a18:	99                   	cltd
491a19:	2b c2                	sub    %edx,%eax
491a1b:	8b d8                	mov    %eax,%ebx
491a1d:	8b 45 08             	mov    0x8(%ebp),%eax
491a20:	d1 fb                	sar    $1,%ebx
491a22:	6b cb 0c             	imul   $0xc,%ebx,%ecx
491a25:	89 4d fc             	mov    %ecx,-0x4(%ebp)
491a28:	ff 34 01             	push   (%ecx,%eax,1)
491a2b:	8b 45 10             	mov    0x10(%ebp),%eax
491a2e:	ff 30                	push   (%eax)
491a30:	e8 a3 88 fe ff       	call   0x47a2d8
491a35:	8b d0                	mov    %eax,%edx
491a37:	59                   	pop    %ecx
491a38:	59                   	pop    %ecx
491a39:	85 d2                	test   %edx,%edx
491a3b:	75 12                	jne    0x491a4f
491a3d:	8b 45 08             	mov    0x8(%ebp),%eax
491a40:	8b 4d fc             	mov    -0x4(%ebp),%ecx
491a43:	83 c0 04             	add    $0x4,%eax
491a46:	03 c8                	add    %eax,%ecx
491a48:	8b 45 10             	mov    0x10(%ebp),%eax
491a4b:	89 08                	mov    %ecx,(%eax)
491a4d:	eb 0a                	jmp    0x491a59
491a4f:	79 05                	jns    0x491a56
491a51:	8d 73 ff             	lea    -0x1(%ebx),%esi
491a54:	eb 03                	jmp    0x491a59
491a56:	8d 7b 01             	lea    0x1(%ebx),%edi
491a59:	3b fe                	cmp    %esi,%edi
491a5b:	7e b4                	jle    0x491a11
491a5d:	5b                   	pop    %ebx
491a5e:	33 c0                	xor    %eax,%eax
491a60:	85 d2                	test   %edx,%edx
491a62:	5f                   	pop    %edi
491a63:	0f 94 c0             	sete   %al
491a66:	5e                   	pop    %esi
491a67:	c9                   	leave
491a68:	c3                   	ret
491a69:	8b ff                	mov    %edi,%edi
491a6b:	55                   	push   %ebp
491a6c:	8b ec                	mov    %esp,%ebp
491a6e:	51                   	push   %ecx
491a6f:	51                   	push   %ecx
491a70:	53                   	push   %ebx
491a71:	56                   	push   %esi
491a72:	57                   	push   %edi
491a73:	e8 41 50 ff ff       	call   0x486ab9
491a78:	8b 7d 08             	mov    0x8(%ebp),%edi
491a7b:	33 c9                	xor    %ecx,%ecx
491a7d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
491a80:	8d 70 50             	lea    0x50(%eax),%esi
491a83:	8d 86 50 02 00 00    	lea    0x250(%esi),%eax
491a89:	89 4e 08             	mov    %ecx,0x8(%esi)
491a8c:	66 89 08             	mov    %cx,(%eax)
491a8f:	8d 5e 04             	lea    0x4(%esi),%ebx
491a92:	89 45 fc             	mov    %eax,-0x4(%ebp)
491a95:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
491a9b:	89 3e                	mov    %edi,(%esi)
491a9d:	89 03                	mov    %eax,(%ebx)
491a9f:	66 39 08             	cmp    %cx,(%eax)
491aa2:	74 12                	je     0x491ab6
491aa4:	53                   	push   %ebx
491aa5:	6a 16                	push   $0x16
491aa7:	68 b8 46 4a 00       	push   $0x4a46b8
491aac:	e8 4b ff ff ff       	call   0x4919fc
491ab1:	83 c4 0c             	add    $0xc,%esp
491ab4:	33 c9                	xor    %ecx,%ecx
491ab6:	8b 06                	mov    (%esi),%eax
491ab8:	56                   	push   %esi
491ab9:	66 39 08             	cmp    %cx,(%eax)
491abc:	74 47                	je     0x491b05
491abe:	8b 03                	mov    (%ebx),%eax
491ac0:	66 39 08             	cmp    %cx,(%eax)
491ac3:	74 07                	je     0x491acc
491ac5:	e8 1c f9 ff ff       	call   0x4913e6
491aca:	eb 05                	jmp    0x491ad1
491acc:	e8 ae f9 ff ff       	call   0x49147f
491ad1:	33 c0                	xor    %eax,%eax
491ad3:	59                   	pop    %ecx
491ad4:	39 46 08             	cmp    %eax,0x8(%esi)
491ad7:	75 32                	jne    0x491b0b
491ad9:	56                   	push   %esi
491ada:	6a 40                	push   $0x40
491adc:	68 a8 43 4a 00       	push   $0x4a43a8
491ae1:	e8 16 ff ff ff       	call   0x4919fc
491ae6:	83 c4 0c             	add    $0xc,%esp
491ae9:	85 c0                	test   %eax,%eax
491aeb:	74 1e                	je     0x491b0b
491aed:	8b 03                	mov    (%ebx),%eax
491aef:	33 c9                	xor    %ecx,%ecx
491af1:	56                   	push   %esi
491af2:	66 39 08             	cmp    %cx,(%eax)
491af5:	74 07                	je     0x491afe
491af7:	e8 ea f8 ff ff       	call   0x4913e6
491afc:	eb 0c                	jmp    0x491b0a
491afe:	e8 7c f9 ff ff       	call   0x49147f
491b03:	eb 05                	jmp    0x491b0a
491b05:	e8 55 f8 ff ff       	call   0x49135f
491b0a:	59                   	pop    %ecx
491b0b:	33 db                	xor    %ebx,%ebx
491b0d:	39 5e 08             	cmp    %ebx,0x8(%esi)
491b10:	0f 84 44 01 00 00    	je     0x491c5a
491b16:	85 ff                	test   %edi,%edi
491b18:	74 16                	je     0x491b30
491b1a:	66 39 1f             	cmp    %bx,(%edi)
491b1d:	75 11                	jne    0x491b30
491b1f:	66 39 9f 00 01 00 00 	cmp    %bx,0x100(%edi)
491b26:	75 08                	jne    0x491b30
491b28:	ff 15 d8 e0 49 00    	call   *0x49e0d8
491b2e:	eb 15                	jmp    0x491b45
491b30:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
491b36:	f7 df                	neg    %edi
491b38:	56                   	push   %esi
491b39:	1b ff                	sbb    %edi,%edi
491b3b:	23 f8                	and    %eax,%edi
491b3d:	57                   	push   %edi
491b3e:	e8 7c fd ff ff       	call   0x4918bf
491b43:	59                   	pop    %ecx
491b44:	59                   	pop    %ecx
491b45:	8b f0                	mov    %eax,%esi
491b47:	85 f6                	test   %esi,%esi
491b49:	0f 84 0b 01 00 00    	je     0x491c5a
491b4f:	81 fe e8 fd 00 00    	cmp    $0xfde8,%esi
491b55:	0f 84 ff 00 00 00    	je     0x491c5a
491b5b:	0f b7 c6             	movzwl %si,%eax
491b5e:	50                   	push   %eax
491b5f:	ff 15 dc e0 49 00    	call   *0x49e0dc
491b65:	85 c0                	test   %eax,%eax
491b67:	0f 84 ed 00 00 00    	je     0x491c5a
491b6d:	8b 45 0c             	mov    0xc(%ebp),%eax
491b70:	85 c0                	test   %eax,%eax
491b72:	74 02                	je     0x491b76
491b74:	89 30                	mov    %esi,(%eax)
491b76:	8b 7d 10             	mov    0x10(%ebp),%edi
491b79:	85 ff                	test   %edi,%edi
491b7b:	0f 84 c4 00 00 00    	je     0x491c45
491b81:	8b 4d fc             	mov    -0x4(%ebp),%ecx
491b84:	8d 9f 20 01 00 00    	lea    0x120(%edi),%ebx
491b8a:	33 c0                	xor    %eax,%eax
491b8c:	66 89 03             	mov    %ax,(%ebx)
491b8f:	8d 51 02             	lea    0x2(%ecx),%edx
491b92:	66 8b 01             	mov    (%ecx),%ax
491b95:	83 c1 02             	add    $0x2,%ecx
491b98:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
491b9c:	75 f4                	jne    0x491b92
491b9e:	2b ca                	sub    %edx,%ecx
491ba0:	d1 f9                	sar    $1,%ecx
491ba2:	8d 41 01             	lea    0x1(%ecx),%eax
491ba5:	50                   	push   %eax
491ba6:	ff 75 fc             	push   -0x4(%ebp)
491ba9:	6a 55                	push   $0x55
491bab:	53                   	push   %ebx
491bac:	e8 5d e3 fe ff       	call   0x47ff0e