516d0d:	50                   	push   %eax
516d0e:	8b 40 04             	mov    0x4(%eax),%eax
516d11:	ff d0                	call   *%eax
516d13:	83 c4 04             	add    $0x4,%esp
516d16:	85 c0                	test   %eax,%eax
516d18:	75 1a                	jne    0x516d34
516d1a:	68 ba 00 00 00       	push   $0xba
516d1f:	68 80 18 63 00       	push   $0x631880
516d24:	6a 41                	push   $0x41
516d26:	6a 6f                	push   $0x6f
516d28:	6a 0e                	push   $0xe
516d2a:	e8 51 22 fc ff       	call   0x4d8f80
516d2f:	83 c4 14             	add    $0x14,%esp
516d32:	33 c0                	xor    %eax,%eax
516d34:	c3                   	ret
516d35:	cc                   	int3
516d36:	cc                   	int3
516d37:	cc                   	int3
516d38:	cc                   	int3
516d39:	cc                   	int3
516d3a:	cc                   	int3
516d3b:	cc                   	int3
516d3c:	cc                   	int3
516d3d:	cc                   	int3
516d3e:	cc                   	int3
516d3f:	cc                   	int3
516d40:	0f be 44 24 08       	movsbl 0x8(%esp),%eax
516d45:	6a 04                	push   $0x4
516d47:	50                   	push   %eax
516d48:	e8 53 d3 fc ff       	call   0x4e40a0
516d4d:	83 c4 08             	add    $0x8,%esp
516d50:	c3                   	ret
516d51:	cc                   	int3
516d52:	cc                   	int3
516d53:	cc                   	int3
516d54:	cc                   	int3
516d55:	cc                   	int3
516d56:	cc                   	int3
516d57:	cc                   	int3
516d58:	cc                   	int3
516d59:	cc                   	int3
516d5a:	cc                   	int3
516d5b:	cc                   	int3
516d5c:	cc                   	int3
516d5d:	cc                   	int3
516d5e:	cc                   	int3
516d5f:	cc                   	int3
516d60:	0f be 44 24 08       	movsbl 0x8(%esp),%eax
516d65:	83 e8 30             	sub    $0x30,%eax
516d68:	c3                   	ret
516d69:	cc                   	int3
516d6a:	cc                   	int3
516d6b:	cc                   	int3
516d6c:	cc                   	int3
516d6d:	cc                   	int3
516d6e:	cc                   	int3
516d6f:	cc                   	int3
516d70:	8b 4c 24 04          	mov    0x4(%esp),%ecx
516d74:	85 c9                	test   %ecx,%ecx
516d76:	74 52                	je     0x516dca
516d78:	8b 54 24 08          	mov    0x8(%esp),%edx
516d7c:	85 d2                	test   %edx,%edx
516d7e:	74 4a                	je     0x516dca
516d80:	8b 01                	mov    (%ecx),%eax
516d82:	8b 40 0c             	mov    0xc(%eax),%eax
516d85:	85 c0                	test   %eax,%eax
516d87:	75 1b                	jne    0x516da4
516d89:	68 b6 00 00 00       	push   $0xb6
516d8e:	68 a8 18 63 00       	push   $0x6318a8
516d93:	6a 6c                	push   $0x6c
516d95:	6a 6c                	push   $0x6c
516d97:	6a 25                	push   $0x25
516d99:	e8 e2 21 fc ff       	call   0x4d8f80
516d9e:	83 c4 14             	add    $0x14,%esp
516da1:	33 c0                	xor    %eax,%eax
516da3:	c3                   	ret
516da4:	52                   	push   %edx
516da5:	51                   	push   %ecx
516da6:	ff d0                	call   *%eax
516da8:	83 c4 08             	add    $0x8,%esp
516dab:	85 c0                	test   %eax,%eax
516dad:	75 35                	jne    0x516de4
516daf:	68 ba 00 00 00       	push   $0xba
516db4:	68 a8 18 63 00       	push   $0x6318a8
516db9:	6a 6a                	push   $0x6a
516dbb:	6a 6c                	push   $0x6c
516dbd:	6a 25                	push   $0x25
516dbf:	e8 bc 21 fc ff       	call   0x4d8f80
516dc4:	83 c4 14             	add    $0x14,%esp
516dc7:	33 c0                	xor    %eax,%eax
516dc9:	c3                   	ret
516dca:	68 b2 00 00 00       	push   $0xb2
516dcf:	68 a8 18 63 00       	push   $0x6318a8
516dd4:	6a 43                	push   $0x43
516dd6:	6a 6c                	push   $0x6c
516dd8:	6a 25                	push   $0x25
516dda:	e8 a1 21 fc ff       	call   0x4d8f80
516ddf:	83 c4 14             	add    $0x14,%esp
516de2:	33 c0                	xor    %eax,%eax
516de4:	c3                   	ret
516de5:	cc                   	int3
516de6:	cc                   	int3
516de7:	cc                   	int3
516de8:	cc                   	int3
516de9:	cc                   	int3
516dea:	cc                   	int3
516deb:	cc                   	int3
516dec:	cc                   	int3
516ded:	cc                   	int3
516dee:	cc                   	int3
516def:	cc                   	int3
516df0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
516df4:	85 c9                	test   %ecx,%ecx
516df6:	75 1b                	jne    0x516e13
516df8:	68 1d 01 00 00       	push   $0x11d
516dfd:	68 a8 18 63 00       	push   $0x6318a8
516e02:	6a 43                	push   $0x43
516e04:	6a 7e                	push   $0x7e
516e06:	6a 25                	push   $0x25
516e08:	e8 73 21 fc ff       	call   0x4d8f80
516e0d:	83 c4 14             	add    $0x14,%esp
516e10:	33 c0                	xor    %eax,%eax
516e12:	c3                   	ret
516e13:	56                   	push   %esi
516e14:	8b 74 24 0c          	mov    0xc(%esp),%esi
516e18:	85 f6                	test   %esi,%esi
516e1a:	75 23                	jne    0x516e3f
516e1c:	8b 71 1c             	mov    0x1c(%ecx),%esi
516e1f:	85 f6                	test   %esi,%esi
516e21:	75 1c                	jne    0x516e3f
516e23:	68 23 01 00 00       	push   $0x123
516e28:	68 a8 18 63 00       	push   $0x6318a8
516e2d:	6a 6f                	push   $0x6f
516e2f:	6a 7e                	push   $0x7e
516e31:	6a 25                	push   $0x25
516e33:	e8 48 21 fc ff       	call   0x4d8f80
516e38:	83 c4 14             	add    $0x14,%esp
516e3b:	33 c0                	xor    %eax,%eax
516e3d:	5e                   	pop    %esi
516e3e:	c3                   	ret
516e3f:	f6 41 0c 01          	testb  $0x1,0xc(%ecx)
516e43:	75 1b                	jne    0x516e60
516e45:	8b 41 14             	mov    0x14(%ecx),%eax
516e48:	85 c0                	test   %eax,%eax
516e4a:	75 09                	jne    0x516e55
516e4c:	8b 01                	mov    (%ecx),%eax
516e4e:	8b 40 14             	mov    0x14(%eax),%eax
516e51:	85 c0                	test   %eax,%eax
516e53:	74 0b                	je     0x516e60
516e55:	56                   	push   %esi
516e56:	51                   	push   %ecx
516e57:	ff d0                	call   *%eax
516e59:	83 c4 08             	add    $0x8,%esp
516e5c:	85 c0                	test   %eax,%eax
516e5e:	75 31                	jne    0x516e91
516e60:	68 2d 01 00 00       	push   $0x12d
516e65:	68 a8 18 63 00       	push   $0x6318a8
516e6a:	56                   	push   %esi
516e6b:	e8 60 b2 fc ff       	call   0x4e20d0
516e70:	83 c4 0c             	add    $0xc,%esp
516e73:	85 c0                	test   %eax,%eax
516e75:	75 1a                	jne    0x516e91
516e77:	68 2f 01 00 00       	push   $0x12f
516e7c:	68 a8 18 63 00       	push   $0x6318a8
516e81:	6a 41                	push   $0x41
516e83:	6a 7e                	push   $0x7e
516e85:	6a 25                	push   $0x25
516e87:	e8 f4 20 fc ff       	call   0x4d8f80
516e8c:	83 c4 14             	add    $0x14,%esp
516e8f:	33 c0                	xor    %eax,%eax
516e91:	5e                   	pop    %esi
516e92:	c3                   	ret
516e93:	cc                   	int3
516e94:	cc                   	int3
516e95:	cc                   	int3
516e96:	cc                   	int3
516e97:	cc                   	int3
516e98:	cc                   	int3
516e99:	cc                   	int3
516e9a:	cc                   	int3
516e9b:	cc                   	int3
516e9c:	cc                   	int3
516e9d:	cc                   	int3
516e9e:	cc                   	int3
516e9f:	cc                   	int3
516ea0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
516ea4:	85 c9                	test   %ecx,%ecx
516ea6:	75 1c                	jne    0x516ec4
516ea8:	68 cd 00 00 00       	push   $0xcd
516ead:	68 a8 18 63 00       	push   $0x6318a8
516eb2:	6a 43                	push   $0x43
516eb4:	6a 6e                	push   $0x6e
516eb6:	6a 25                	push   $0x25
516eb8:	e8 c3 20 fc ff       	call   0x4d8f80
516ebd:	83 c4 14             	add    $0x14,%esp
516ec0:	83 c8 ff             	or     $0xffffffff,%eax
516ec3:	c3                   	ret
516ec4:	8b 54 24 08          	mov    0x8(%esp),%edx
516ec8:	8b c2                	mov    %edx,%eax
516eca:	83 e8 01             	sub    $0x1,%eax
516ecd:	74 51                	je     0x516f20
516ecf:	83 e8 01             	sub    $0x1,%eax
516ed2:	74 42                	je     0x516f16
516ed4:	83 e8 01             	sub    $0x1,%eax
516ed7:	74 33                	je     0x516f0c
516ed9:	8b 01                	mov    (%ecx),%eax
516edb:	85 c0                	test   %eax,%eax
516edd:	74 11                	je     0x516ef0
516edf:	8b 40 10             	mov    0x10(%eax),%eax
516ee2:	85 c0                	test   %eax,%eax
516ee4:	74 0a                	je     0x516ef0
516ee6:	89 54 24 08          	mov    %edx,0x8(%esp)
516eea:	89 4c 24 04          	mov    %ecx,0x4(%esp)
516eee:	ff e0                	jmp    *%eax
516ef0:	68 e1 00 00 00       	push   $0xe1
516ef5:	68 a8 18 63 00       	push   $0x6318a8
516efa:	6a 6c                	push   $0x6c
516efc:	6a 6e                	push   $0x6e
516efe:	6a 25                	push   $0x25
516f00:	e8 7b 20 fc ff       	call   0x4d8f80
516f05:	83 c4 14             	add    $0x14,%esp
516f08:	83 c8 ff             	or     $0xffffffff,%eax
516f0b:	c3                   	ret
516f0c:	8b 44 24 0c          	mov    0xc(%esp),%eax
516f10:	09 41 0c             	or     %eax,0xc(%ecx)
516f13:	33 c0                	xor    %eax,%eax
516f15:	c3                   	ret
516f16:	8b 44 24 0c          	mov    0xc(%esp),%eax
516f1a:	89 41 0c             	mov    %eax,0xc(%ecx)
516f1d:	33 c0                	xor    %eax,%eax
516f1f:	c3                   	ret
516f20:	8b 41 0c             	mov    0xc(%ecx),%eax
516f23:	c3                   	ret
516f24:	cc                   	int3
516f25:	cc                   	int3
516f26:	cc                   	int3
516f27:	cc                   	int3
516f28:	cc                   	int3
516f29:	cc                   	int3
516f2a:	cc                   	int3
516f2b:	cc                   	int3
516f2c:	cc                   	int3
516f2d:	cc                   	int3
516f2e:	cc                   	int3
516f2f:	cc                   	int3
516f30:	56                   	push   %esi
516f31:	8b 74 24 08          	mov    0x8(%esp),%esi
516f35:	85 f6                	test   %esi,%esi
516f37:	0f 84 af 00 00 00    	je     0x516fec
516f3d:	83 c9 ff             	or     $0xffffffff,%ecx
516f40:	8d 46 08             	lea    0x8(%esi),%eax
516f43:	f0 0f c1 08          	lock xadd %ecx,(%eax)
516f47:	49                   	dec    %ecx
516f48:	85 c9                	test   %ecx,%ecx
516f4a:	0f 8f 9c 00 00 00    	jg     0x516fec
516f50:	f6 46 0c 04          	testb  $0x4,0xc(%esi)
516f54:	75 2c                	jne    0x516f82
516f56:	8b 06                	mov    (%esi),%eax
516f58:	8b 40 08             	mov    0x8(%eax),%eax
516f5b:	85 c0                	test   %eax,%eax
516f5d:	74 23                	je     0x516f82
516f5f:	56                   	push   %esi
516f60:	ff d0                	call   *%eax
516f62:	83 c4 04             	add    $0x4,%esp
516f65:	85 c0                	test   %eax,%eax
516f67:	75 19                	jne    0x516f82
516f69:	6a 4f                	push   $0x4f
516f6b:	68 a8 18 63 00       	push   $0x6318a8
516f70:	6a 6b                	push   $0x6b
516f72:	6a 6f                	push   $0x6f
516f74:	6a 25                	push   $0x25
516f76:	e8 05 20 fc ff       	call   0x4d8f80
516f7b:	83 c4 14             	add    $0x14,%esp
516f7e:	33 c0                	xor    %eax,%eax
516f80:	5e                   	pop    %esi
516f81:	c3                   	ret
516f82:	8b 06                	mov    (%esi),%eax
516f84:	8b 40 20             	mov    0x20(%eax),%eax
516f87:	85 c0                	test   %eax,%eax
516f89:	74 23                	je     0x516fae
516f8b:	56                   	push   %esi
516f8c:	ff d0                	call   *%eax
516f8e:	83 c4 04             	add    $0x4,%esp
516f91:	85 c0                	test   %eax,%eax
516f93:	75 19                	jne    0x516fae
516f95:	6a 55                	push   $0x55
516f97:	68 a8 18 63 00       	push   $0x6318a8
516f9c:	6a 66                	push   $0x66
516f9e:	6a 6f                	push   $0x6f
516fa0:	6a 25                	push   $0x25
516fa2:	e8 d9 1f fc ff       	call   0x4d8f80
516fa7:	83 c4 14             	add    $0x14,%esp
516faa:	33 c0                	xor    %eax,%eax
516fac:	5e                   	pop    %esi
516fad:	c3                   	ret
516fae:	ff 76 04             	push   0x4(%esi)
516fb1:	e8 6a df fc ff       	call   0x4e4f20
516fb6:	6a 5a                	push   $0x5a
516fb8:	68 a8 18 63 00       	push   $0x6318a8
516fbd:	ff 76 1c             	push   0x1c(%esi)
516fc0:	e8 bb 97 fc ff       	call   0x4e0780
516fc5:	6a 5b                	push   $0x5b
516fc7:	68 a8 18 63 00       	push   $0x6318a8
516fcc:	ff 76 20             	push   0x20(%esi)
516fcf:	e8 ac 97 fc ff       	call   0x4e0780
516fd4:	ff 76 24             	push   0x24(%esi)
516fd7:	e8 74 af fc ff       	call   0x4e1f50
516fdc:	6a 5d                	push   $0x5d
516fde:	68 a8 18 63 00       	push   $0x6318a8
516fe3:	56                   	push   %esi
516fe4:	e8 97 97 fc ff       	call   0x4e0780
516fe9:	83 c4 2c             	add    $0x2c,%esp
516fec:	b8 01 00 00 00       	mov    $0x1,%eax
516ff1:	5e                   	pop    %esi
516ff2:	c3                   	ret
516ff3:	cc                   	int3
516ff4:	cc                   	int3
516ff5:	cc                   	int3
516ff6:	cc                   	int3
516ff7:	cc                   	int3
516ff8:	cc                   	int3
516ff9:	cc                   	int3
516ffa:	cc                   	int3
516ffb:	cc                   	int3
516ffc:	cc                   	int3
516ffd:	cc                   	int3
516ffe:	cc                   	int3
516fff:	cc                   	int3
517000:	53                   	push   %ebx
517001:	56                   	push   %esi
517002:	8b 74 24 0c          	mov    0xc(%esp),%esi
517006:	57                   	push   %edi
517007:	33 ff                	xor    %edi,%edi
517009:	85 f6                	test   %esi,%esi
51700b:	75 39                	jne    0x517046
51700d:	ff 74 24 18          	push   0x18(%esp)
517011:	e8 8a 01 00 00       	call   0x5171a0
517016:	8b f0                	mov    %eax,%esi
517018:	83 c4 04             	add    $0x4,%esp
51701b:	85 f6                	test   %esi,%esi
51701d:	75 1b                	jne    0x51703a
51701f:	6a 7f                	push   $0x7f
517021:	68 a8 18 63 00       	push   $0x6318a8
517026:	6a 41                	push   $0x41
517028:	6a 70                	push   $0x70
51702a:	6a 25                	push   $0x25
51702c:	e8 4f 1f fc ff       	call   0x4d8f80
517031:	83 c4 14             	add    $0x14,%esp
517034:	33 c0                	xor    %eax,%eax
517036:	5f                   	pop    %edi