4249a6:	8b 56 0c             	mov    0xc(%esi),%edx
4249a9:	81 e2 08 01 00 00    	and    $0x108,%edx
4249af:	74 36                	je     0x4249e7
4249b1:	8b 46 04             	mov    0x4(%esi),%eax
4249b4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4249b7:	85 c0                	test   %eax,%eax
4249b9:	74 2c                	je     0x4249e7
4249bb:	0f 88 c0 00 00 00    	js     0x424a81
4249c1:	3b d8                	cmp    %eax,%ebx
4249c3:	73 05                	jae    0x4249ca
4249c5:	8b c3                	mov    %ebx,%eax
4249c7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4249ca:	50                   	push   %eax
4249cb:	ff 75 08             	push   0x8(%ebp)
4249ce:	ff 36                	push   (%esi)
4249d0:	e8 ab c6 ff ff       	call   0x421080
4249d5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4249d8:	83 c4 0c             	add    $0xc,%esp
4249db:	29 46 04             	sub    %eax,0x4(%esi)
4249de:	2b d8                	sub    %eax,%ebx
4249e0:	01 06                	add    %eax,(%esi)
4249e2:	01 45 08             	add    %eax,0x8(%ebp)
4249e5:	eb 5d                	jmp    0x424a44
4249e7:	3b d9                	cmp    %ecx,%ebx
4249e9:	72 5e                	jb     0x424a49
4249eb:	85 d2                	test   %edx,%edx
4249ed:	74 12                	je     0x424a01
4249ef:	56                   	push   %esi
4249f0:	e8 78 02 00 00       	call   0x424c6d
4249f5:	59                   	pop    %ecx
4249f6:	85 c0                	test   %eax,%eax
4249f8:	0f 85 87 00 00 00    	jne    0x424a85
4249fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
424a01:	8b c3                	mov    %ebx,%eax
424a03:	85 c9                	test   %ecx,%ecx
424a05:	74 0d                	je     0x424a14
424a07:	33 d2                	xor    %edx,%edx
424a09:	f7 f1                	div    %ecx
424a0b:	8b c3                	mov    %ebx,%eax
424a0d:	2b c2                	sub    %edx,%eax
424a0f:	89 45 f8             	mov    %eax,-0x8(%ebp)
424a12:	eb 03                	jmp    0x424a17
424a14:	89 5d f8             	mov    %ebx,-0x8(%ebp)
424a17:	50                   	push   %eax
424a18:	ff 75 08             	push   0x8(%ebp)
424a1b:	56                   	push   %esi
424a1c:	e8 f5 fe ff ff       	call   0x424916
424a21:	59                   	pop    %ecx
424a22:	50                   	push   %eax
424a23:	e8 9e 90 00 00       	call   0x42dac6
424a28:	83 c4 0c             	add    $0xc,%esp
424a2b:	83 f8 ff             	cmp    $0xffffffff,%eax
424a2e:	74 51                	je     0x424a81
424a30:	8b 4d f8             	mov    -0x8(%ebp),%ecx
424a33:	8b d1                	mov    %ecx,%edx
424a35:	3b c1                	cmp    %ecx,%eax
424a37:	77 02                	ja     0x424a3b
424a39:	8b d0                	mov    %eax,%edx
424a3b:	01 55 08             	add    %edx,0x8(%ebp)
424a3e:	2b da                	sub    %edx,%ebx
424a40:	3b c1                	cmp    %ecx,%eax
424a42:	72 3d                	jb     0x424a81
424a44:	8b 4d fc             	mov    -0x4(%ebp),%ecx
424a47:	eb 28                	jmp    0x424a71
424a49:	8b 45 08             	mov    0x8(%ebp),%eax
424a4c:	56                   	push   %esi
424a4d:	0f be 00             	movsbl (%eax),%eax
424a50:	50                   	push   %eax
424a51:	e8 08 66 00 00       	call   0x42b05e
424a56:	59                   	pop    %ecx
424a57:	59                   	pop    %ecx
424a58:	83 f8 ff             	cmp    $0xffffffff,%eax
424a5b:	74 28                	je     0x424a85
424a5d:	ff 45 08             	incl   0x8(%ebp)
424a60:	4b                   	dec    %ebx
424a61:	8b 4e 18             	mov    0x18(%esi),%ecx
424a64:	89 4d fc             	mov    %ecx,-0x4(%ebp)
424a67:	85 c9                	test   %ecx,%ecx
424a69:	7f 06                	jg     0x424a71
424a6b:	33 c9                	xor    %ecx,%ecx
424a6d:	41                   	inc    %ecx
424a6e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
424a71:	85 db                	test   %ebx,%ebx
424a73:	0f 85 2d ff ff ff    	jne    0x4249a6
424a79:	8b 45 10             	mov    0x10(%ebp),%eax
424a7c:	e9 e8 fe ff ff       	jmp    0x424969
424a81:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
424a85:	2b fb                	sub    %ebx,%edi
424a87:	33 d2                	xor    %edx,%edx
424a89:	8b c7                	mov    %edi,%eax
424a8b:	f7 75 0c             	divl   0xc(%ebp)
424a8e:	e9 d6 fe ff ff       	jmp    0x424969
424a93:	6a 0c                	push   $0xc
424a95:	68 f0 bb 4b 00       	push   $0x4bbbf0
424a9a:	e8 a1 40 00 00       	call   0x428b40
424a9f:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
424aa3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
424aa7:	74 24                	je     0x424acd
424aa9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
424aad:	74 1e                	je     0x424acd
424aaf:	33 c0                	xor    %eax,%eax
424ab1:	8b 75 14             	mov    0x14(%ebp),%esi
424ab4:	85 f6                	test   %esi,%esi
424ab6:	0f 95 c0             	setne  %al
424ab9:	85 c0                	test   %eax,%eax
424abb:	75 18                	jne    0x424ad5
424abd:	e8 a6 42 00 00       	call   0x428d68
424ac2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424ac8:	e8 29 45 00 00       	call   0x428ff6
424acd:	33 c0                	xor    %eax,%eax
424acf:	e8 b1 40 00 00       	call   0x428b85
424ad4:	c3                   	ret
424ad5:	56                   	push   %esi
424ad6:	e8 73 23 00 00       	call   0x426e4e
424adb:	59                   	pop    %ecx
424adc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
424ae0:	56                   	push   %esi
424ae1:	ff 75 10             	push   0x10(%ebp)
424ae4:	ff 75 0c             	push   0xc(%ebp)
424ae7:	ff 75 08             	push   0x8(%ebp)
424aea:	e8 4b fe ff ff       	call   0x42493a
424aef:	83 c4 10             	add    $0x10,%esp
424af2:	8b f8                	mov    %eax,%edi
424af4:	89 7d e4             	mov    %edi,-0x1c(%ebp)
424af7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
424afe:	e8 0a 00 00 00       	call   0x424b0d
424b03:	8b c7                	mov    %edi,%eax
424b05:	eb c8                	jmp    0x424acf
424b07:	8b 75 14             	mov    0x14(%ebp),%esi
424b0a:	8b 7d e4             	mov    -0x1c(%ebp),%edi
424b0d:	56                   	push   %esi
424b0e:	e8 aa 23 00 00       	call   0x426ebd
424b13:	59                   	pop    %ecx
424b14:	c3                   	ret
424b15:	6a 0c                	push   $0xc
424b17:	68 10 bc 4b 00       	push   $0x4bbc10
424b1c:	e8 1f 40 00 00       	call   0x428b40
424b21:	33 db                	xor    %ebx,%ebx
424b23:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
424b26:	33 c0                	xor    %eax,%eax
424b28:	8b 7d 08             	mov    0x8(%ebp),%edi
424b2b:	85 ff                	test   %edi,%edi
424b2d:	0f 95 c0             	setne  %al
424b30:	85 c0                	test   %eax,%eax
424b32:	75 18                	jne    0x424b4c
424b34:	e8 2f 42 00 00       	call   0x428d68
424b39:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424b3f:	e8 b2 44 00 00       	call   0x428ff6
424b44:	83 c8 ff             	or     $0xffffffff,%eax
424b47:	e9 c7 00 00 00       	jmp    0x424c13
424b4c:	33 c0                	xor    %eax,%eax
424b4e:	39 45 0c             	cmp    %eax,0xc(%ebp)
424b51:	0f 95 c0             	setne  %al
424b54:	85 c0                	test   %eax,%eax
424b56:	74 dc                	je     0x424b34
424b58:	89 7d 08             	mov    %edi,0x8(%ebp)
424b5b:	57                   	push   %edi
424b5c:	e8 ed 22 00 00       	call   0x426e4e
424b61:	59                   	pop    %ecx
424b62:	21 5d fc             	and    %ebx,-0x4(%ebp)
424b65:	f6 47 0c 40          	testb  $0x40,0xc(%edi)
424b69:	75 71                	jne    0x424bdc
424b6b:	57                   	push   %edi
424b6c:	e8 a5 fd ff ff       	call   0x424916
424b71:	59                   	pop    %ecx
424b72:	8b d0                	mov    %eax,%edx
424b74:	83 fa ff             	cmp    $0xffffffff,%edx
424b77:	74 19                	je     0x424b92
424b79:	83 fa fe             	cmp    $0xfffffffe,%edx
424b7c:	74 14                	je     0x424b92
424b7e:	8b ca                	mov    %edx,%ecx
424b80:	c1 f9 05             	sar    $0x5,%ecx
424b83:	83 e0 1f             	and    $0x1f,%eax
424b86:	c1 e0 06             	shl    $0x6,%eax
424b89:	03 04 8d e0 49 4c 00 	add    0x4c49e0(,%ecx,4),%eax
424b90:	eb 05                	jmp    0x424b97
424b92:	b8 90 fe 4b 00       	mov    $0x4bfe90,%eax
424b97:	f6 40 24 7f          	testb  $0x7f,0x24(%eax)
424b9b:	75 29                	jne    0x424bc6
424b9d:	83 fa ff             	cmp    $0xffffffff,%edx
424ba0:	74 19                	je     0x424bbb
424ba2:	83 fa fe             	cmp    $0xfffffffe,%edx
424ba5:	74 14                	je     0x424bbb
424ba7:	8b c2                	mov    %edx,%eax
424ba9:	c1 f8 05             	sar    $0x5,%eax
424bac:	83 e2 1f             	and    $0x1f,%edx
424baf:	c1 e2 06             	shl    $0x6,%edx
424bb2:	03 14 85 e0 49 4c 00 	add    0x4c49e0(,%eax,4),%edx
424bb9:	eb 05                	jmp    0x424bc0
424bbb:	ba 90 fe 4b 00       	mov    $0x4bfe90,%edx
424bc0:	f6 42 24 80          	testb  $0x80,0x24(%edx)
424bc4:	74 16                	je     0x424bdc
424bc6:	e8 9d 41 00 00       	call   0x428d68
424bcb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424bd1:	e8 20 44 00 00       	call   0x428ff6
424bd6:	83 cb ff             	or     $0xffffffff,%ebx
424bd9:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
424bdc:	85 db                	test   %ebx,%ebx
424bde:	75 25                	jne    0x424c05
424be0:	57                   	push   %edi
424be1:	e8 eb 5d 00 00       	call   0x42a9d1
424be6:	8b f0                	mov    %eax,%esi
424be8:	8d 45 10             	lea    0x10(%ebp),%eax
424beb:	50                   	push   %eax
424bec:	53                   	push   %ebx
424bed:	ff 75 0c             	push   0xc(%ebp)
424bf0:	57                   	push   %edi
424bf1:	e8 24 98 00 00       	call   0x42e41a
424bf6:	8b d8                	mov    %eax,%ebx
424bf8:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
424bfb:	57                   	push   %edi
424bfc:	56                   	push   %esi
424bfd:	e8 9e 5d 00 00       	call   0x42a9a0
424c02:	83 c4 1c             	add    $0x1c,%esp
424c05:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
424c0c:	e8 0e 00 00 00       	call   0x424c1f
424c11:	8b c3                	mov    %ebx,%eax
424c13:	e8 6d 3f 00 00       	call   0x428b85
424c18:	c3                   	ret
424c19:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
424c1c:	8b 7d 08             	mov    0x8(%ebp),%edi
424c1f:	57                   	push   %edi
424c20:	e8 98 22 00 00       	call   0x426ebd
424c25:	59                   	pop    %ecx
424c26:	c3                   	ret
424c27:	55                   	push   %ebp
424c28:	8b ec                	mov    %esp,%ebp
424c2a:	56                   	push   %esi
424c2b:	8b 75 08             	mov    0x8(%ebp),%esi
424c2e:	85 f6                	test   %esi,%esi
424c30:	75 09                	jne    0x424c3b
424c32:	56                   	push   %esi
424c33:	e8 fb 00 00 00       	call   0x424d33
424c38:	59                   	pop    %ecx
424c39:	eb 2f                	jmp    0x424c6a
424c3b:	56                   	push   %esi
424c3c:	e8 2c 00 00 00       	call   0x424c6d
424c41:	59                   	pop    %ecx
424c42:	85 c0                	test   %eax,%eax
424c44:	74 05                	je     0x424c4b
424c46:	83 c8 ff             	or     $0xffffffff,%eax
424c49:	eb 1f                	jmp    0x424c6a
424c4b:	f7 46 0c 00 40 00 00 	testl  $0x4000,0xc(%esi)
424c52:	74 14                	je     0x424c68
424c54:	56                   	push   %esi
424c55:	e8 bc fc ff ff       	call   0x424916
424c5a:	50                   	push   %eax
424c5b:	e8 26 a4 00 00       	call   0x42f086
424c60:	f7 d8                	neg    %eax
424c62:	59                   	pop    %ecx
424c63:	59                   	pop    %ecx
424c64:	1b c0                	sbb    %eax,%eax
424c66:	eb 02                	jmp    0x424c6a
424c68:	33 c0                	xor    %eax,%eax
424c6a:	5e                   	pop    %esi
424c6b:	5d                   	pop    %ebp
424c6c:	c3                   	ret
424c6d:	55                   	push   %ebp
424c6e:	8b ec                	mov    %esp,%ebp
424c70:	53                   	push   %ebx
424c71:	56                   	push   %esi
424c72:	8b 75 08             	mov    0x8(%ebp),%esi
424c75:	33 db                	xor    %ebx,%ebx
424c77:	8b 46 0c             	mov    0xc(%esi),%eax
424c7a:	24 03                	and    $0x3,%al
424c7c:	3c 02                	cmp    $0x2,%al
424c7e:	75 42                	jne    0x424cc2
424c80:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
424c87:	74 39                	je     0x424cc2
424c89:	57                   	push   %edi
424c8a:	8b 3e                	mov    (%esi),%edi
424c8c:	2b 7e 08             	sub    0x8(%esi),%edi
424c8f:	85 ff                	test   %edi,%edi
424c91:	7e 2e                	jle    0x424cc1
424c93:	57                   	push   %edi
424c94:	ff 76 08             	push   0x8(%esi)
424c97:	56                   	push   %esi
424c98:	e8 79 fc ff ff       	call   0x424916
424c9d:	59                   	pop    %ecx
424c9e:	50                   	push   %eax
424c9f:	e8 22 8e 00 00       	call   0x42dac6
424ca4:	83 c4 0c             	add    $0xc,%esp
424ca7:	3b c7                	cmp    %edi,%eax
424ca9:	75 0f                	jne    0x424cba
424cab:	8b 46 0c             	mov    0xc(%esi),%eax
424cae:	84 c0                	test   %al,%al
424cb0:	79 0f                	jns    0x424cc1
424cb2:	83 e0 fd             	and    $0xfffffffd,%eax
424cb5:	89 46 0c             	mov    %eax,0xc(%esi)
424cb8:	eb 07                	jmp    0x424cc1
424cba:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
424cbe:	83 cb ff             	or     $0xffffffff,%ebx
424cc1:	5f                   	pop    %edi
424cc2:	8b 4e 08             	mov    0x8(%esi),%ecx
424cc5:	8b c3                	mov    %ebx,%eax
424cc7:	83 66 04 00          	andl   $0x0,0x4(%esi)
424ccb:	89 0e                	mov    %ecx,(%esi)
424ccd:	5e                   	pop    %esi
424cce:	5b                   	pop    %ebx
424ccf:	5d                   	pop    %ebp
424cd0:	c3                   	ret
424cd1:	6a 01                	push   $0x1
424cd3:	e8 5b 00 00 00       	call   0x424d33
424cd8:	59                   	pop    %ecx
424cd9:	c3                   	ret
424cda:	6a 0c                	push   $0xc
424cdc:	68 30 bc 4b 00       	push   $0x4bbc30
424ce1:	e8 5a 3e 00 00       	call   0x428b40
424ce6:	33 ff                	xor    %edi,%edi
424ce8:	89 7d e4             	mov    %edi,-0x1c(%ebp)
424ceb:	8b 75 08             	mov    0x8(%ebp),%esi
424cee:	85 f6                	test   %esi,%esi
424cf0:	75 09                	jne    0x424cfb
424cf2:	57                   	push   %edi
424cf3:	e8 3b 00 00 00       	call   0x424d33
424cf8:	59                   	pop    %ecx
424cf9:	eb 24                	jmp    0x424d1f
424cfb:	56                   	push   %esi
424cfc:	e8 4d 21 00 00       	call   0x426e4e
424d01:	59                   	pop    %ecx
424d02:	89 7d fc             	mov    %edi,-0x4(%ebp)
424d05:	56                   	push   %esi
424d06:	e8 1c ff ff ff       	call   0x424c27
424d0b:	59                   	pop    %ecx
424d0c:	8b f8                	mov    %eax,%edi
424d0e:	89 7d e4             	mov    %edi,-0x1c(%ebp)
424d11:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
424d18:	e8 0e 00 00 00       	call   0x424d2b
424d1d:	8b c7                	mov    %edi,%eax
424d1f:	e8 61 3e 00 00       	call   0x428b85
424d24:	c3                   	ret
424d25:	8b 75 08             	mov    0x8(%ebp),%esi
424d28:	8b 7d e4             	mov    -0x1c(%ebp),%edi
424d2b:	56                   	push   %esi
424d2c:	e8 8c 21 00 00       	call   0x426ebd
424d31:	59                   	pop    %ecx
424d32:	c3                   	ret
424d33:	6a 14                	push   $0x14
424d35:	68 50 bc 4b 00       	push   $0x4bbc50
424d3a:	e8 01 3e 00 00       	call   0x428b40
424d3f:	33 ff                	xor    %edi,%edi
424d41:	89 7d e4             	mov    %edi,-0x1c(%ebp)
424d44:	21 7d dc             	and    %edi,-0x24(%ebp)
424d47:	6a 01                	push   $0x1
424d49:	e8 fd 50 00 00       	call   0x429e4b
424d4e:	59                   	pop    %ecx
424d4f:	21 7d fc             	and    %edi,-0x4(%ebp)
424d52:	33 f6                	xor    %esi,%esi
424d54:	8b 5d 08             	mov    0x8(%ebp),%ebx
424d57:	89 75 e0             	mov    %esi,-0x20(%ebp)