512a72:	e8 a9 08 fe ff       	call   0x4f3320
512a77:	ff 74 24 38          	push   0x38(%esp)
512a7b:	57                   	push   %edi
512a7c:	e8 df d6 fd ff       	call   0x4f0160
512a81:	81 c6 00 00 00 40    	add    $0x40000000,%esi
512a87:	83 c4 30             	add    $0x30,%esp
512a8a:	81 eb 00 00 00 40    	sub    $0x40000000,%ebx
512a90:	89 74 24 28          	mov    %esi,0x28(%esp)
512a94:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
512a9a:	83 6c 24 14 01       	subl   $0x1,0x14(%esp)
512a9f:	75 a2                	jne    0x512a43
512aa1:	eb 08                	jmp    0x512aab
512aa3:	8b 44 24 20          	mov    0x20(%esp),%eax
512aa7:	89 44 24 28          	mov    %eax,0x28(%esp)
512aab:	85 db                	test   %ebx,%ebx
512aad:	74 3d                	je     0x512aec
512aaf:	57                   	push   %edi
512ab0:	e8 8b d6 fd ff       	call   0x4f0140
512ab5:	57                   	push   %edi
512ab6:	89 44 24 1c          	mov    %eax,0x1c(%esp)
512aba:	e8 61 d6 fd ff       	call   0x4f0120
512abf:	57                   	push   %edi
512ac0:	8b f0                	mov    %eax,%esi
512ac2:	e8 09 d6 fd ff       	call   0x4f00d0
512ac7:	68 e0 0b 54 00       	push   $0x540be0
512acc:	8d 4c 24 24          	lea    0x24(%esp),%ecx
512ad0:	51                   	push   %ecx
512ad1:	56                   	push   %esi
512ad2:	50                   	push   %eax
512ad3:	8b 44 24 44          	mov    0x44(%esp),%eax
512ad7:	53                   	push   %ebx
512ad8:	50                   	push   %eax
512ad9:	55                   	push   %ebp
512ada:	e8 41 08 fe ff       	call   0x4f3320
512adf:	ff 74 24 3c          	push   0x3c(%esp)
512ae3:	57                   	push   %edi
512ae4:	e8 77 d6 fd ff       	call   0x4f0160
512ae9:	83 c4 30             	add    $0x30,%esp
512aec:	5f                   	pop    %edi
512aed:	5e                   	pop    %esi
512aee:	5d                   	pop    %ebp
512aef:	b8 01 00 00 00       	mov    $0x1,%eax
512af4:	5b                   	pop    %ebx
512af5:	83 c4 08             	add    $0x8,%esp
512af8:	c3                   	ret
512af9:	cc                   	int3
512afa:	cc                   	int3
512afb:	cc                   	int3
512afc:	cc                   	int3
512afd:	cc                   	int3
512afe:	cc                   	int3
512aff:	cc                   	int3
512b00:	b8 04 00 00 00       	mov    $0x4,%eax
512b05:	e8 a6 ec 0b 00       	call   0x5d17b0
512b0a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
512b0e:	53                   	push   %ebx
512b0f:	8b 5c 24 10          	mov    0x10(%esp),%ebx
512b13:	55                   	push   %ebp
512b14:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
512b18:	56                   	push   %esi
512b19:	57                   	push   %edi
512b1a:	8b 7c 24 20          	mov    0x20(%esp),%edi
512b1e:	81 fd 00 00 00 40    	cmp    $0x40000000,%ebp
512b24:	72 6c                	jb     0x512b92
512b26:	8b c5                	mov    %ebp,%eax
512b28:	c1 e8 1e             	shr    $0x1e,%eax
512b2b:	89 44 24 10          	mov    %eax,0x10(%esp)
512b2f:	90                   	nop
512b30:	51                   	push   %ecx
512b31:	e8 1a 47 fd ff       	call   0x4e7250
512b36:	ff 74 24 1c          	push   0x1c(%esp)
512b3a:	8b f0                	mov    %eax,%esi
512b3c:	e8 df d5 fd ff       	call   0x4f0120
512b41:	ff 74 24 20          	push   0x20(%esp)
512b45:	89 44 24 30          	mov    %eax,0x30(%esp)
512b49:	e8 82 d5 fd ff       	call   0x4f00d0
512b4e:	83 c4 0c             	add    $0xc,%esp
512b51:	68 e0 0b 54 00       	push   $0x540be0
512b56:	ff 74 24 28          	push   0x28(%esp)
512b5a:	50                   	push   %eax
512b5b:	68 00 00 00 40       	push   $0x40000000
512b60:	53                   	push   %ebx
512b61:	57                   	push   %edi
512b62:	85 f6                	test   %esi,%esi
512b64:	74 07                	je     0x512b6d
512b66:	e8 25 03 fe ff       	call   0x4f2e90
512b6b:	eb 05                	jmp    0x512b72
512b6d:	e8 1e 00 fe ff       	call   0x4f2b90
512b72:	8b 4c 24 30          	mov    0x30(%esp),%ecx
512b76:	83 c4 18             	add    $0x18,%esp
512b79:	81 ed 00 00 00 40    	sub    $0x40000000,%ebp
512b7f:	81 c7 00 00 00 40    	add    $0x40000000,%edi
512b85:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
512b8b:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
512b90:	75 9e                	jne    0x512b30
512b92:	85 ed                	test   %ebp,%ebp
512b94:	74 4d                	je     0x512be3
512b96:	51                   	push   %ecx
512b97:	e8 b4 46 fd ff       	call   0x4e7250
512b9c:	ff 74 24 1c          	push   0x1c(%esp)
512ba0:	8b f0                	mov    %eax,%esi
512ba2:	e8 79 d5 fd ff       	call   0x4f0120
512ba7:	ff 74 24 20          	push   0x20(%esp)
512bab:	89 44 24 30          	mov    %eax,0x30(%esp)
512baf:	e8 1c d5 fd ff       	call   0x4f00d0
512bb4:	83 c4 0c             	add    $0xc,%esp
512bb7:	68 e0 0b 54 00       	push   $0x540be0
512bbc:	ff 74 24 28          	push   0x28(%esp)
512bc0:	50                   	push   %eax
512bc1:	55                   	push   %ebp
512bc2:	53                   	push   %ebx
512bc3:	57                   	push   %edi
512bc4:	85 f6                	test   %esi,%esi
512bc6:	74 13                	je     0x512bdb
512bc8:	e8 c3 02 fe ff       	call   0x4f2e90
512bcd:	83 c4 18             	add    $0x18,%esp
512bd0:	b8 01 00 00 00       	mov    $0x1,%eax
512bd5:	5f                   	pop    %edi
512bd6:	5e                   	pop    %esi
512bd7:	5d                   	pop    %ebp
512bd8:	5b                   	pop    %ebx
512bd9:	59                   	pop    %ecx
512bda:	c3                   	ret
512bdb:	e8 b0 ff fd ff       	call   0x4f2b90
512be0:	83 c4 18             	add    $0x18,%esp
512be3:	5f                   	pop    %edi
512be4:	5e                   	pop    %esi
512be5:	5d                   	pop    %ebp
512be6:	b8 01 00 00 00       	mov    $0x1,%eax
512beb:	5b                   	pop    %ebx
512bec:	59                   	pop    %ecx
512bed:	c3                   	ret
512bee:	cc                   	int3
512bef:	cc                   	int3
512bf0:	b8 04 00 00 00       	mov    $0x4,%eax
512bf5:	e8 b6 eb 0b 00       	call   0x5d17b0
512bfa:	55                   	push   %ebp
512bfb:	8b 6c 24 18          	mov    0x18(%esp),%ebp
512bff:	85 ed                	test   %ebp,%ebp
512c01:	0f 84 bf 00 00 00    	je     0x512cc6
512c07:	56                   	push   %esi
512c08:	b8 00 00 00 08       	mov    $0x8000000,%eax
512c0d:	8b f5                	mov    %ebp,%esi
512c0f:	57                   	push   %edi
512c10:	8b 7c 24 14          	mov    0x14(%esp),%edi
512c14:	3b e8                	cmp    %eax,%ebp
512c16:	53                   	push   %ebx
512c17:	0f 43 f0             	cmovae %eax,%esi
512c1a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
512c20:	3b ee                	cmp    %esi,%ebp
512c22:	0f 82 93 00 00 00    	jb     0x512cbb
512c28:	57                   	push   %edi
512c29:	e8 12 d5 fd ff       	call   0x4f0140
512c2e:	68 00 20 00 00       	push   $0x2000
512c33:	57                   	push   %edi
512c34:	89 44 24 1c          	mov    %eax,0x1c(%esp)
512c38:	e8 33 d5 fd ff       	call   0x4f0170
512c3d:	83 c4 0c             	add    $0xc,%esp
512c40:	85 c0                	test   %eax,%eax
512c42:	75 0d                	jne    0x512c51
512c44:	8d 04 f5 00 00 00 00 	lea    0x0(,%esi,8),%eax
512c4b:	89 44 24 24          	mov    %eax,0x24(%esp)
512c4f:	eb 04                	jmp    0x512c55
512c51:	89 74 24 24          	mov    %esi,0x24(%esp)
512c55:	57                   	push   %edi
512c56:	e8 f5 45 fd ff       	call   0x4e7250
512c5b:	57                   	push   %edi
512c5c:	8b d8                	mov    %eax,%ebx
512c5e:	e8 bd d4 fd ff       	call   0x4f0120
512c63:	ff 74 24 20          	push   0x20(%esp)
512c67:	8b f8                	mov    %eax,%edi
512c69:	e8 62 d4 fd ff       	call   0x4f00d0
512c6e:	68 e0 0b 54 00       	push   $0x540be0
512c73:	53                   	push   %ebx
512c74:	8b 5c 24 34          	mov    0x34(%esp),%ebx
512c78:	8d 4c 24 24          	lea    0x24(%esp),%ecx
512c7c:	51                   	push   %ecx
512c7d:	57                   	push   %edi
512c7e:	50                   	push   %eax
512c7f:	ff 74 24 44          	push   0x44(%esp)
512c83:	ff 74 24 40          	push   0x40(%esp)
512c87:	53                   	push   %ebx
512c88:	e8 b3 07 fe ff       	call   0x4f3440
512c8d:	ff 74 24 3c          	push   0x3c(%esp)
512c91:	8b 7c 24 48          	mov    0x48(%esp),%edi
512c95:	57                   	push   %edi
512c96:	e8 c5 d4 fd ff       	call   0x4f0160
512c9b:	01 74 24 50          	add    %esi,0x50(%esp)
512c9f:	2b ee                	sub    %esi,%ebp
512ca1:	03 de                	add    %esi,%ebx
512ca3:	83 c4 34             	add    $0x34,%esp
512ca6:	3b ee                	cmp    %esi,%ebp
512ca8:	89 5c 24 20          	mov    %ebx,0x20(%esp)
512cac:	8b c5                	mov    %ebp,%eax
512cae:	0f 43 c6             	cmovae %esi,%eax
512cb1:	8b f0                	mov    %eax,%esi
512cb3:	85 ed                	test   %ebp,%ebp
512cb5:	0f 85 65 ff ff ff    	jne    0x512c20
512cbb:	5b                   	pop    %ebx
512cbc:	5f                   	pop    %edi
512cbd:	5e                   	pop    %esi
512cbe:	b8 01 00 00 00       	mov    $0x1,%eax
512cc3:	5d                   	pop    %ebp
512cc4:	59                   	pop    %ecx
512cc5:	c3                   	ret
512cc6:	b8 01 00 00 00       	mov    $0x1,%eax
512ccb:	5d                   	pop    %ebp
512ccc:	59                   	pop    %ecx
512ccd:	c3                   	ret
512cce:	cc                   	int3
512ccf:	cc                   	int3
512cd0:	55                   	push   %ebp
512cd1:	8b 6c 24 14          	mov    0x14(%esp),%ebp
512cd5:	85 ed                	test   %ebp,%ebp
512cd7:	0f 84 8a 00 00 00    	je     0x512d67
512cdd:	56                   	push   %esi
512cde:	b8 00 00 00 40       	mov    $0x40000000,%eax
512ce3:	8b f5                	mov    %ebp,%esi
512ce5:	57                   	push   %edi
512ce6:	8b 7c 24 10          	mov    0x10(%esp),%edi
512cea:	3b e8                	cmp    %eax,%ebp
512cec:	53                   	push   %ebx
512ced:	0f 43 f0             	cmovae %eax,%esi
512cf0:	3b ee                	cmp    %esi,%ebp
512cf2:	72 69                	jb     0x512d5d
512cf4:	57                   	push   %edi
512cf5:	e8 46 d4 fd ff       	call   0x4f0140
512cfa:	57                   	push   %edi
512cfb:	89 44 24 28          	mov    %eax,0x28(%esp)
512cff:	e8 4c 45 fd ff       	call   0x4e7250
512d04:	57                   	push   %edi
512d05:	8b d8                	mov    %eax,%ebx
512d07:	e8 14 d4 fd ff       	call   0x4f0120
512d0c:	ff 74 24 20          	push   0x20(%esp)
512d10:	8b f8                	mov    %eax,%edi
512d12:	e8 b9 d3 fd ff       	call   0x4f00d0
512d17:	68 e0 0b 54 00       	push   $0x540be0
512d1c:	53                   	push   %ebx
512d1d:	8b 5c 24 34          	mov    0x34(%esp),%ebx
512d21:	8d 4c 24 38          	lea    0x38(%esp),%ecx
512d25:	51                   	push   %ecx
512d26:	57                   	push   %edi
512d27:	50                   	push   %eax
512d28:	56                   	push   %esi
512d29:	ff 74 24 40          	push   0x40(%esp)
512d2d:	53                   	push   %ebx
512d2e:	e8 9d 08 fe ff       	call   0x4f35d0
512d33:	ff 74 24 50          	push   0x50(%esp)
512d37:	8b 7c 24 48          	mov    0x48(%esp),%edi
512d3b:	57                   	push   %edi
512d3c:	e8 1f d4 fd ff       	call   0x4f0160
512d41:	01 74 24 50          	add    %esi,0x50(%esp)
512d45:	2b ee                	sub    %esi,%ebp
512d47:	03 de                	add    %esi,%ebx
512d49:	83 c4 38             	add    $0x38,%esp
512d4c:	3b ee                	cmp    %esi,%ebp
512d4e:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
512d52:	8b c5                	mov    %ebp,%eax
512d54:	0f 43 c6             	cmovae %esi,%eax
512d57:	8b f0                	mov    %eax,%esi
512d59:	85 ed                	test   %ebp,%ebp
512d5b:	75 93                	jne    0x512cf0
512d5d:	5b                   	pop    %ebx
512d5e:	5f                   	pop    %edi
512d5f:	5e                   	pop    %esi
512d60:	b8 01 00 00 00       	mov    $0x1,%eax
512d65:	5d                   	pop    %ebp
512d66:	c3                   	ret
512d67:	b8 01 00 00 00       	mov    $0x1,%eax
512d6c:	5d                   	pop    %ebp
512d6d:	c3                   	ret
512d6e:	cc                   	int3
512d6f:	cc                   	int3
512d70:	b8 04 00 00 00       	mov    $0x4,%eax
512d75:	e8 36 ea 0b 00       	call   0x5d17b0
512d7a:	56                   	push   %esi
512d7b:	57                   	push   %edi
512d7c:	8b 7c 24 10          	mov    0x10(%esp),%edi
512d80:	57                   	push   %edi
512d81:	e8 ba d3 fd ff       	call   0x4f0140
512d86:	57                   	push   %edi
512d87:	89 44 24 10          	mov    %eax,0x10(%esp)
512d8b:	e8 40 d3 fd ff       	call   0x4f00d0
512d90:	83 c4 08             	add    $0x8,%esp
512d93:	8b f0                	mov    %eax,%esi
512d95:	8d 44 24 08          	lea    0x8(%esp),%eax
512d99:	68 e0 0b 54 00       	push   $0x540be0
512d9e:	50                   	push   %eax
512d9f:	57                   	push   %edi
512da0:	e8 0b d3 fd ff       	call   0x4f00b0
512da5:	83 c4 04             	add    $0x4,%esp
512da8:	50                   	push   %eax
512da9:	57                   	push   %edi
512daa:	e8 71 d3 fd ff       	call   0x4f0120
512daf:	83 c4 04             	add    $0x4,%esp
512db2:	50                   	push   %eax
512db3:	56                   	push   %esi
512db4:	ff 74 24 30          	push   0x30(%esp)
512db8:	ff 74 24 2c          	push   0x2c(%esp)
512dbc:	ff 74 24 34          	push   0x34(%esp)
512dc0:	e8 8b 02 fe ff       	call   0x4f3050
512dc5:	ff 74 24 28          	push   0x28(%esp)
512dc9:	57                   	push   %edi
512dca:	e8 91 d3 fd ff       	call   0x4f0160
512dcf:	83 c4 28             	add    $0x28,%esp
512dd2:	b8 01 00 00 00       	mov    $0x1,%eax
512dd7:	5f                   	pop    %edi
512dd8:	5e                   	pop    %esi
512dd9:	59                   	pop    %ecx
512dda:	c3                   	ret
512ddb:	cc                   	int3
512ddc:	cc                   	int3
512ddd:	cc                   	int3
512dde:	cc                   	int3
512ddf:	cc                   	int3
512de0:	53                   	push   %ebx
512de1:	55                   	push   %ebp
512de2:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
512de6:	56                   	push   %esi
512de7:	57                   	push   %edi
512de8:	55                   	push   %ebp
512de9:	e8 e2 d2 fd ff       	call   0x4f00d0
512dee:	8b 5c 24 20          	mov    0x20(%esp),%ebx
512df2:	83 c4 04             	add    $0x4,%esp
512df5:	8b 74 24 18          	mov    0x18(%esp),%esi
512df9:	8b f8                	mov    %eax,%edi
512dfb:	85 db                	test   %ebx,%ebx
512dfd:	75 0c                	jne    0x512e0b
512dff:	85 f6                	test   %esi,%esi
512e01:	75 10                	jne    0x512e13
512e03:	5f                   	pop    %edi
512e04:	5e                   	pop    %esi
512e05:	5d                   	pop    %ebp
512e06:	8d 43 01             	lea    0x1(%ebx),%eax
512e09:	5b                   	pop    %ebx
512e0a:	c3                   	ret
512e0b:	85 f6                	test   %esi,%esi
512e0d:	0f 84 98 00 00 00    	je     0x512eab
512e13:	57                   	push   %edi
512e14:	55                   	push   %ebp
512e15:	e8 16 d3 fd ff       	call   0x4f0130
512e1a:	83 c4 04             	add    $0x4,%esp
512e1d:	c1 e0 03             	shl    $0x3,%eax
512e20:	50                   	push   %eax
512e21:	56                   	push   %esi
512e22:	e8 69 e7 02 00       	call   0x541590
512e27:	68 e0 0b 54 00       	push   $0x540be0
512e2c:	8d af 20 01 00 00    	lea    0x120(%edi),%ebp
512e32:	8b f0                	mov    %eax,%esi
512e34:	57                   	push   %edi