51197f:	05 00 01 00 00       	add    $0x100,%eax
511984:	50                   	push   %eax
511985:	56                   	push   %esi
511986:	e8 45 e7 fd ff       	call   0x4f00d0
51198b:	83 c4 04             	add    $0x4,%esp
51198e:	83 e8 80             	sub    $0xffffff80,%eax
511991:	50                   	push   %eax
511992:	56                   	push   %esi
511993:	e8 38 e7 fd ff       	call   0x4f00d0
511998:	83 c4 04             	add    $0x4,%esp
51199b:	50                   	push   %eax
51199c:	68 00 00 00 40       	push   $0x40000000
5119a1:	55                   	push   %ebp
5119a2:	53                   	push   %ebx
5119a3:	e8 a8 da 02 00       	call   0x53f450
5119a8:	ff 74 24 48          	push   0x48(%esp)
5119ac:	56                   	push   %esi
5119ad:	e8 ae e7 fd ff       	call   0x4f0160
5119b2:	83 c4 2c             	add    $0x2c,%esp
5119b5:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
5119bb:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5119c1:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5119c7:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5119cc:	75 85                	jne    0x511953
5119ce:	85 ff                	test   %edi,%edi
5119d0:	74 5e                	je     0x511a30
5119d2:	56                   	push   %esi
5119d3:	e8 68 e7 fd ff       	call   0x4f0140
5119d8:	56                   	push   %esi
5119d9:	89 44 24 2c          	mov    %eax,0x2c(%esp)
5119dd:	e8 6e 58 fd ff       	call   0x4e7250
5119e2:	83 c4 08             	add    $0x8,%esp
5119e5:	50                   	push   %eax
5119e6:	8d 44 24 28          	lea    0x28(%esp),%eax
5119ea:	50                   	push   %eax
5119eb:	56                   	push   %esi
5119ec:	e8 2f e7 fd ff       	call   0x4f0120
5119f1:	83 c4 04             	add    $0x4,%esp
5119f4:	50                   	push   %eax
5119f5:	56                   	push   %esi
5119f6:	e8 d5 e6 fd ff       	call   0x4f00d0
5119fb:	83 c4 04             	add    $0x4,%esp
5119fe:	05 00 01 00 00       	add    $0x100,%eax
511a03:	50                   	push   %eax
511a04:	56                   	push   %esi
511a05:	e8 c6 e6 fd ff       	call   0x4f00d0
511a0a:	83 c4 04             	add    $0x4,%esp
511a0d:	83 e8 80             	sub    $0xffffff80,%eax
511a10:	50                   	push   %eax
511a11:	56                   	push   %esi
511a12:	e8 b9 e6 fd ff       	call   0x4f00d0
511a17:	83 c4 04             	add    $0x4,%esp
511a1a:	50                   	push   %eax
511a1b:	57                   	push   %edi
511a1c:	55                   	push   %ebp
511a1d:	53                   	push   %ebx
511a1e:	e8 2d da 02 00       	call   0x53f450
511a23:	ff 74 24 48          	push   0x48(%esp)
511a27:	56                   	push   %esi
511a28:	e8 33 e7 fd ff       	call   0x4f0160
511a2d:	83 c4 2c             	add    $0x2c,%esp
511a30:	5f                   	pop    %edi
511a31:	5e                   	pop    %esi
511a32:	5d                   	pop    %ebp
511a33:	b8 01 00 00 00       	mov    $0x1,%eax
511a38:	5b                   	pop    %ebx
511a39:	59                   	pop    %ecx
511a3a:	c3                   	ret
511a3b:	cc                   	int3
511a3c:	cc                   	int3
511a3d:	cc                   	int3
511a3e:	cc                   	int3
511a3f:	cc                   	int3
511a40:	b8 08 00 00 00       	mov    $0x8,%eax
511a45:	e8 66 fd 0b 00       	call   0x5d17b0
511a4a:	55                   	push   %ebp
511a4b:	8b 6c 24 10          	mov    0x10(%esp),%ebp
511a4f:	68 00 20 00 00       	push   $0x2000
511a54:	55                   	push   %ebp
511a55:	e8 16 e7 fd ff       	call   0x4f0170
511a5a:	83 c4 08             	add    $0x8,%esp
511a5d:	85 c0                	test   %eax,%eax
511a5f:	75 0d                	jne    0x511a6e
511a61:	8b 44 24 1c          	mov    0x1c(%esp),%eax
511a65:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
511a6c:	eb 04                	jmp    0x511a72
511a6e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
511a72:	33 c0                	xor    %eax,%eax
511a74:	89 4c 24 08          	mov    %ecx,0x8(%esp)
511a78:	89 44 24 1c          	mov    %eax,0x1c(%esp)
511a7c:	85 c9                	test   %ecx,%ecx
511a7e:	0f 84 b7 00 00 00    	je     0x511b3b
511a84:	53                   	push   %ebx
511a85:	56                   	push   %esi
511a86:	57                   	push   %edi
511a87:	8b f8                	mov    %eax,%edi
511a89:	8b f0                	mov    %eax,%esi
511a8b:	83 e7 07             	and    $0x7,%edi
511a8e:	c1 ee 03             	shr    $0x3,%esi
511a91:	b9 07 00 00 00       	mov    $0x7,%ecx
511a96:	b8 01 00 00 00       	mov    $0x1,%eax
511a9b:	2b cf                	sub    %edi,%ecx
511a9d:	d3 e0                	shl    %cl,%eax
511a9f:	8b 4c 24 24          	mov    0x24(%esp),%ecx
511aa3:	55                   	push   %ebp
511aa4:	22 04 0e             	and    (%esi,%ecx,1),%al
511aa7:	f6 d8                	neg    %al
511aa9:	1a c0                	sbb    %al,%al
511aab:	24 80                	and    $0x80,%al
511aad:	88 44 24 16          	mov    %al,0x16(%esp)
511ab1:	e8 9a 57 fd ff       	call   0x4e7250
511ab6:	83 c4 04             	add    $0x4,%esp
511ab9:	50                   	push   %eax
511aba:	55                   	push   %ebp
511abb:	e8 60 e6 fd ff       	call   0x4f0120
511ac0:	83 c4 04             	add    $0x4,%esp
511ac3:	50                   	push   %eax
511ac4:	55                   	push   %ebp
511ac5:	e8 06 e6 fd ff       	call   0x4f00d0
511aca:	83 c4 04             	add    $0x4,%esp
511acd:	05 00 01 00 00       	add    $0x100,%eax
511ad2:	50                   	push   %eax
511ad3:	55                   	push   %ebp
511ad4:	e8 f7 e5 fd ff       	call   0x4f00d0
511ad9:	83 c4 04             	add    $0x4,%esp
511adc:	83 e8 80             	sub    $0xffffff80,%eax
511adf:	50                   	push   %eax
511ae0:	55                   	push   %ebp
511ae1:	e8 ea e5 fd ff       	call   0x4f00d0
511ae6:	83 c4 04             	add    $0x4,%esp
511ae9:	50                   	push   %eax
511aea:	6a 01                	push   $0x1
511aec:	6a 01                	push   $0x1
511aee:	8d 44 24 2f          	lea    0x2f(%esp),%eax
511af2:	50                   	push   %eax
511af3:	8d 44 24 32          	lea    0x32(%esp),%eax
511af7:	50                   	push   %eax
511af8:	e8 63 db 02 00       	call   0x53f660
511afd:	8b 44 24 4c          	mov    0x4c(%esp),%eax
511b01:	ba 80 00 00 00       	mov    $0x80,%edx
511b06:	8a 5c 24 37          	mov    0x37(%esp),%bl
511b0a:	8a c8                	mov    %al,%cl
511b0c:	80 e1 07             	and    $0x7,%cl
511b0f:	80 e3 80             	and    $0x80,%bl
511b12:	d2 eb                	shr    %cl,%bl
511b14:	40                   	inc    %eax
511b15:	8b cf                	mov    %edi,%ecx
511b17:	89 44 24 4c          	mov    %eax,0x4c(%esp)
511b1b:	d3 fa                	sar    %cl,%edx
511b1d:	83 c4 24             	add    $0x24,%esp
511b20:	8b 4c 24 20          	mov    0x20(%esp),%ecx
511b24:	f6 d2                	not    %dl
511b26:	22 14 0e             	and    (%esi,%ecx,1),%dl
511b29:	0a da                	or     %dl,%bl
511b2b:	88 1c 0e             	mov    %bl,(%esi,%ecx,1)
511b2e:	3b 44 24 14          	cmp    0x14(%esp),%eax
511b32:	0f 82 4f ff ff ff    	jb     0x511a87
511b38:	5f                   	pop    %edi
511b39:	5e                   	pop    %esi
511b3a:	5b                   	pop    %ebx
511b3b:	b8 01 00 00 00       	mov    $0x1,%eax
511b40:	5d                   	pop    %ebp
511b41:	83 c4 08             	add    $0x8,%esp
511b44:	c3                   	ret
511b45:	cc                   	int3
511b46:	cc                   	int3
511b47:	cc                   	int3
511b48:	cc                   	int3
511b49:	cc                   	int3
511b4a:	cc                   	int3
511b4b:	cc                   	int3
511b4c:	cc                   	int3
511b4d:	cc                   	int3
511b4e:	cc                   	int3
511b4f:	cc                   	int3
511b50:	53                   	push   %ebx
511b51:	8b 5c 24 10          	mov    0x10(%esp),%ebx
511b55:	55                   	push   %ebp
511b56:	8b 6c 24 10          	mov    0x10(%esp),%ebp
511b5a:	56                   	push   %esi
511b5b:	8b 74 24 10          	mov    0x10(%esp),%esi
511b5f:	57                   	push   %edi
511b60:	8b 7c 24 20          	mov    0x20(%esp),%edi
511b64:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511b6a:	72 6d                	jb     0x511bd9
511b6c:	8b c7                	mov    %edi,%eax
511b6e:	c1 e8 1e             	shr    $0x1e,%eax
511b71:	89 44 24 20          	mov    %eax,0x20(%esp)
511b75:	56                   	push   %esi
511b76:	e8 d5 56 fd ff       	call   0x4e7250
511b7b:	83 c4 04             	add    $0x4,%esp
511b7e:	50                   	push   %eax
511b7f:	56                   	push   %esi
511b80:	e8 9b e5 fd ff       	call   0x4f0120
511b85:	83 c4 04             	add    $0x4,%esp
511b88:	50                   	push   %eax
511b89:	56                   	push   %esi
511b8a:	e8 41 e5 fd ff       	call   0x4f00d0
511b8f:	83 c4 04             	add    $0x4,%esp
511b92:	05 00 01 00 00       	add    $0x100,%eax
511b97:	50                   	push   %eax
511b98:	56                   	push   %esi
511b99:	e8 32 e5 fd ff       	call   0x4f00d0
511b9e:	83 c4 04             	add    $0x4,%esp
511ba1:	83 e8 80             	sub    $0xffffff80,%eax
511ba4:	50                   	push   %eax
511ba5:	56                   	push   %esi
511ba6:	e8 25 e5 fd ff       	call   0x4f00d0
511bab:	83 c4 04             	add    $0x4,%esp
511bae:	50                   	push   %eax
511baf:	68 00 00 00 40       	push   $0x40000000
511bb4:	6a 08                	push   $0x8
511bb6:	55                   	push   %ebp
511bb7:	53                   	push   %ebx
511bb8:	e8 a3 da 02 00       	call   0x53f660
511bbd:	83 c4 24             	add    $0x24,%esp
511bc0:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
511bc6:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
511bcc:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
511bd2:	83 6c 24 20 01       	subl   $0x1,0x20(%esp)
511bd7:	75 9c                	jne    0x511b75
511bd9:	85 ff                	test   %edi,%edi
511bdb:	74 47                	je     0x511c24
511bdd:	56                   	push   %esi
511bde:	e8 6d 56 fd ff       	call   0x4e7250
511be3:	83 c4 04             	add    $0x4,%esp
511be6:	50                   	push   %eax
511be7:	56                   	push   %esi
511be8:	e8 33 e5 fd ff       	call   0x4f0120
511bed:	83 c4 04             	add    $0x4,%esp
511bf0:	50                   	push   %eax
511bf1:	56                   	push   %esi
511bf2:	e8 d9 e4 fd ff       	call   0x4f00d0
511bf7:	83 c4 04             	add    $0x4,%esp
511bfa:	05 00 01 00 00       	add    $0x100,%eax
511bff:	50                   	push   %eax
511c00:	56                   	push   %esi
511c01:	e8 ca e4 fd ff       	call   0x4f00d0
511c06:	83 c4 04             	add    $0x4,%esp
511c09:	83 e8 80             	sub    $0xffffff80,%eax
511c0c:	50                   	push   %eax
511c0d:	56                   	push   %esi
511c0e:	e8 bd e4 fd ff       	call   0x4f00d0
511c13:	83 c4 04             	add    $0x4,%esp
511c16:	50                   	push   %eax
511c17:	57                   	push   %edi
511c18:	6a 08                	push   $0x8
511c1a:	55                   	push   %ebp
511c1b:	53                   	push   %ebx
511c1c:	e8 3f da 02 00       	call   0x53f660
511c21:	83 c4 24             	add    $0x24,%esp
511c24:	5f                   	pop    %edi
511c25:	5e                   	pop    %esi
511c26:	5d                   	pop    %ebp
511c27:	b8 01 00 00 00       	mov    $0x1,%eax
511c2c:	5b                   	pop    %ebx
511c2d:	c3                   	ret
511c2e:	cc                   	int3
511c2f:	cc                   	int3
511c30:	b8 28 00 00 00       	mov    $0x28,%eax
511c35:	e8 76 fb 0b 00       	call   0x5d17b0
511c3a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
511c3f:	33 c4                	xor    %esp,%eax
511c41:	89 44 24 24          	mov    %eax,0x24(%esp)
511c45:	53                   	push   %ebx
511c46:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
511c4a:	55                   	push   %ebp
511c4b:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
511c4f:	56                   	push   %esi
511c50:	8b 74 24 3c          	mov    0x3c(%esp),%esi
511c54:	57                   	push   %edi
511c55:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
511c59:	81 fb 00 00 00 40    	cmp    $0x40000000,%ebx
511c5f:	0f 83 b3 02 00 00    	jae    0x511f18
511c65:	f6 c3 07             	test   $0x7,%bl
511c68:	0f 85 aa 02 00 00    	jne    0x511f18
511c6e:	53                   	push   %ebx
511c6f:	55                   	push   %ebp
511c70:	56                   	push   %esi
511c71:	e8 9a b4 fc ff       	call   0x4dd110
511c76:	83 c4 0c             	add    $0xc,%esp
511c79:	85 c0                	test   %eax,%eax
511c7b:	74 33                	je     0x511cb0
511c7d:	68 8e 01 00 00       	push   $0x18e
511c82:	68 9c 06 63 00       	push   $0x63069c
511c87:	68 a2 00 00 00       	push   $0xa2
511c8c:	68 ab 00 00 00       	push   $0xab
511c91:	6a 06                	push   $0x6
511c93:	e8 e8 72 fc ff       	call   0x4d8f80
511c98:	83 c4 14             	add    $0x14,%esp
511c9b:	33 c0                	xor    %eax,%eax
511c9d:	5f                   	pop    %edi
511c9e:	5e                   	pop    %esi
511c9f:	5d                   	pop    %ebp
511ca0:	5b                   	pop    %ebx
511ca1:	8b 4c 24 24          	mov    0x24(%esp),%ecx
511ca5:	33 cc                	xor    %esp,%ecx
511ca7:	e8 7a fd 0b 00       	call   0x5d1a26
511cac:	83 c4 28             	add    $0x28,%esp
511caf:	c3                   	ret
511cb0:	57                   	push   %edi
511cb1:	e8 9a 55 fd ff       	call   0x4e7250
511cb6:	83 c4 04             	add    $0x4,%esp
511cb9:	85 c0                	test   %eax,%eax
511cbb:	0f 84 e7 00 00 00    	je     0x511da8
511cc1:	85 f6                	test   %esi,%esi
511cc3:	75 18                	jne    0x511cdd
511cc5:	5f                   	pop    %edi
511cc6:	5e                   	pop    %esi
511cc7:	83 c3 10             	add    $0x10,%ebx
511cca:	5d                   	pop    %ebp
511ccb:	8b c3                	mov    %ebx,%eax
511ccd:	5b                   	pop    %ebx
511cce:	8b 4c 24 24          	mov    0x24(%esp),%ecx
511cd2:	33 cc                	xor    %esp,%ecx
511cd4:	e8 4d fd 0b 00       	call   0x5d1a26
511cd9:	83 c4 28             	add    $0x28,%esp
511cdc:	c3                   	ret
511cdd:	53                   	push   %ebx
511cde:	8d 46 08             	lea    0x8(%esi),%eax
511ce1:	55                   	push   %ebp
511ce2:	50                   	push   %eax
511ce3:	e8 e8 10 0c 00       	call   0x5d2dd0
511ce8:	8d 44 24 2c          	lea    0x2c(%esp),%eax
511cec:	50                   	push   %eax
511ced:	53                   	push   %ebx
511cee:	55                   	push   %ebp
511cef:	e8 5c e3 02 00       	call   0x540050
511cf4:	8b 44 24 38          	mov    0x38(%esp),%eax
511cf8:	89 44 1e 08          	mov    %eax,0x8(%esi,%ebx,1)
511cfc:	8b 44 24 3c          	mov    0x3c(%esp),%eax
511d00:	89 44 1e 0c          	mov    %eax,0xc(%esi,%ebx,1)
511d04:	8d 44 24 38          	lea    0x38(%esp),%eax
511d08:	6a 14                	push   $0x14
511d0a:	50                   	push   %eax
511d0b:	e8 d0 fc ee ff       	call   0x4019e0
511d10:	83 c4 20             	add    $0x20,%esp
511d13:	6a 08                	push   $0x8
511d15:	57                   	push   %edi
511d16:	e8 05 e4 fd ff       	call   0x4f0120
511d1b:	83 c4 04             	add    $0x4,%esp
511d1e:	50                   	push   %eax
511d1f:	e8 2c f5 fc ff       	call   0x4e1250
511d24:	83 c4 08             	add    $0x8,%esp
511d27:	85 c0                	test   %eax,%eax
511d29:	7f 18                	jg     0x511d43
511d2b:	5f                   	pop    %edi
511d2c:	5e                   	pop    %esi
511d2d:	83 cb ff             	or     $0xffffffff,%ebx
511d30:	5d                   	pop    %ebp