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
512e35:	55                   	push   %ebp
512e36:	e8 95 1a fe ff       	call   0x4f48d0
512e3b:	83 c4 18             	add    $0x18,%esp
512e3e:	85 f6                	test   %esi,%esi
512e40:	79 25                	jns    0x512e67
512e42:	68 dd 00 00 00       	push   $0xdd
512e47:	68 bc 0d 63 00       	push   $0x630dbc
512e4c:	68 b0 00 00 00       	push   $0xb0
512e51:	68 b0 00 00 00       	push   $0xb0
512e56:	6a 06                	push   $0x6
512e58:	e8 23 61 fc ff       	call   0x4d8f80
512e5d:	83 c4 14             	add    $0x14,%esp
512e60:	33 c0                	xor    %eax,%eax
512e62:	5f                   	pop    %edi
512e63:	5e                   	pop    %esi
512e64:	5d                   	pop    %ebp
512e65:	5b                   	pop    %ebx
512e66:	c3                   	ret
512e67:	85 db                	test   %ebx,%ebx
512e69:	75 12                	jne    0x512e7d
512e6b:	39 9f 1c 01 00 00    	cmp    %ebx,0x11c(%edi)
512e71:	74 24                	je     0x512e97
512e73:	8b 9f c8 02 00 00    	mov    0x2c8(%edi),%ebx
512e79:	85 db                	test   %ebx,%ebx
512e7b:	74 1a                	je     0x512e97
512e7d:	ff b7 cc 02 00 00    	push   0x2cc(%edi)
512e83:	53                   	push   %ebx
512e84:	55                   	push   %ebp
512e85:	e8 16 1b fe ff       	call   0x4f49a0
512e8a:	83 c4 0c             	add    $0xc,%esp
512e8d:	c7 87 1c 01 00 00 01 	movl   $0x1,0x11c(%edi)
512e94:	00 00 00
512e97:	c7 87 18 01 00 00 01 	movl   $0x1,0x118(%edi)
512e9e:	00 00 00
512ea1:	b8 01 00 00 00       	mov    $0x1,%eax
512ea6:	5f                   	pop    %edi
512ea7:	5e                   	pop    %esi
512ea8:	5d                   	pop    %ebp
512ea9:	5b                   	pop    %ebx
512eaa:	c3                   	ret
512eab:	83 bf 18 01 00 00 00 	cmpl   $0x0,0x118(%edi)
512eb2:	8b 87 cc 02 00 00    	mov    0x2cc(%edi),%eax
512eb8:	50                   	push   %eax
512eb9:	53                   	push   %ebx
512eba:	74 0e                	je     0x512eca
512ebc:	8d 87 20 01 00 00    	lea    0x120(%edi),%eax
512ec2:	50                   	push   %eax
512ec3:	e8 d8 1a fe ff       	call   0x4f49a0
512ec8:	eb 0b                	jmp    0x512ed5
512eca:	ff b7 c8 02 00 00    	push   0x2c8(%edi)
512ed0:	e8 fb fe 0b 00       	call   0x5d2dd0
512ed5:	83 c4 0c             	add    $0xc,%esp
512ed8:	c7 87 1c 01 00 00 01 	movl   $0x1,0x11c(%edi)
512edf:	00 00 00
512ee2:	c7 87 d4 02 00 00 00 	movl   $0x0,0x2d4(%edi)
512ee9:	00 00 00
512eec:	b8 01 00 00 00       	mov    $0x1,%eax
512ef1:	5f                   	pop    %edi
512ef2:	5e                   	pop    %esi
512ef3:	5d                   	pop    %ebp
512ef4:	5b                   	pop    %ebx
512ef5:	c3                   	ret
512ef6:	cc                   	int3
512ef7:	cc                   	int3
512ef8:	cc                   	int3
512ef9:	cc                   	int3
512efa:	cc                   	int3
512efb:	cc                   	int3
512efc:	cc                   	int3
512efd:	cc                   	int3
512efe:	cc                   	int3
512eff:	cc                   	int3
512f00:	53                   	push   %ebx
512f01:	8b 5c 24 14          	mov    0x14(%esp),%ebx
512f05:	55                   	push   %ebp
512f06:	56                   	push   %esi
512f07:	57                   	push   %edi
512f08:	8b 7c 24 14          	mov    0x14(%esp),%edi
512f0c:	57                   	push   %edi
512f0d:	e8 be d1 fd ff       	call   0x4f00d0
512f12:	8b f0                	mov    %eax,%esi
512f14:	83 c4 04             	add    $0x4,%esp
512f17:	8b 44 24 18          	mov    0x18(%esp),%eax
512f1b:	83 f8 25             	cmp    $0x25,%eax
512f1e:	0f 87 56 04 00 00    	ja     0x51337a
512f24:	0f b6 88 b0 33 51 00 	movzbl 0x5133b0(%eax),%ecx
512f2b:	ff 24 8d 84 33 51 00 	jmp    *0x513384(,%ecx,4)
512f32:	c7 86 18 01 00 00 00 	movl   $0x0,0x118(%esi)
512f39:	00 00 00
512f3c:	c7 86 1c 01 00 00 00 	movl   $0x0,0x11c(%esi)
512f43:	00 00 00
512f46:	ff 37                	push   (%edi)
512f48:	e8 f3 42 fd ff       	call   0x4e7240
512f4d:	57                   	push   %edi
512f4e:	89 86 cc 02 00 00    	mov    %eax,0x2cc(%esi)
512f54:	e8 c7 d1 fd ff       	call   0x4f0120
512f59:	83 c4 08             	add    $0x8,%esp
512f5c:	89 86 c8 02 00 00    	mov    %eax,0x2c8(%esi)
512f62:	c7 86 d0 02 00 00 ff 	movl   $0xffffffff,0x2d0(%esi)
512f69:	ff ff ff
512f6c:	b8 01 00 00 00       	mov    $0x1,%eax
512f71:	c7 86 d4 02 00 00 00 	movl   $0x0,0x2d4(%esi)
512f78:	00 00 00
512f7b:	c7 86 d8 02 00 00 ff 	movl   $0xffffffff,0x2d8(%esi)
512f82:	ff ff ff
512f85:	5f                   	pop    %edi
512f86:	5e                   	pop    %esi
512f87:	5d                   	pop    %ebp
512f88:	5b                   	pop    %ebx
512f89:	c3                   	ret
512f8a:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
512f8e:	85 db                	test   %ebx,%ebx
512f90:	7e 6b                	jle    0x512ffd
512f92:	83 fb 10             	cmp    $0x10,%ebx
512f95:	7e 6d                	jle    0x513004
512f97:	3b 9e cc 02 00 00    	cmp    0x2cc(%esi),%ebx
512f9d:	7e 65                	jle    0x513004
512f9f:	8b ae c8 02 00 00    	mov    0x2c8(%esi),%ebp
512fa5:	57                   	push   %edi
512fa6:	e8 75 d1 fd ff       	call   0x4f0120
512fab:	83 c4 04             	add    $0x4,%esp
512fae:	3b e8                	cmp    %eax,%ebp
512fb0:	74 13                	je     0x512fc5
512fb2:	68 0c 01 00 00       	push   $0x10c
512fb7:	68 bc 0d 63 00       	push   $0x630dbc
512fbc:	55                   	push   %ebp
512fbd:	e8 be d7 fc ff       	call   0x4e0780
512fc2:	83 c4 0c             	add    $0xc,%esp
512fc5:	68 0d 01 00 00       	push   $0x10d
512fca:	68 bc 0d 63 00       	push   $0x630dbc
512fcf:	53                   	push   %ebx
512fd0:	e8 7b d7 fc ff       	call   0x4e0750
512fd5:	83 c4 0c             	add    $0xc,%esp
512fd8:	89 86 c8 02 00 00    	mov    %eax,0x2c8(%esi)
512fde:	85 c0                	test   %eax,%eax
512fe0:	75 22                	jne    0x513004
512fe2:	68 0e 01 00 00       	push   $0x10e
512fe7:	68 bc 0d 63 00       	push   $0x630dbc
512fec:	6a 41                	push   $0x41
512fee:	68 c5 00 00 00       	push   $0xc5
512ff3:	6a 06                	push   $0x6
512ff5:	e8 86 5f fc ff       	call   0x4d8f80
512ffa:	83 c4 14             	add    $0x14,%esp
512ffd:	5f                   	pop    %edi
512ffe:	5e                   	pop    %esi
512fff:	5d                   	pop    %ebp
513000:	33 c0                	xor    %eax,%eax
513002:	5b                   	pop    %ebx
513003:	c3                   	ret
513004:	5f                   	pop    %edi
513005:	89 9e cc 02 00 00    	mov    %ebx,0x2cc(%esi)
51300b:	b8 01 00 00 00       	mov    $0x1,%eax
513010:	5e                   	pop    %esi
513011:	5d                   	pop    %ebp
513012:	5b                   	pop    %ebx
513013:	c3                   	ret
513014:	8b 86 cc 02 00 00    	mov    0x2cc(%esi),%eax
51301a:	5f                   	pop    %edi
51301b:	5e                   	pop    %esi
51301c:	89 03                	mov    %eax,(%ebx)
51301e:	b8 01 00 00 00       	mov    $0x1,%eax
513023:	5d                   	pop    %ebp
513024:	5b                   	pop    %ebx
513025:	c3                   	ret
513026:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
51302a:	8d 45 ff             	lea    -0x1(%ebp),%eax
51302d:	83 f8 0f             	cmp    $0xf,%eax
513030:	77 cb                	ja     0x512ffd
513032:	57                   	push   %edi
513033:	e8 18 42 fd ff       	call   0x4e7250
513038:	83 c4 04             	add    $0x4,%esp
51303b:	85 c0                	test   %eax,%eax
51303d:	75 be                	jne    0x512ffd
51303f:	55                   	push   %ebp
513040:	53                   	push   %ebx